Python Learningاز صفر تا نوشتن پروژه از حفظ
درس ۲ · پایه‌ها

متن (رشته) و f-string

حدود ۴۰ دقیقه۳ تمرین۶ سؤال آزمون
بعد از این درس می‌توانی:
  • با strip، lower و upper متن را تمیز کنی
  • با in بفهمی یک متن داخل متن دیگر هست یا نه
  • با f-string پیام بسازی و عدد را با جداکننده‌ی هزارگان بنویسی
  • \n و len را بشناسی

رشته چیست؟

هر متنی داخل کوتیشن یک رشته (str) است. کوتیشن تکی و دوتایی فرقی ندارند: 'pen' و "pen" یکی هستند.

اجرا کن

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

Ctrl + Enter

متدهای رشته

متد یعنی کاری که خود رشته بلد است انجام دهد. با نقطه صدا زده می‌شود: name.strip(). متدهای رشته متن اصلی را عوض نمی‌کنند؛ یک متن جدید برمی‌گردانند.

متدکارمثالنتیجه
strip()حذف فاصله‌های اول و آخر" pen ".strip()"pen"
lower()همه کوچک"Pen".lower()"pen"
upper()همه بزرگ"pen".upper()"PEN"
replace(a, b)جایگزینی"a-b".replace("-", " ")"a b"
اجرا کن

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

Ctrl + Enter
در پروژه‌ی فروشگاه

fields['name'].get().strip() در خط ۷۸ پروژه فاصله‌های اضافه‌ی نام را می‌گیرد، و خط ۱۰۶ پروژه با .lower() جست‌وجو را به بزرگ و کوچکی حروف حساس نمی‌کند.

تمرین

تمیز کردن نام کالا

raw را تمیز کن: فاصله‌های اول و آخر حذف شوند و همه‌ی حروف کوچک شوند. نتیجه را در name بگذار.

Ctrl + Enter
دیدن راه‌حل (اول خودت تلاش کن)
raw = "   Blue PEN  "
name = raw.strip().lower()

آیا این متن داخل آن یکی هست؟ (in)

اجرا کن

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

Ctrl + Enter
در پروژه‌ی فروشگاه

جدول کالاها در خط ۱۱۷ پروژه با if query in name.lower() فیلتر می‌شود. چون متن خالی داخل هر متنی هست، وقتی جست‌وجو خالی باشد همه‌ی کالاها نشان داده می‌شوند.

f-string: ساختن پیام با مقدار متغیرها

اگر قبل از کوتیشن حرف f بگذاری، هر چیزی داخل {} حساب می‌شود و جایش قرار می‌گیرد:

اجرا کن

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

Ctrl + Enter

قالب عدد: جداکننده‌ی هزارگان

بعد از اسم متغیر داخل {} یک : بگذار و قالب را بنویس. , یعنی جداکننده‌ی هزارگان و .0f یعنی بدون رقم اعشار:

اجرا کن

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

Ctrl + Enter

خط جدید: \n

اجرا کن

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

Ctrl + Enter
در پروژه‌ی فروشگاه

پیام گزارش فروش در خط ۱۱۱ پروژه همه‌ی این‌ها را با هم دارد: f'تعداد فروخته‌شده: {count}\nدرآمد کل فروش: {income:,.0f}'.

تمرین

پیام گزارش

متغیر text را با f-string بساز تا دقیقاً این باشد: درآمد: 1,234,568 (عدد با جداکننده‌ی هزارگان و بدون اعشار).

Ctrl + Enter
راهنمایی

قالب {income:,.0f} را داخل f-string بگذار.

دیدن راه‌حل (اول خودت تلاش کن)
income = 1234567.8
text = f"درآمد: {income:,.0f}"
تمرین

جست‌وجوی بدون حساسیت به حروف

found را True یا False بگذار: آیا query (بعد از کوچک کردن) داخل name (بعد از کوچک کردن) هست؟

Ctrl + Enter
دیدن راه‌حل (اول خودت تلاش کن)
name = "Blue Pen"
query = "PEN"
found = query.lower() in name.lower()

آزمون این درس

برای گذراندن این درس حداقل ۸۰٪ جواب درست لازم است. هر چند بار خواستی می‌توانی دوباره امتحان بدهی.

۱. حاصل " pen ".strip() چیست؟
۲. حاصل "Pen".lower() چیست؟
۳. حاصل "" in "pen" چیست؟
۴. خروجی f"{1500:,.0f}" چیست؟
۵. اگر حرف f قبل از کوتیشن نباشد، "{qty}" چه چاپ می‌کند؟
۶. \n داخل متن یعنی چه؟