رشتهها
محاسبه طول متن
len یک تابع داخلی در پایتون است که تعداد کاراکترهای یک رشته را برمیگرداند.
fruit = 'banana'
length = len(fruit)حال اگر این عدد را به عنوان اندیس متغیر رشته استفاده کنیم، آخرین کاراکتر رشته را بدست میآوریم:
last = fruit[length - 1]
print(last)a
دلیل این تفریق این است که شماره اندیس اولین کاراکتر رشته، با صفر شروع میشود.
بنابراین برای دستیابی به موقعیتهای دیگر یک رشته، میتوان اندیسها را تغییر داد:
fruit = 'banana'
fruit[:3]ana
رشتهها تغییرناپذیرند
درعین حال اینکه میتوان به همه کاراکترهای یک رشته دست پیدا کرد، اما نمیتوان کاراکتر دیگری را جایگزین یکی از کاراکترهای رشته کرد:
greeting = 'Hello, world!'
greeting[0] = 'J'اگر این دستور را اجرا کنید، با خطا مواجه میشوید، چراکه رشتهها قابل تغییر نیستند.
عملگر 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 میتوانیم نوع شیئ را تشخیص دهیم:
stuff = 'Hello world'
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} میباشد:
word = 'banana'
index = word.find('a')
print(index)1
خوب است با متدهای strip و startwith و
lower
برای آشنایی بیشتر با متدهای رشتهای، در برنامه پایتون خودمان تمرین کنیم.
عملگر فرمت
عملگر format %، به ما اجازه میدهد تا رشتهها را بسازیم و بخشهایی از رشتهها را با دادههای ذخیره شده در متغیرها جایگزین کنیم:
camels = 42
'%d' % camels'42'
در مثال بالا توانستیم حروف 4 و 2 را به عدد 42 تبدیل کنیم.
d مخفف “اعشاری” است. و یا این مثال:
camels = 42
'I have spotted %d camels.' % camels'I have spotted 42 camels.'
به همین ترتیب، عملگرهای %g و %s وظیفه قالببندی یک عدد ممیز شناور و قالببندی یک رشته را به عهده دارند:
fmt_string = 'In %d years I have spotted %g %s.' % (3, 0.1, 'camels')
print(fmt_string)'In 3 years I have spotted 0.1 camels.'
یک شکل جدید از قالب رشتهای در نسخههای جدید پایتون استفاده از f'' یا همان f-string است.
age = 27
name = "Mohsen"
text = f"Mr {name} is {age} years old."
print(text)Mr Mohsen is 27 years old.