رشته ها در پایتون - بخش دوم
در بخش قبل اگه یادتون باشه ی توضیحاتی درباره رشته ها در پایتون دادم و حالا میخوام از توابع و ماژول هایی که برای رشته ها نوشته شده براتون بگم:
capitalize
این تابع قواعد نگارش رو در متن درست میکنه و جاهایی که نیاز هست رو به حر.ف بزرگ تبدیل میکنه. قاعده استفاده از این تابع به صورت زیر است:
str.capitalize()
#!/usr/bin/python
str = "this is string example....wow!!!";
print "str.capitalize() : ", str.capitalize()
str.capitalize() : This is string example....wow!!!
center
این تابع رشته ها رو میگیره و حاشیه اون رو با مدلی که شما تعریف میکنید تغییر میده. قاعده کلی استفاده از این تابع به شکل زیر است:
str.center(width[, fillchar])
#!/usr/bin/python
str = "this is string example....wow!!!";
print "str.center(40, 'a') : ", str.center(40, 'a')
خروجی اسکریپت به صورت زیر خواهد بود:
str.center(40, 'a') : aaaathis is string example....wow!!!aaaa
str.count(sub, start= 0,end=len(string))
#!/usr/bin/python
str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
sub = "wow";
print "str.count(sub) : ", str.count(sub
str.count(sub, 4, 40) : 2
str.count(sub, 4, 40) : 1
decode
این تابع از متدهای کودک ثبت شده برای انکودینگ استفاده میکنه. قاعده کلی استفاده از این تابه صورت زیر هست:
str.decode(encoding='UTF-8',errors='strict')
str = "this is string example....wow!!!";
str = str.encode('base64','strict');
print "Encoded String: " + str;
print "Decoded String: " + str.decode('base64','strict')
Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=
Decoded String: this is string example....wow!!!
encode
در تابع قبل من درباره رمزگشایی صحبت کردم. این تابع دقیقا بر عکس چیزی که در بالا گفته شد رو انجام میده و کار رمز نگاری رو برعهده داره. قاعده کلی اون به صورت زیر است:
str.encode(encoding='UTF-8',errors='strict')
#!/usr/bin/python
str = "this is string example....wow!!!";
print "Encoded String: " + str.encode('base64','strict')
که خروجی این اسکریپت به صورت زیر خواهد بود:
Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=
endswitch
این تابع یک مقداری به عنوان suffix میگیره و مشخص میکنه که آیا رشته با اون تموم شده یا نه. suffix میتونه حرف یا یک تاپل باشه. قاعده کلی استفاده از اون به صورت زیر است:
str.endswith(suffix[, start[, end]])
این تابع بسته به خروجی که داره دو مقدار True و False رو برمیگردونه. بخش اول که توضیح داده شد. بخش دوم و سوم مشخص میکنه که رشته رو از کجا تا کجا باید برای بررسی suffix حساب کنه. به مثال زیر توجه کنید:
#!/usr/bin/python
str = "this is string example....wow!!!";
suffix = "wow!!!";
print str.endswith(suffix);
print str.endswith(suffix,20);
suffix = "is";
print str.endswith(suffix, 2, 4);
print str.endswith(suffix, 2, 6);
خوب بعد از اجرا خروجی زیر رو دریافت خواهید کرد:
True
True
True
False
expandtabs
این تابع رشته ای رو که دارای فورم صحیحی از لحاظ رعایت فاصله ها نیست رو اصلاح میکنه و بسته به مقداری که میگیره در همون بخش یک tab با مقدار فاصله ای که بهش میگیم رو ایجاد میکنه. قاعده کلی استفاده از این دستور به صورت زیر است:
str.expandtabs(tabsize=8)
به مثال زیر توجه کنید:
#!/usr/bin/python
str = "this is\tstring example....wow!!!";
print "Original string: " + str;
print "Defualt exapanded tab: " + str.expandtabs();
print "Double exapanded tab: " + str.expandtabs(16);
بعد از اجرا خروجی زیر رو دریافت خواهید کرد:
Original string: this is string example....wow!!!
Defualt exapanded tab: this is string example....wow!!!
Double exapanded tab: this is string example....wow!!!
find
این تابع همونجور که مشخصه یک حرف از کاربر گرفته و اون رو در رشته مطابقت میده و شماره اندیسی که اون حرف در رشته باهاش شروع میشه رو برمیگردونه. اگر هم وجود نداشت مقدار 1- رو برمیگردونه. برای جستجو میتونید بهش بگید که از چه شماره اندیسی شروع و تا چه شماره اندیسی رو بگرده. قاعده کلی استفاده از اون به صورت زیر است:
str.find(str, beg=0 end=len(string))
برای درک بهتر به مثال زیر دقت کنید:
#!/usr/bin/python
str1 = "this is string example....wow!!!";
str2 = "exam";
print str1.find(str2);
print str1.find(str2, 10);
print str1.find(str2, 40);
بعد از اجرا خروجی زیر رو دریافت خواهید کرد:
15
15
-1
index
این تابع هم مثل تابع find هست با این تفاوت که اگر حرفی که داریم اون رو جستجو میکنیم وجود نداشت دیگه 1- برنمیگردونه و یک خطا برمیگردونه. قاعده کلی استفاده از اون به صورت زیر است:
str.index(str, beg=0 end=len(string))
به مثال زیر توجه کنید:
#!/usr/bin/python
str1 = "this is string example....wow!!!";
str2 = "exam";
print str1.index(str2);
print str1.index(str2, 10);
print str1.index(str2, 40);
بعد از اجرا خروجی زیر برای شما به نمایش در میاد:
15
15
Traceback (most recent call last):
File "test.py", line 8, in
print str1.index(str2, 40);
ValueError: substring not found
shell returned 1
این تابع درون یک رشته را بررسی میکنه که آیا مقدار آن تلفیقی از حروف و اعداد است یا خیر. اگر بود مقدار True و در غیر این صورت مقدار False را برمیگرداند. قاعده کلی استفاده از این تابع به صورت زیر است:
str.isa1num()
#!/usr/bin/python
str = "this2009"; # No space in this string
print str.isalnum();
str = "this is string example....wow!!!";
print str.isalnum();
True
Flase