رشتهها
محاسبه طول متن
len
یک تابع داخلی در پایتون است که تعداد کاراکترهای یک رشته را برمیگرداند.
= 'banana'
fruit = len(fruit) length
حال اگر این عدد را به عنوان اندیس متغیر رشته استفاده کنیم، آخرین کاراکتر رشته را بدست میآوریم:
= fruit[length - 1]
last print(last)
a
دلیل این تفریق این است که شماره اندیس اولین کاراکتر رشته، با صفر شروع میشود.
بنابراین برای دستیابی به موقعیتهای دیگر یک رشته، میتوان اندیسها را تغییر داد:
= 'banana'
fruit 3] fruit[:
ana
رشتهها تغییرناپذیرند
درعین حال اینکه میتوان به همه کاراکترهای یک رشته دست پیدا کرد، اما نمیتوان کاراکتر دیگری را جایگزین یکی از کاراکترهای رشته کرد:
= 'Hello, world!'
greeting 0] = 'J' greeting[
اگر این دستور را اجرا کنید، با خطا مواجه میشوید، چراکه رشتهها قابل تغییر نیستند.
عملگر in
گاربرد این عملگر زمانی است که میخواهیم بدانیم آیا یک رشته حاوی یک رشته و یا کاراکتر خاصی هست یا خیر:
'a' in 'banana'
و یا این حالت:
'seed' in 'banana'
همچنین با استفاده از عملگرهای <
و >
میتوانیم رشتهها را از نظر ترتیب حروف الفبا با یکدیگر مقایسه کنیم:
if word < 'banana':
print('Your word,' + word + ', comes before banana.')
elif word > 'banana':
print('Your word,' + word + ', comes after banana.')
else:
print('All right, bananas.')
متدهای رشتهای
]
پایتون تابعی به نام dir
دارد که متدهای مربوط به یک شیئ را لیست میکند و همچنین با استفاده از type
میتوانیم نوع شیئ را تشخیص دهیم:
= 'Hello world'
stuff type(stuff)
<class 'str'>
dir(stuff)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
روش دیگر برای یافتن موقعیت یک زیررشته و یا یک کاراکتر خاص در یک رشته اصلی، استفاده از متد [find
]{dir-ltr} میباشد:
= 'banana'
word = word.find('a')
index print(index)
1
خوب است با متدهای strip
و startwith
و
lower
برای آشنایی بیشتر با متدهای رشتهای، در برنامه پایتون خودمان تمرین کنیم.
عملگر فرمت
عملگر format
%
، به ما اجازه میدهد تا رشتهها را بسازیم و بخشهایی از رشتهها را با دادههای ذخیره شده در متغیرها جایگزین کنیم:
= 42
camels '%d' % camels
'42'
در مثال بالا توانستیم حروف 4 و 2 را به عدد 42 تبدیل کنیم.
d
مخفف “اعشاری” است. و یا این مثال:
= 42
camels 'I have spotted %d camels.' % camels
'I have spotted 42 camels.'
به همین ترتیب، عملگرهای %g
و %s
وظیفه قالببندی یک عدد ممیز شناور و قالببندی یک رشته را به عهده دارند:
= 'In %d years I have spotted %g %s.' % (3, 0.1, 'camels')
fmt_string
print(fmt_string)
'In 3 years I have spotted 0.1 camels.'
یک شکل جدید از قالب رشتهای در نسخههای جدید پایتون استفاده از f''
یا همان f-string است.
= 27
age = "Mohsen"
name
= f"Mr {name} is {age} years old."
text print(text)
Mr Mohsen is 27 years old.