رشته‌ها (Strings)؛ اون نخ‌های جادویی که حرفاتو زنده می‌کنن
کد که می‌زنی، فقط عدد و بولین نیست؛ کلی حرف و کلمه و جمله هم هست که باید باهاشون کار کنی. اسم کاربر، پیغام خطا، آدرس سایت، شعر، ایموجی، رمز عبور... همه‌شون رشته هستن. پایتون برای رشته‌ها یه جعبه ابزار خفن گذاشته که اگه بشناسیشون، از یه تایپیست ساده تبدیل می‌شی به یه جادوگر متن. توی این مقاله قراره این جعبه ابزار رو باز کنیم و با هم ببینیم چطور یه تیکه متن معمولی رو تبدیل کنیم به یه اثر هنری.

رشته چیه؟ یه نخ و دونه‌های مهره
فرض کن یه نخ داری و روش یه سری مهره چیدی. هر مهره یه حرف، عدد، فاصله یا علامته. به کل این زنجیر مهره‌ها می‌گیم رشته (String). پایتون این نخ رو خیلی جدی می‌گیره و حتی یه دونه فاصله یا نقطه هم به حسابش میاد.


text = "Hello, Python 🐍"
empty = ""          # رشته خالی هم مجازه
number_str = "123"  # این رشته‌ست، نه عدد


هر کاراکتری داخل اون گیومه‌ها (' یا ") بخشی از رشته‌ست. پایتون هیچ فرقی بین گیومه تکی و دوتایی نمی‌ذاره، فقط باید ست باشی و جاباز نکنی. اگه بخوای یه جمله‌ای که توش گیومه داری رو راحت بنویسی، می‌تونی از نوع دیگه‌ش استفاده کنی:


quote = 'او گفت: "پایتون عالیه!"'  # گیومه تکی بیرون، دوتایی داخل


و برای متن‌های بلند که چند خط می‌شن، سه‌تا گیومه پشت سر هم (""" یا ''') رو بذار تا پایتون قاتی نکنه:


poem = """این یک شعر کوتاه است
که در دو خط نوشته می‌شود
و پایتون آن را کامل می‌فهمد."""


ایندکس و برش (Indexing & Slicing) – مهره‌ها رو یکی‌یکی یا دسته‌ای بردار
جادوی اصلی رشته‌ها اینجاست: می‌تونی به هر کاراکتر مثل یه خونه توی یه آپارتمان نگاه کنی. شمارهٔ خونه‌ها از صفر شروع می‌شه (خونهٔ صفر، اولیه). پس text[0] بهت حرف اول رو می‌ده. پایتون حتی شماره‌های منفی هم می‌فهمد، از آخر می‌شماره: text[-1] آخرین کاراکتر رو می‌ده.


name = "پایتون"
print(name[0])   # پ
print(name[2])   # ی
print(name[-1])  # ن


حالا بریم سراغ برش (Slicing). به جای یه مهره، یه بازه از مهره‌ها رو برمی‌داری. قالبش اینه: [start:stop:step]

start: از کجا شروع کنه (خودش شامل می‌شه).

stop: کجا تموم کنه (خودش شامل نمی‌شه).

step: گام، مثلاً یکی در میون.


msg = "سلام دنیا"
print(msg[0:4])    # سلام (از ایندکس ۰ تا ۳)
print(msg[5:10])   # دنیا (ایندکس ۵ تا ۹)
print(msg[:4])     # سلام (اگه start نذاری، از اول شروع می‌کنه)
print(msg[5:])     # دنیا (اگه stop نذاری، تا آخر می‌ره)
print(msg[::-1])   # این دنیا مالاس (برعکس کل رشته!)


نکتهٔ خفن: msg[::-1] مثل یه آینه عمل می‌کنه و رشته رو برعکس می‌کنه. تو امتحان‌های برنامه‌نویسی از این تیپ سوالا زیاد میاد، ولی بعداً عاشقش می‌شی.

مهم: رشته‌ها تو پایتون تغییرناپذیر (Immutable) هستن. یعنی نمی‌تونی یهو بگی name[0] = "ب" تا حرف اول رو عوض کنی. پایتون می‌گه: «نخ رو نمی‌شه دست‌کاری کرد، یا یه نخ جدید بساز یا از متدها استفاده کن.» این ویژگی هم امنیت میاره هم سرعت.


متدهای جادویی – کارگاه خیاطی روی رشته‌ها
پایتون یه عالمه متد آماده داره که انگار قیچی، چرخ‌خیاطی و اتوی بخار برای متن هستن. اینا رو بدون حفظ کردن، با تمرین یاد می‌گیری. بریم چندتای خفن رو ببینیم:

تصویر

اینارو ببین چقدر کاربردی‌ان:


email = "  Ali.Rezaei@GMAIL.com  "
clean = email.strip().lower()
print(clean)  # "ali.rezaei@gmail.com"

data = "چهارشنبه,۲۵,فروردین,۲۰۲۶"
parts = data.split(",")
print(parts)  # ['چهارشنبه', '۲۵', 'فروردین', '۲۰۲۶']

numbers = "1,2,3,4"
nums_list = numbers.split(",")
joined = " - ".join(nums_list)
print(joined)  # 1 - 2 - 3 - 4


نکتهٔ خفن: strip() فقط فاصله رو حذف نمی‌کنه، می‌تونی بهش بگی چی رو حذف کنه. مثلاً "***سلام***".strip("*") می‌شه "سلام". مثل یه پاک‌کن حرفه‌ای می‌مونه.

قالب‌بندی با f-string – جادوی مدرن نمایش متن
قبلاً اشاره کردیم، ولی حیفه بیشتر بازش نکنیم. f-string از پایتون ۳.۶ اومد و همه چی رو زیر و رو کرد. قبلش کلی بدبختی می‌کشیدن با + و str() و format(). حالا یه f قبل رشته می‌ذاری و هرچی متغیر داری رو می‌ذاری داخل {}.


name = "سارا"
score = 19.5
print(f"{name} جان، نمره‌ات شد {score}.")
# سارا جان، نمره‌ات شد 19.5.


می‌تونی داخل آکولاد فرمول ریاضی بنویسی، متد صدا کنی، حتی فرمتش کنی:


price = 15000
quantity = 3
print(f"جمع فاکتور: {price * quantity:,} تومان")  # 45,000 با کاما جدا می‌کنه

pi = 3.14159265
print(f"عدد پی با دو رقم اعشار: {pi:.2f}")  # 3.14

name = "ali"
print(f"اسم با حروف بزرگ: {name.upper()}")  # ALI


واسه نمایش کاراکتر { خودش، دوبار بنویس {{ و }}. اینجوری پایتون گیج نمی‌شه.

کاراکترهای فراری (Escape) – ارواح داخل رشته
بعضی کاراکترها رو که نمی‌تونی مستقیم تایپ کنی، باید با بک‌اسلش \ فراری بدی تا پایتون اونها رو به شکل خاصی بفهمه:

\n : یه خط می‌ره پایین (New Line). انگار اینتر زدی.

\t : یه تب (فاصلهٔ زیاد).

\\ : خودِ بک‌اسلش رو نشون بده.

\" و \' : گیومه رو داخل رشته قرار بده بدون اینکه رشته رو تموم کنه.


print("خط اول\nخط دوم\nخط سوم")
# خروجی:
# خط اول
# خط دوم
# خط سوم

print("مسیر فایل: C:\\Users\\Ali")
# مسیر فایل: C:\Users\Ali

print('او گفت: \'سلام!\'')
# او گفت: 'سلام!'


راستی، اگه با رشته‌های مسیر زیاد کار داری و حوصلهٔ بک‌اسلش نداری، می‌تونی از Raw String استفاده کنی: یه r قبل از رشته بذار تا همه چی رو عیناً ببینه:


first = "پایتون"
last = "جنگولک"
full = first + " " + last   # پایتون جنگولک
line = "-" * 20            # --------------------
cheer = "هیپ! " * 3        # هیپ! هیپ! هیپ!


چسبوندن و تکرار رشته‌ها – لگو بازی با متن
با عملگر + می‌تونی رشته‌ها رو بچسبونی و با * تکرارشون کنی:


first = "پایتون"
last = "جنگولک"
full = first + " " + last   # پایتون جنگولک
line = "-" * 20            # --------------------
cheer = "هیپ! " * 3        # هیپ! هیپ! هیپ!


اینم یه اسلحهٔ مخفی واسه ساختن خط جداکننده تو خروجی‌ها.

یه نمایش باحال از همهٔ حقه‌ها
بیا یه برنامهٔ کوچیک تحلیل اسم و ایمیل بنویسیم که هرچی یاد گرفتیم رو یکجا نشون بده:


# تحلیل اسم و ایمیل با رشته‌ها
raw_email = "  FARZANEH.KARIMI@Company.IR  "
email = raw_email.strip().lower()
print(f"ایمیل تمیز شده: {email}")

# جدا کردن اسم از دامنه
if "@" in email:
    username, domain = email.split("@")
    print(f"نام کاربری: {username}")
    print(f"دامنه: {domain}")
    
    # تزیین اسم با حرف اول بزرگ
    pretty_name = username.replace(".", " ").title()
    print(f"اسم قابل احترام: {pretty_name}")
    
    # بررسی دامنه سازمانی
    if domain.endswith(".ir"):
        print("این یه ایمیل ایرونیه 🇮🇷")
    else:
        print("ایمیل معتبر نیست!")

# یه نمایش هنری
border = "✨" + "="*30 + "✨"
print(border)
for char in "خفن":
    print(f"| {char * 5} |")
print(border)


چی شد؟ کلی متد، برش، f-string، عملگرها رو یجا آوردیم. حس می‌کنی داری با متن نقاشی می‌کنی، نه؟ 🎨

جمع‌بندی: رشت‌هاتو محکم ببند
رشته‌ها تو پایتون مثل خمیر بازی نرم و انعطاف‌پذیرن. با ایندکس و برش، هرجاشو که بخوای برش می‌دی. با متدها، هر جور دلت خواست تغییرشون می‌دی. با f-string و escapeها، نمایششون رو حرفه‌ای می‌کنی. یادت باشه: هر وقت خواستی با متن کار کنی، پایتون کلی ابزار آماده داره که فقط باید اسمشو بلد باشی. حالا که این اسلحه‌ها رو داری، برو و کدهاتو خوش‌حرف کن! 🐍🗣️✨