امروز تصمیم دارم در رابطه با رشته ها در پایتون کمی مطلب بنویسم. فکر کنم خوانندگان عزیزی که تا حالا پایتون رو با من جلو اومده باشند متوجه پیشرفت خودشون و آموزشی که میبینن شده باشند. چون شما کم کم میتونید ی بازی هایی با زبان پایتون بکنید و محاسبات ریاضی و … رو انجام بدید. امروز و روزهای دیگه که مطلب رشته ها در پایتون رو تموم کنم حتما متوجه میشید که روند پیشرفتتون داره بهتر هم میشه.
رشته ها یکی از معروفترین و شناخته شده ترین انواع داده ای در زبان پایتون هستند که اون ها رو میتونیم بین ” ” و ‘ ‘ و یا “”” “”” بیاوریم. برای مثال فرض کنید دو متغیر داریم که میخوایم بهشون مقدار رشته ای به صورت زیر تخصیص بدیم:
1 2 |
var1 = 'Hello World!' var2 = "Python Programming" |
دسترسی داشتن به رشته ها
نوع کاراکتری در پایتون عملا چیز بی معنایی هست و شما برای دسترسی داشتن به بخشی از رشته باید بدونید در پیاتون چیزی به اسم زیر رشته داریم و برای اون باید از علامت [] استفاده کرد.
برای درک بهتر یک مثال قرار دادم که توش دو رشته تعریف شده و ادامه ماجرا:
1 2 3 4 5 |
#!/usr/bin/python var1 = 'Hello World!' var2 = "Python Programming" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5] |
بعد از اجرا خروجی به صورت زیر دریافت خواهید کرد:
1 2 |
var1[0]: H var2[1:5]: ytho |
همونطور که میبینید در رشته ها هر کاراکتر یک مقدار اندیسی داره که این مقدار از ۰ شروع میشه. در var1 صفرمین کاراکتر برابر H و در var2 وقتی مینویسید از ۱ تا ۵ برو به این معناست که از کارکتر یکم شروع کن و تا قبل از کاراکتر پنجم رو چاپ کن.
آپدیت کردن رشته ها
شما میتونید در پایتون اگر یک رشته ای رو تعریف کردید اون رو وسط برنامه تغییر بدید یا به اصطلاح آپدیت کنید. به مثال زیر توجه کنید:
1 2 3 |
#!/usr/bin/python var1 = 'Hello World!' print "Updated String :- ", var1[:6] + 'Python' |
در این مثال شما یک متغیر رشته ای تعریف میکنید. بعد میگید از ابتدا تا کارکتر پنجم رو چاپ کن و سپس کلمه python رو بهش اضافه کن. برای همین بعد از اجرا خروجی زیر رو دریافت خواهید کرد:
1 |
Updated String :- Hello Python |
کاراکترهای غیرقابل چاپ
در پایتون کاراکترهایی وجود داره که بهشون Scape Character یا کاراکتر های غیر قابل چاپ شدن هم میگن. من این کارکتر ها رو با توضیح مختصری آوردم:
- a\: این کاراکتر تولید صدا میکنه (بوق میزنه 🙂 )
- b\: این کاراکتر کار backspace در کیبورد شما رو انجام میده
- cx\: این کاراکتر نقش کنترل + x رو داره
- Cx\: این کاراکتر هم نقش کنترل + x رو داره
- e\: این کاراکتر نقش کلید scape در کیبورد شما رو داره
- n\: این کاراکتر عبارت رو به خط بعد میبره
- s\: این کارکتر نقش space در کیبورد شما رو داره
- t\: این کاراکتر نقش tab رو در کیبورد شما داره
باز هم البته کاراکتر های دیگه هستند که بخاطر اینکه این کاراکترها زیاد استفاده نمیشه و خودم هم شاید استفاده نکرده باشم قرار ندادم.
عملگرهای رشته ای
این ها یک سری عملگر های ریاضی هستند که در رشته ها هم شاید با قابلیت های تقریبا مشابهی استفاده میشن. اگر فرض کنیم که ‘a=’Hello و ‘b=’Python باشه اون وقت خواهیم داشت:
- +: دو کاراکتر رو به هم اضافه میکنه یعنی خروجی a+b خواهد بود: HelloPython
- *: خروجی a*2 مثلا خواهد بود: HelloHello
- []: مثلا [a[1 خواهد بود: e
- [:]: مثلا [a[1:4 خواهد بود: ell
- in: مثلا H in a یعنی اگر H در a بود مقدار ۱ رو بر میگردونه
- not in: مثلا M not in a یعنی اگر M در a نبود مقدار ۱ رو برمیگردونه
- r و R: این دو حرف میگه عبارتی رو که میخوای چاپ کنی به چشم یک عبارت خام ببین. یعنی اگر داشته باشیم ‘print ‘r \n یا اگر بگیم ‘print ‘R \n دیگه عبارت n\ رو به عنوان کاراکتر های غیرقابل چاپ نمیدونه و اون ها رو چاپ میکنه.
- %: این یک کاراکتر فرمت هست که در ادامه به مثالی در این باره می پردازم.
عملگر فرمت رشته
شما با استفاده از % میتونید مثلا به صورتی عمل کنید و بگید که یک مقدار عددی یا رشته ای رو میخوام جایگزین مقداری که تعیین کردم بکنم. این روش برای مقادیری که میخواین جایگزین کنید و متغیر هستند و یا در طول برنامه تولید میشن خیلی مناسبه:
1 2 |
#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Ali', 70) |
خروجی اسکریپت به صورت زیر خواهد بود:
1 |
My name is Ali and weight is 70 kg! |
در مثالی که آورده شد به دو نوع d و s اشاره شد. حالا ی نگاه کلی به انواع اونها میندازیم:
- c%: بیانگر کاراکتر است.
- s%: بیانگر رشته است.
- i%: اینتیجر علامت دار از نوع دسیمال
- d%: اینتیجر علامت دار از نوع دسیمال
- u%: اینتیجر بدون علامت از نوع دسیمال
- o%: اینتیجر از نوع اکتال
- x%: اینتیجر هگزادسیمال (حروف کوچک)
- X%: اینتیجر هگزادسیمال (حروف بزرگ)
- e%: اکسپوننت
- E%: اکسپوننت
- f%: حروف کوچک
- g%: کوتاه تر از f% و e%
- G%: کوتاه تر از f% و E%
رشته های بلند تر – پاراگراف
برای بیان پاراگراف در پایتون از “”” “”” استفاده میشه. به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 |
#!/usr/bin/python para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """ print para_str; |
بعد از اجرای اسکریپت خروجی معادل زیر رو خواهید دید:
1 2 3 4 5 6 7 |
this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up. |
همچنین به اسکریپت زیر که به دو نوع معمول و خام داده رو چاپ میکنه توجه کنید:
1 2 3 |
#!/usr/bin/python print 'C:\\nowhere' print r'C:\\nowhere' |
این اسکریپت خروجی زیر رو نمایش خواهد داد:
1 2 |
C:\nowhere C:\\nowhere |