آموزش پایتون از صفر تا … (قسمت ۴) – ادامه String

با سلام و درود، خب قسمت سوم که در مورد String ها د ر پایتون بود خیلی طولانی داشت می شد و تصمیم گرفتم بخش String ها رو در دو قسمت پیش بریم. ابتدا نمیخواستم این قدر روی String آموزش بگذارم، ولی دیدم مبحث بسیار پر کاربردیه و تصمیم بر آن شد تا جایی که میتونم توابع String در پایتون رو بهتون معرفی کنم.

توابع مقایسه ای String ها در پایتون:

تابع islower() در پایتون: 

اگر تمام کاراکترهای String حروف کوچک باشند مقدار True بر می گرداند و اگر هر کدام از حروف کوچک نباشند مقدار False بر می گرداند.

var=’Python’
print (var.islower())
# False
var=’python’
print (var.islower())
# True

تابع isupper() در پایتون :

اگر تمام کاراکترهای String حروف بزرگ باشند مقدار True بر می گرداند و اگر هر کدام از حروف بزرگ نباشند مقدار False بر می گرداند.

var=’Python’
print (var.isupper())
# False
var=’PYTHON’
print (var.isupper())
# True

تابع isdecimal() در پایتون :

اگر تمام کاراکترهای داخل String از نوع Decimalبودند مقدار True بر می گرداند و اگر هر کدام از کاراکتر ها نوع دیگری داشتند مقدار False بر می گرداند.

کاراکترهای Decimal کاراکترهایی از دسته بنی Unicode ها هستند که با ‘Nd’ مشخص می شوند. (کاراکترهای ‘Nd’ ) . لیست کامل این کاراکتر های در اینجا قابل دسترس هست.

num=u’2016′
print (num.isdecimal())
# True

 


تابع isdigit() در پایتون :

مقدار True  بر میگرداند برای همه کاراکترهایی که تابع isdecimal برایشان True برگداند و همچنین تعدادی از دسته بندی ‘No’ را نیز True  بر می گرداند. برای کاراکتر هایی غیر از این دو دسته ای که گفته شد، مقدار False بر می گرداند.

دقیقا digits کاراکترهایی از unicode می شود که شامل موارد زیر است:

Numeric_Type=Digit یا Numeric_Type=Decimal

برای مثال : بالاوند (superscript) ها digits محسوب می شوند ولی کَسر (fraction) محسوب نمی شود. لیست کامل ‘No’ در اینجا آورده شده است.

print (‘2’.isdigit())
# True
print (‘²’.isdigit())
# True

تابع isnumeric() در پایتون :

در صورتی که تمام کاراکتر های یونیکد String  در هر یک از دسته بندی های ‘Nd’ , ‘No’ و ‘NI’ قرار بگیرد، مقدار True را بر می گرداند. به ازای هر کاراکتری غیر از این سه دسته مقدار False بر می گرداند.

لیست کامل از کاراکتر های دسته بندی ‘NI’ را در اینجا میتونید ببینید.

num=u’2016′
print (num.isnumeric())
# True
num=u’year2016′
print (num.isnumeric())
# False

تابع isalpha() در پایتون :

اگر Stringحداقل دارای یک کاراکتر باشد(non-empty String) و همه ی کاراکتر های حروف الفبا باشند مقدار True بر می گرداند. در غیر این صورت مقدار False بر می گرداند.

print (‘python’.isalpha())
# True
print (‘python3’.isalpha())
# False

تابع isalnum() در پایتون :

اگر Stringحداقل دارای یک کاراکتر باشد(non-empty String) و همه کاراکتر های حروف الفبا  یا decimal digits باشند مقدار True بر می گرداند. در غیر این صورت مقدار False بر می گرداند.

print (‘python’.isalnum())
# True
print (‘python3’.isalnum())
# True

 

توابع String Padding  در پایتون :

 تابع  rjust(width[,fillchar]) در پایتون : 

 rjust(width[,fillchar])

یک نسخه لایه گذاری شده از String  را به این صورت که از راست به مقدار width پر شده باشد(right-justified) یعنی اندازه کل stirng با مقدار padding مورد نظر بشود width .

به صورت پیش فرض برای این مقدار width که String باید از راست Justified شود فاصله خالی (Space) در نظر گرفته می شود. در غیر این صورت از ‘fillchar’ برای تعیین کاراکتری که باید پر شود استفاده می شود . به مثال زیر توجه کنید:

تابع ljust(width[,fillchar]) در پایتون :

ljust(width[,fillchar])

مانند مثال فوق فقط از چپ پر می کند، به مثال زیر توجه کنید :

تابع center(width[,fillchar]) : 

center(width[,fillchar])

مانند دو تابع فوق، فقط از وسط پر می کند، باز هم به مثال زیر توجه کنید : 

تابع zfill(width) در پایتون :

zfill(width)

از سمت چپ Stringشروع به Padding با صفر (۰) می کند که طول کل Stringبرابر با width شود.

اگر علامت جداسازی سطر (+/-) داخل String داشته باشیم . Padding از بعد علامت اعمال می شود. به مثال توجه کنید :


 

خب دیگه وقتشه به توابع String بپردازیم که شامل raplaceکردن و find در متن مورد نظر می باشد.

تابع find(str [,i [,j]]) در پایتون:

find(str [,i [,j]])

به جستجوی ‘str’ در کل Stingمی پردازد (اگر i  و j مقدار دهی نشده باشند). یا در یک زیر Sting از Stirng مورد نظر به جستجو می پردازد (اگر i و jمقدار دهی شده باشند). این تابع index مربوط به ‘str’ که دنبالش می گردد را باز می گرداند. در صورتی که چیزی پیدا نکرد مقدار ‘-1’ را بر می گرداند.

i  ایندکس شروع جستجو و j ایندکس پایان جستجو در String می باشد. 

var=”Tech Beamers”
str=”Beam”
print (var.find(str))
# 5
var=”Tech Beamers”
str=”Beam”
print (var.find(str,4))
# 5
var=”Tech Beamers”
str=”Beam”
print (var.find(str,7))
# -1

تابع index(str[,i [,j]]) در پیاتون :

index(str[,i [,j]])

شبیه متد find کار می کند. تنها تفاوتش این هست که اگر پیدا نکند یک exceptionبا عنوان  ‘ValueError’ را بلند (raises) می کند. 

var=’Tech Beamers’
str=’Beam’
print (var.index(str))
# 5
var=’Tech Beamers’
str=’Beam’
print (var.index(str,4))
# 5
var=’Tech Beamers’
str=’Beam’
print (var.index(str,7))
# ValueError: substring not found

تابع rfind(str[,i [,j]]) در پایتون :

rfind(str[,i [,j]])

این تابع نیز شبیه با find است، منتهی آخرین ایندکس از ‘str’  که پیدا شده را باز می گرداندو اگر پیدا نشد مقدار ‘-1’ را بر می گرداند.

var=’This is a good example’
str=’is’
print (var.rfind(str,0,10))
# 5
print (var.rfind(str,10))
# -1

تابع  count(str[,i [,j]]) در پایتون :

count(str[,i [,j]])

تعداد دفعاتی که ‘str’ در string رخ داده است را بر می گرداند. اگر iو j تعیین نشده باشند درکل String به جستجو می پردازد.

var=’This is a good example’
str=’is’
print (var.count(str))
# 2
print (var.count(str,4,10))
# 1

توابع مربوط به Replace در پایتنون :

تابه replace(old,new[,count]) در پیاتون :

replace(old,new[,count])

تمام substring های ‘old’ را با ‘new’  عوض می کند. اگر count مشخص شده باشد، فقط به تعداد countاین تعویض را انجام می دهد.

var=’This is a good example’
str=’was’
print (var.replace(‘is’,str))
# Thwas was a good exampleprint (var.replace(‘is’,str,1))
# Thwas is a good example

تابع split([sep[,maxsplit]]) در پایتون :

split([sep[,maxsplit]])

لیستی از substringهای دیده شده در String  را باز می گرداند.

مقدار sep جداکننده مورد نظر می باشد. بهص ورت پیش فرض فاصله اضافه است (space).

 maxsplit نیز بیشنه تعداد splitها را مشخص می کند. 

به مثال توجه کنید :

var = “This is a good example”
print (var.split())
# [‘This’, ‘is’, ‘a’, ‘good’, ‘example’]
print (var.split(‘ ‘, 3))
# [‘This’, ‘is’, ‘a’, ‘good example’]

splitlines(num)

String  را بر اساس خطوط Split می کند.

num یه عدد مثبت است که تعداد break که باید در لیست شامل شود را مشخص می کند.

تابع join(seq) در پایتون :

join(seq)

seq دنباله ای از المان هایی هست که باید join شوند.

به مثال توجه کنید:

seq=(‘ab’,’bc’,’cd’)
str=’=’
print (str.join(seq))
# ab=bc=cd

این مثال رو نیز خودتون امتحان کنید تا ببینید خروجی چی میشه  :

words = ["How","are","you","doing","?"]
sentence = ' '.join(words)
print(sentence)

 

دیگه داریم به آخراش نزدیک میشیم 🙂 منم دیگه خسته شدم 🙂 

یه تعداد توابع مربوط به String مونده که تو این بخش آخز از مبحث String در موردشون صحبت می کنیم :

تابع lstrip([chars]) در پایتون :

lstrip([chars])

String را پس از حذف کردن کاراکترهایی از ابتدای String  باز می گرداند.

Chars : کاراکترهایی است که باید از String پیراسته شود را مشخص می کند (به صورت پیش فرض خط فاصله سفید میباشد whitespace)

var=’ This is a good example ‘
print (var.lstrip())
# This is a good example
var=’*****This is a good example*****’
print (var.lstrip(‘*’))
# This is a good example**********

تابع  rstrip() در پایتون:

همانند تابع فوق می باشد فقط از انتهای String شروع به پیراستن می کند.

var=’ This is a good example ‘
print (var.rstrip())
# This is a good example
var=’*****This is a good example*****’
print (var.lstrip(‘*’))
# *****This is a good example

تابع len(string) در پایتون :

len(string)

طول Stringداده شده بهش را بر می گرداند.

var=’This is a good example’
print (len(var))
# 22

تابع rindex(str[,i [,j]]) در پایتون :

rindex(str[,i [,j]])

به جستجوی str  درکل String می پردازد (اگر i  و  j  تعریف نشده باشد) یا د ر زیر String مورد نظر به جستجو می پردازد (در صورت تعریف i و j). این تابع آخرین ایندکس را در صورت پیدا کردن ‘str’ باز می گرداند. در صورت پیدا نکردن استثنای ‘ValueError’  را بلند می کند.

var=’This is a good example’
str=’is’
print (var.rindex(str,0,10))
# 5
print (var.rindex(str,10))
# ValueError: substring not found

 

برای جستجو کردن داخل یک String می توان از in نیز استفاده کرد، به مثال زیر توجه کنید:

s = "That I ever did see. Dusty as the handle on the door"

if "Dusty" in s:
    print("query found")

برای تبدیل کلمه به حروف در پایتون نیز کافیه به صورت زیر عمل کنید :

word = "Easy"
x = list(word)
print(x)

تابع Strip در پایتون : تمام whitespaceها را از ابتدا و انتهای Stringحذف می کند:

a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"

 

توابع ord و chr درپایتون :

ord()  – کد اسکی کاراکتر را بر می گرداند.

chr() – کاراکتر منتسب به کد اسکی داده شده را بر می گرداند.

>>> ch = 'b'
>>> ord(ch)
98
>>> chr(97)
'a'
>>> ord('A')
65

 

سعی می کنم این قسمت از آموزش رو هر از چند گاهی اگه به مورد جدید از توابع Stringبر خوردم که کاربردی بودند و زیاد تخصصی نبودن کامل کنم.

 

آموزش ها از قرار زیر هستند (در حال تکمیل) :