در پایتون هرچیزی یک شی است و رشتهها نیز شی محسوب میشوند. در پایتون میتوان رشتهها را به سادگی و با قراردادن کارکترها در دابل کوتیشن (“”) ایجاد کرد.
برای مثال:
var = “Hello World!”
دسترسی به محتوای رشتهها در پایتون
پایتون از نوع داده کارکتر پشتیبانی نمیکند، بلکه با آنها به منزلهی رشتهای با طول یک و همچنین به عنوان زیررشته (substring) برخورد می شود.
برای بخش کردن یک رشته و بدست آوردن یک زیررشته، از کروشهها همراه با ایندکس استفاده میکنیم.
var1 = "Guru99!" var2 = "Software Testing" print ("var1[0]:",var1[0]) print ("var2[1:5]:",var2[1:5])
خروجی:
var1[0]: G var2[1:5]: oftw
عملگرهای مختلف رشتهای
عملگرهای رشتهای مختلفی وجود دارند که به طرق مختلف میتوان از آنها استفاده کرد، مانند الحاق رشتههای مختلف.
فرض کنید که a=guru و b=99 باشد، آنگاه «a+b= guru99». به طرز مشابه، اگر عبارت a*2 را بکار ببندید، حاصل «GuruGuru» خواهد شد. میتوان از عملگرهای دیگر رشتهای نیز به شرح زیر استفاده کرد.
عملگر |
توضیح |
مثال |
|
[] |
رشته را بخش می کند، حروف ایندکسهای داده شده را برمیگرداند. | a[1] حرف «u » را از واژه Guru به صورت زیر خواهد داد.
( 0=G, 1=u, 2=r and 3=u) |
x="Guru" print (x[1]) |
[ : ] | بخش کردن محدودهای – کارکترهای محدوده مورد نظر را برمیگرداند. | x[1:3] بخش «ur» از واژه Guru را برمیگرداند. به یاد داشته باشید که 0 که G است را در نظرنمیآورد، بلکه کلمه بعد از آن یعنی ur را برمیگرداند. |
x="Guru" print (x[1:3])
|
in | عضویت – اگر یک حرف درون رشته موجود باشد، مقدار true را برمیگرداند. | حرف u در کلمه Guru وجود دارد و بنابراین مقدار 1(True) برگردانده می شود. |
x="Guru" print ("u" in x) |
not in | عضویت – اگر یک حرف درون رشته موجود نباشد، مقدار true را برمی گرداند. |
حرف l در کلمه Guru وجود دارد و بنابراین مقدار 1(True) برگردانده می شود. |
x="Guru" print ("l" not in x) |
r/R | معنای کارکترهای escape را نادیده میگیرد و خود کارکترها را به صورت خام در رشته منظور میکند. |
’Print r’\n مقدار n\ را چاپ می کند و ’R’\n مقدارn\ را چاپ میکند. |
|
%- برای فرمت دهی رشته | بیان رشتهای استاندارد شی را قرار میدهد (مثلاً repr(o) %s) بیان رشتهای شی را برمیگرداند. %d (str(o)) یک عدد را برای نمایش فرمت دهی میکند. |
خروجی این کد برابر خواهد بود با «guru99». |
name = 'guru' number = 99 print ('%s %d' % (name,number))
|
+ | دو رشته را به هم الحاق میکند. |
رشتهها را به هم چسبانده و نتیجه را برمیگرداند. |
x="Guru" y="99" print (x+y) |
* | تکرار | کارکتر را دوبار چاپ می کند. |
x="Guru" y="99" print (x*2) |
چند مثال دیگر
در پایتون میتوان رشتهها را با اختصاص مجدد یک متغیر به رشته ای دیگر آپدیت کرد. مقدار جدید میتواند وابسته به رشته قبلی بوده و یا کاملاً مستقل از آن باشد.
x = "Hello World!" print(x[:6]) print(x[0:6] + "Guru99")
خروجی
Hello Hello Guru99
نکته: Slice:6 یا 0:6 اثر مشابه دارند.
متد ()replace در رشتهها
متد ()replace یک کپی از رشته گرفته و بخشی از رشته قدیمی را با یک مقدار جدید جایگزین می کند.
oldstring = 'I like Guru99' newstring = oldstring.replace('like', 'love') print(newstring)
خروجی
I love Guru99
تغییر رشتههای حروف بزرگ و حروف کوچک
در پایتون، میتوان رشته را به حروف بزرگ یا حروف کوچک تغییر داد
string="python at guru99" print(string.upper())
خروجی
PYTHON AT GURU99
همچنین می توان توابع دیگر مثل capitalize را اجرا کرد
string="python at guru99" print(string.capitalize())
خروجی
Python at guru99
همچنین میتوان رشتهها را به حروف کوچک تبدیل کرد
string="PYTHON AT GURU99" print(string.lower())
خروجی
python at guru99
استفاده از تابع «join» برای رشتهها
تابع join روشی منعطفتر برای الحاق رشتهها میباشد. با تابع join، میتوان هر کارکتری را به رشته اضافه کرد.
برای مثال، اگر بخواهید کارکتر (:) را بعد از هرکارکتری از رشته «Python» قرار دهید، میتوانید از کد زیر استفاده کنید
print(":".join("Python"))
خروجی
P:y:t:h:o:n
معکوس کردن یک رشته
با استفاده از تابع reverse، میتوان یک رشته را معکوس کرد. برای مثال، اگر رشته «12345» را در اختیار داشته باشیم و بخواهیم تابع reverse را روی آن اعمال کنیم، به صورت زیر عمل میکنیم :
string="12345" print(''.join(reversed(string)))
خروجی
54321
تکه تکه کردن (Split) رشتهها
تابع Split تابع دیگری است که میتوان در پایتون بر روی رشتهها اعمال کرد. اجازه دهید روی رشته «guru99 career guru99» آن را اعمال کنیم. ابتدا، رشته را با استفاد از دستور word.split بخش کرده و خروجی آن را ملاحظه میکنیم.
word="guru99 career guru99" print(word.split(' '))
خروجی
['guru99', 'career', 'guru99']
برای درک بهتر این تابع، مثال دیگری از split را خواهیم دید که در آن فضای خالی (‘ ’) را با (‘r’) جایگزین میکنیم، بدین ترتیب هرجایی که ‘r’ وجود داشته باشد، رشته تقسیم میشود.
word="guru99 career guru99" print(word.split('r'))
خروجی
['gu', 'u99 ca', 'ee', ' gu', 'u99']
نکته مهم:
در پایتون، رشتهها غیرقابل تغییر (immutable) هستند.
کد زیر را ملاحظه کنید:
x = "Guru99" x.replace("Guru99","Python") print(x)
خروجی
Guru99
کماکان مقدار Guru99 برگردانده میشود. این موضوع به این خاطر است که x.replace(“Guru99”,”Python”) یک کپی از X را با مقدار جایگزین شده برمیگرداند.
میتوان با استفاده از کد زیر تغییرات را مشاهده کنید.
x = "Guru99" x = x.replace("Guru99","Python") print(x)
خروجی
Python
کدهای بالا مثالهای پایتون ۳ هستند. اگر بخواهید آنها را در پایتون ۲ اجرا کنید، کد زیر را بکار ببرید.
مثال پایتون ۲
#Accessing Values in Strings var1 = "Guru99!" var2 = "Software Testing" print "var1[0]:",var1[0] print "var2[1:5]:",var2[1:5] #Some more examples x = "Hello World!" print x[:6] print x[0:6] + "Guru99" #Python String replace() Method oldstring = 'I like Guru99' newstring = oldstring.replace('like', 'love') print newstring #Changing upper and lower case strings string="python at guru99" print string.upper() string="python at guru99" print string.capitalize() string="PYTHON AT GURU99" print string.lower() #Using "join" function for the string print":".join("Python") #Reversing String string="12345" print''.join(reversed(string)) #Split Strings word="guru99 career guru99" print word.split(' ') word="guru99 career guru99" print word.split('r') x = "Guru99" x.replace("Guru99","Python") print x x = "Guru99" x = x.replace("Guru99","Python") print x
خروجی
var1[0]: G var2[1:5]: oftw Hello Hello Guru99 I love Guru99 PYTHON AT GURU99 Python at guru99 python at guru99 P:y:t:h:o:n 54321 ['guru99', 'career', 'guru99'] ['gu', 'u99 ca', 'ee', ' gu', 'u99'] Guru99 Python
پایتون یک تابع format. نیز معرفی کرده که با استفاده از عبارت d% و … رشته را فرمتدهی میکند.
خلاصه
از آنجایی که پایتون یک زبان برنامهنویسی شیگرا است، توابع بسیاری را میتوان بر روی اشیا آن اعمال کرد. ویژگی قابل توجه پایتون تورفتگی دستورات سورس (indenting) برای خواندن آسانتر کد میباشد.
- دسترسی به محتوای رشتهها از طریق بخش بندی (Slicing) – کروشهها همراه با ایندکس، برای بخشبندی و بدست آوردن یک زیررشته بکار می روند.
در بخشبندی، اگر محدوده مشخص شود [1:5]، در حقیقت مقدار محدودهی [1:4] اخذ میشود.
- میتوان رشتههای پایتون را با اختصاص یک رشته جدید آپدیت کرد.
- متد ()replace یک کپی از مقدار رشته را با جایگزینی یک مقدار جدید در رشته برمیگرداند.
ساختار متد: replace: replace(“value to change”, “value to be replaced”)
- عملگرهای رشتهای، مانند []، [:] ، in، not in و … را میتوان برای الحاق رشتهها، قرار دادن یا گرفتن یک کارکتر مشخص درون رشته و یا بررسی وجود یک کارکتر خاص در رشته بکار بست.
- دیگر عملگرهای رشته ای شامل
- تغییر به حروف بزرگ یا حروف کوچک
- تابع join برای چسباندن کارکترها درون یک رشته
- معکوسسازی یک رشته
- تکه تکه کردن رشته
می باشد.
منبع : ترجمه از سایت guru99
خیلی ممنون از اینکه وقت گذاشتین و آموزش رشتهها در پایتون را مطالعه کردین. امیدواریم براتون مفید واقع شده باشه. در جلسه بعد آموزش پایتون همراه ما باشید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.