پث‌وایز

شروع برنامه‌نویسی با پایتون (Intro to Python) · درس ۳ از ۱۲ · ۱۲ دقیقه

رشته‌ها: کار با متن (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)
  1. ababab
  2. ab3
  3. ab ab ab
  4. abab
جواب رو ببین
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])
  1. Pn
  2. Py
  3. Po
  4. nP
جواب رو ببین
Pn

قدم‌به‌قدم ببین

  1. word = "Python": شش تا خونه توی یه ردیف

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

  2. هر خونه یه شماره‌ی جایگاه می‌گیره

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

  3. word[0] می‌شه P و word[-1] می‌شه n

    کروشه یه کاراکتر رو با جایگاهش برمی‌داره. فلش word[0] به اولین خونه، یعنی P، اشاره می‌کنه و word[-1] به آخرین خونه، یعنی n؛ هر دو خونه روشن می‌شن.

  4. word[0:3] خونه‌های 0 تا 2 رو برمی‌داره: "Pyt"

    یه براکت زیر خونه‌های 0 و 1 و 2 کشیده شده با برچسب word[0:3]، و یه فلش به "Pyt". خط نارنجی روی جایگاه 3 ایستاده، جایی که برش تموم می‌شه: شروع حساب می‌شه ولی پایان نه، پس h که توی جایگاه 3‌ـه جا می‌مونه.

خودت رو امتحان کن

"Python"[0:3] چی می‌شه؟

  1. Pyt
  2. Pyth
  3. yth
  4. 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 داره. هر چیزی بین آکولادها حساب می‌شه و وسط متن گذاشته می‌شه، عدد هم همین‌طور، پس لازم نیست خودت چیزی رو تبدیل کنی یا بچسبونی. این راحت‌ترین راه قاطی کردن متن و عدده.

خودت رو امتحان کن

  1. age = 30
  2. print("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‌ـه.

فقط نخونش، نگهش دار

پث‌وایز هر ایده رو درست قبل از اینکه فراموشش کنی با یه سؤال کوتاه برمی‌گردونه. رایگان روی اندروید و وب، به فارسی و انگلیسی.

Cafe Bazaar Myket باز کردن نسخه‌ی وب

همه‌ی درس‌های این دوره

  1. اولین برنامه‌ت (Your First Program)
  2. متغیرها: اسم برای مقدارها (Variables)
  3. رشته‌ها: کار با متن (Strings)
  4. ورودی و نوع داده‌ها (Input and Types)
  5. تصمیم‌گیری با if (Conditionals)
  6. لیست‌ها: کلی مقدار یه‌جا (Lists)
  7. حلقه‌ها: دوباره و دوباره (Loops)
  8. تابع‌ها: به یه کار اسم بده، دوباره استفاده‌ش کن (Functions)
  9. دیکشنری‌ها: پیدا کردن با اسم (Dictionaries)
  10. خوندن پیام‌های خطا (Reading Errors)
  11. ذخیره و خوندن فایل (Files)
  12. پروژه‌ی آخر: حساب خرج‌ها (Final Project)