متن (رشته) و f-string
- با
strip،lowerوupperمتن را تمیز کنی - با
inبفهمی یک متن داخل متن دیگر هست یا نه - با f-string پیام بسازی و عدد را با جداکنندهی هزارگان بنویسی
\nوlenرا بشناسی
رشته چیست؟
هر متنی داخل کوتیشن یک رشته (str) است. کوتیشن تکی و دوتایی فرقی ندارند: 'pen' و "pen" یکی هستند.
خودت امتحان کن
متدهای رشته
متد یعنی کاری که خود رشته بلد است انجام دهد. با نقطه صدا زده میشود: name.strip(). متدهای رشته متن اصلی را عوض نمیکنند؛ یک متن جدید برمیگردانند.
| متد | کار | مثال | نتیجه |
|---|---|---|---|
strip() | حذف فاصلههای اول و آخر | " pen ".strip() | "pen" |
lower() | همه کوچک | "Pen".lower() | "pen" |
upper() | همه بزرگ | "pen".upper() | "PEN" |
replace(a, b) | جایگزینی | "a-b".replace("-", " ") | "a b" |
خودت امتحان کن
fields['name'].get().strip() در خط ۷۸ پروژه فاصلههای اضافهی نام را میگیرد، و خط ۱۰۶ پروژه با .lower() جستوجو را به بزرگ و کوچکی حروف حساس نمیکند.
تمیز کردن نام کالا
raw را تمیز کن: فاصلههای اول و آخر حذف شوند و همهی حروف کوچک شوند. نتیجه را در name بگذار.
دیدن راهحل (اول خودت تلاش کن)
raw = " Blue PEN " name = raw.strip().lower()
آیا این متن داخل آن یکی هست؟ (in)
خودت امتحان کن
جدول کالاها در خط ۱۱۷ پروژه با if query in name.lower() فیلتر میشود. چون متن خالی داخل هر متنی هست، وقتی جستوجو خالی باشد همهی کالاها نشان داده میشوند.
f-string: ساختن پیام با مقدار متغیرها
اگر قبل از کوتیشن حرف f بگذاری، هر چیزی داخل {} حساب میشود و جایش قرار میگیرد:
خودت امتحان کن
قالب عدد: جداکنندهی هزارگان
بعد از اسم متغیر داخل {} یک : بگذار و قالب را بنویس. , یعنی جداکنندهی هزارگان و .0f یعنی بدون رقم اعشار:
خودت امتحان کن
خط جدید: \n
خودت امتحان کن
پیام گزارش فروش در خط ۱۱۱ پروژه همهی اینها را با هم دارد: f'تعداد فروختهشده: {count}\nدرآمد کل فروش: {income:,.0f}'.
پیام گزارش
متغیر text را با f-string بساز تا دقیقاً این باشد: درآمد: 1,234,568 (عدد با جداکنندهی هزارگان و بدون اعشار).
راهنمایی
قالب {income:,.0f} را داخل f-string بگذار.
دیدن راهحل (اول خودت تلاش کن)
income = 1234567.8 text = f"درآمد: {income:,.0f}"
جستوجوی بدون حساسیت به حروف
found را True یا False بگذار: آیا query (بعد از کوچک کردن) داخل name (بعد از کوچک کردن) هست؟
دیدن راهحل (اول خودت تلاش کن)
name = "Blue Pen" query = "PEN" found = query.lower() in name.lower()
آزمون این درس
برای گذراندن این درس حداقل ۸۰٪ جواب درست لازم است. هر چند بار خواستی میتوانی دوباره امتحان بدهی.