رشتهها و پردازش متن
حروف را پیدا کن، متن را برش بده و بخش مورد نیاز را استخراج کن.
بعد از این فصل میتوانی…
- اندیس و برش رشته را به کار ببری.
- متن را پاکسازی و جستوجو کنی.
- با پیمایش رشته، نویسهها را بشماری.
پیشنهاد برای پیشنیاز: حلقهها و الگوهای تکرار
رشتهها و پردازش متن
ویدیوی این فصل هنوز اضافه نشده است. میتوانی همین حالا آموزش متنی و تمرینها را شروع کنی.
رشته، طول و اندیس
رشته دنبالهای از نویسههاست. اندیس از صفر شروع میشود؛ در "banana"، اندیس ۱ حرف a است. len() تعداد نویسهها را میدهد. رشتههای پایتون ۳ از Unicode پشتیبانی میکنند و متن فارسی هم رشته است.
آخرین اندیس مثبت len(text) - 1 است. دسترسی مستقیم به اندیس بیرون رشته، IndexError میدهد. برای متن خالی نیز text[0] مجاز نیست.
دیدن حروف
fruit = "banana"
print(fruit[0])
print(fruit[1])
print(len(fruit))خروجی مورد انتظار
b a 6
برش و چسباندن متن
در text[start:end]، شروع داخل برش است اما پایان داخل آن نیست. حذف start یعنی از ابتدا، و حذف end یعنی تا انتها. + دو رشته را به هم میچسباند.
خود رشته تغییرپذیر نیست؛ text[0] = "A" خطاست. برای تغییر، رشتهٔ جدید بساز و آن را در متغیر نگه دار.
برش نام زبان
text = "Monty Python"
print(text[6:12])
print(text[:5])
print("Hello" + " " + "Python")خروجی مورد انتظار
Python Monty Hello Python
پیمایش و شمارش
for میتواند حروف رشته را یکییکی بخواند. با یک شرط و شمارنده، تعداد یک حرف را پیدا کن. عملگر in هم وجود یک زیررشته را به صورت True یا False نشان میدهد.
چند حرف a داریم؟
count = 0
for letter in "banana":
if letter == "a":
count += 1
print(count)
print("nan" in "banana")خروجی مورد انتظار
3 True
متدهای پاکسازی و جستوجو
strip() فاصلههای ابتدا و انتها را حذف میکند، lower() و upper() حروف را تبدیل میکنند، و replace() متن را جایگزین میکند. این متدها رشتهٔ جدید میسازند؛ اصل رشته تغییر نمیکند.
find() محل اولین تطبیق یا -1 را میدهد. startswith() و endswith() ابتدا و انتهای رشته را میسنجند. مقایسهٔ رشتهها به حروف بزرگ و کوچک حساس است؛ برای دادهٔ انگلیسی میتوان پیش از مقایسه lower() را به کار برد.
پاکسازی پیام
message = " Hello Bob "
clean = message.strip().replace("Bob", "Sara")
print(clean)
print(clean.lower())
print(clean.find("Sara"))خروجی مورد انتظار
Hello Sara hello sara 6
استخراج بخشی از متن
برای جدا کردن دامنهٔ یک ایمیل ساده، جای @ را پیدا کن و بخش بعد از آن را برش بده. ابتدا مطمئن شو find نتیجهٔ -1 نداده است.
در فصل فهرستها با split و در فصل عبارت منظم با re همین مسئله را از راه دیگری حل میکنیم.
دامنهٔ ایمیل آموزشی
email = "sara@example.org"
position = email.find("@")
if position != -1:
print(email[position + 1:])خروجی مورد انتظار
example.org
نام کاربری مرتب
متن « Sara_Python » را از ورودی بگیر، فاصلههای دو طرف را حذف کن، حروف را کوچک کن و نام تمیزشده و طول آن را چاپ کن.
یک راهنمای کوچک
نتیجهٔ strip().lower() را در یک متغیر نگه دار.
پاسخ پیشنهادی و خروجی
username = input() clean = username.strip().lower() print(clean) print(len(clean))
خروجی نمونه
sara_python 11
خودآزمایی
پاسخ را انتخاب کن و دلیل آن را بخوان. این بخش برای تمرین است و نمرهٔ رسمی ثبت نمیکند.