رشتهها: کار با متن (Strings)
متن توی پایتون یه رشتهست، یه ردیف کاراکتر بین دو تا گیومه. رشتهها رو به هم میچسبونی، طولشون رو میگیری، کاراکترها رو با جاشون برمیداری و با f-string جمله میسازی.
رشتهها
متن بین گیومهها زندگی میکنه
رشته یه ردیف کاراکتره بین گیومه. گیومهی تکی یا دوتایی هر دو کار میکنن، به شرطی که جفت هم باشن: "Sara" و 'Sara' یه رشتهان. هر چیزی بین گیومه متنه، حتی رقم، پس "5" کاراکتر 5ـه، نه عدد پنج. حرفها، فاصله، علامتها و متن فارسی همه کاراکترن.
"5" + "5" میشه "55"، چون چسبوندن دو تیکه متن فقط اونها رو کنار هم میذاره.
first = "سارا"
last = "کریمی"
print(first + " " + last)
print("ha" * 3)
print(len("سلام"))سارا کریمی
hahaha
4+ رشتهها رو پشت سر هم میچسبونه، پس فاصلهی بین اسمها رو باید خودت اضافه کنی. * یه رشته رو تکرار میکنه. len() کاراکترها رو میشمره: «سلام» ۴ تا کاراکتر داره. فاصله هم حساب میشه، پس len("hi there") میشه 8.
خودت رو امتحان کن
print("ab" * 3)abababab3ab ab ababab
جواب رو ببین
abababاندیسگذاری
هر کاراکتر یه جایگاه داره که از 0 شروع میشه
کروشه بعد از یه رشته، یه کاراکتر رو با جایگاهش برمیداره، یعنی با اندیس (index)ـش. شمردن از 0 شروع میشه، پس توی word = "Python"، word[0] میشه P و word[5] میشه n. جایگاههای منفی از آخر به عقب میشمرن: word[-1] همیشه آخرین کاراکتره. اگه جایگاهی رو بخوای که وجود نداره، مثل word[6]، برنامه با IndexError: string index out of range متوقف میشه.
Python شش تا کاراکتر داره، پس جایگاههاش از 0 تا 5ـه، یکی کمتر از طولش.
خودت رو امتحان کن
word = "Python"
print(word[0] + word[-1])PnPyPonP
جواب رو ببین
Pnقدمبهقدم ببین

word = "Python": شش تا خونه توی یه ردیفرشتهی "Python" به شکل شش تا خونهی کنار هم کشیده شده، توی هر کدوم یه کاراکتر، و اسم word سمت چپشه. رشته همینه: کاراکترهایی که به ترتیب نگه داشته شدن، هر کدوم سر جای خودش.

هر خونه یه شمارهی جایگاه میگیره زیر خونهها جایگاهشون نوشته شده، از 0 تا 5: شمردن از 0 شروع میشه، پس ششمین کاراکتر، یعنی n، توی جایگاه 5ـه. ردیف کمرنگتر بالا از آخر به عقب میشمره، از -6 روی P تا -1 روی n.

word[0]میشه P وword[-1]میشه nکروشه یه کاراکتر رو با جایگاهش برمیداره. فلش
word[0]به اولین خونه، یعنی P، اشاره میکنه وword[-1]به آخرین خونه، یعنی n؛ هر دو خونه روشن میشن.
word[0:3]خونههای 0 تا 2 رو برمیداره: "Pyt"یه براکت زیر خونههای 0 و 1 و 2 کشیده شده با برچسب
word[0:3]، و یه فلش به "Pyt". خط نارنجی روی جایگاه 3 ایستاده، جایی که برش تموم میشه: شروع حساب میشه ولی پایان نه، پس h که توی جایگاه 3ـه جا میمونه.
خودت رو امتحان کن
"Python"[0:3] چی میشه؟
- Pyt
- Pyth
- yth
- Py
جواب رو ببین
Pyt
درسته. برش از عدد اول شروع میشه و درست قبل از عدد دوم تموم میشه، پس جایگاههای 0 و 1 و 2 رو برمیداره: P و y و t.
word = "Python"
print(word[2:])
print("sara".upper())
print(" hi ".strip())
print("a-b".replace("-", "+"))thon
SARA
hi
a+bاگه آخر برش رو ننویسی، تا آخر رشته میره: word[2:] میشه thon. متدها (method) کارهاییان که یه رشته بلده انجام بده و بعد از یه نقطه نوشته میشن: upper() حروف رو بزرگ میکنه، strip() فاصلههای دو سر رو برمیداره، و replace() یه تیکه متن رو با یه تیکهی دیگه عوض میکنه. هر کدوم یه رشتهی جدید پس میدن.
name = "امید"
age = 30
print(f"{name} {age} سالشه")
print(f"سال بعد: {age + 1}")امید 30 سالشه
سال بعد: 31یه f-string درست قبل از گیومهی باز یه f داره. هر چیزی بین آکولادها حساب میشه و وسط متن گذاشته میشه، عدد هم همینطور، پس لازم نیست خودت چیزی رو تبدیل کنی یا بچسبونی. این راحتترین راه قاطی کردن متن و عدده.
خودت رو امتحان کن
age = 30print("Age: " + age)
جواب رو ببین
اشکال توی خط ۲.
پیداش کردی. + میتونه دو تا رشته رو به هم بچسبونه، ولی age عدده، پس پایتون با TypeError: can only concatenate str (not "int") to str متوقف میشه. بنویس print(f"Age: {age}")، یا عدد رو با str(age) به متن تبدیل کن.
خودت رو امتحان کن
با word = "Python"، word[6] آخرین حرف، یعنی n، رو میده.
جواب رو ببین
نادرست
غلطه. جایگاهها از 0 شروع میشن، پس شش تا حرف توی جایگاه 0 تا 5 نشستن و توی 6 هیچی نیست: برنامه با IndexError متوقف میشه. آخرین حرف word[5]ـه، یا سادهتر word[-1].
مرور درس
- رشته متنیه بین گیومهی تکی یا دوتایی؛
"5"متنه، نه عدد. +رشتهها رو میچسبونه (فاصله رو خودت بذار)،*تکرارشون میکنه، وlen()کاراکترها رو میشمره، فاصله هم حساب میشه.- جایگاهها از 0 شروع میشن و
[-1]آخرین کاراکتره؛ جایگاهی بعد از آخر رشته IndexError میده. - برشی مثل
word[0:3]شروع رو شامل میشه و قبل از پایان تموم میشه؛ متدهایی مثلupper()یه رشتهی جدید پس میدن. - f-stringهایی مثل
f"{name} is {age}"متن و عدد رو قاطی میکنن؛"Age: " + 30یه TypeErrorـه.