فهرست مطالب
مقدمه: رشتهها چطور وارد برنامهنویسی میشن؟
بذار طبق روال همیشگی، با یه مثال واقعی شروع کنیم 😊
تقریباً هر برنامهای که مینویسیم، یه جایی پای متن وسطه.
مثلاً:
- اسم کاربر
- پیامهای خوشآمدگویی
- شماره تلفن
- آدرس ایمیل
- جملهها و توضیحات
- حتی چیزایی که از کاربر ورودی میگیریم
برای نگهداشتن و کار کردن با این متنها توی پایتون، از رشتهها (String) استفاده میکنیم.
پس اگه قراره هر نوع متنی رو ذخیره، نمایش یا پردازش کنی، باید رشتهها رو درست و حسابی بشناسی 👌
رشته (String) چیست؟
توی پایتون، رشته یعنی یک مجموعه از کاراکترها که داخل کوتیشن قرار میگیره.
ما توی پایتون سه نوع کوتیشن داریم:
"Hello"
'Python'
"""This is a long text"""
انواع کوتیشن در پایتون
توی پایتون برای ساخت رشته، میتونیم از سه نوع کوتیشن استفاده کنیم:
- کوتیشن دوتایی
" " - کوتیشن تکی
' ' - کوتیشن سهتایی
""" """یا''' '''که بیشتر برای متنهای چندخطی استفاده میشه
ساخت یک رشته (String)
برای اینکه هر نوع متنی رو توی پایتون ذخیره کنیم، کافیه اون متن رو داخل کوتیشن (quote) قرار بدیم.
پایتون سه راه مختلف برای ساخت رشته داره و هر کدوم بسته به موقعیت، کاربرد خودش رو داره.
کوتیشن دوتایی
" "این نوع کوتیشن معمولاً برای متنهای ساده و روزمره استفاده میشه؛
همون چیزی که بیشتر وقتها توی کدت میبینی 😊
- کوتیشن دوتایی
text = "Hello Python"
کوتیشن تکی
' 'کوتیشن تکی دقیقاً همون کاری رو میکنه که کوتیشن دوتایی انجام میده.
از نظر پایتون هیچ تفاوتی بین این دو وجود نداره و انتخاب بینشون بیشتر سلیقهایه.
یعنی هر کدوم راحتتری، همونو استفاده کن 😉
name = 'Arman'
نکته مهم ✅
اگه داخل متنت از کوتیشن دوتایی استفاده میکنی، بهتره خود رشته رو با کوتیشن تکی بسازی؛
و برعکس، اگه داخل متن کوتیشن تکی داری، از کوتیشن دوتایی استفاده کن.
این کار باعث میشه هم کدت تمیزتر بشه، هم به خطا نخوری.
مثال:
title = 'Python is "awesome"'
کوتیشن سهتایی
""" """یا''' '''این نوع کوتیشن وقتی به کارت میاد که بخوای متنهای طولانی یا چندخطی بنویسی.
یعنی میتونی بدون دردسر، متن رو دقیقاً همونطوری که هست (با اینتر و خط جدید) داخل رشته قرار بدی.
bio = """This is a long text
that goes over multiple lines."""
این مدل کوتیشن برای نوشتن توضیحات طولانی، پیامهای چندخطی یا متنهایی که داخلشون علامت کوتیشن زیاد داره، واقعاً عالیه و کارت رو خیلی راحت میکنه 👌
طول رشته — تابع len()
تابع len() یکی از سادهترین و در عین حال پرکاربردترین توابع پایتونه.
کار این تابع خیلی واضحه:
بهت میگه یه رشته چند تا کاراکتر داره.
حالا کاراکتر یعنی چی؟
هر چیزی که داخل رشته باشه:
- حرف
- عدد
- فاصله (space)
- علامتهایی مثل
!،?،. - حتی رفتن به خط جدید (Enter)
همهی اینها با هم جزو طول رشته حساب میشن.
مثال ساده:
text = "Python"
print(len(text))
خروجی:
6
چون رشتهی "Python" دقیقاً ۶ تا کاراکتر داره.
۱) فاصلهها هم حساب میشن ✅
یادت باشه توی محاسبهی طول رشته، فاصلهها هم جزو کاراکترها حساب میشن و نادیده گرفته نمیشن.
msg = "Hello World"
print(len(msg))
تعداد:
11
یعنی:
۵ حرف «Hello» + یه فاصله + ۵ حرف «World» ✅
ایندکسگذاری (Indexing) در رشتهها
برای اینکه بتونیم روی یک رشته کارهای جدیتری انجام بدیم، باید بتونیم به هر کاراکترش جداگانه دسترسی داشته باشیم.
اینجاست که مفهوم ایندکس (Index) وارد بازی میشه.
ایندکس در واقع شمارهی هر کاراکتر داخل رشته است؛
دقیقاً مثل شمارهی صندلیها توی یه سالن سینما 🎬
نکته خیلی مهم ⚠️
پایتون شمارش رو از ۰ شروع میکنه، نه ۱
به این میگن Zero-based indexing.
پس اگه رشتهمون این باشه:
P y t h o n
0 1 2 3 4 5
ایندکس هر کاراکتر اینطور است:
- ایندکس ۰ → «P»
- ایندکس ۱ → «y»
- ایندکس ۲ → «t»
- ایندکس ۵ → آخرین کاراکتر یعنی «n»
مثال:
text = "Python"
print(text[0]) # P
print(text[1]) # y
print(text[5]) # n
ایندکس منفی چیست و چرا مهم است؟
پایتون یه قابلیت خیلی خفن و کاربردی داره به اسم ایندکس منفی 😄
ایندکس منفی یعنی بهجای اینکه از اول رشته بشماری، از آخرش شروع کنی.
به عبارت سادهتر، پایتون این امکان رو میده که کاراکترهای انتهای رشته رو خیلی راحت و مستقیم صدا بزنی.
ایندکس منفی از کجا شروع میشه؟
ایندکسهای منفی از آخر رشته شروع میشن و به این شکل هستن:
P y t h o n
-6 -5 -4 -3 -2 -1
پس:
print(text[-1]) # n (آخرین کاراکتر)
print(text[-2]) # o
print(text[-3]) # h
این قابلیت خیلی به دردت میخوره وقتی طول رشته رو نمیدونی، اما میخوای از آخرش یه کاراکتر برداری یا باهاش کار کنی 👌
اگه به ایندکسی خارج از محدوده اشاره کنیم چی میشه؟ 🤔
اگه ایندکسی رو صدا بزنی که اصلاً وجود نداره، پایتون خیلی شفاف بهت میگه اشتباه کردی و خطا (Error) میده.
یعنی پایتون اجازه نمیده به کاراکتری دسترسی داشته باشی که خارج از محدودهی رشته است.
مثال:
text = "Hi"
print(text[10])
خطا:
IndexError: string index out of range
چرا ایندکسینگ مهمه؟ 🤓
چون ایندکسینگ دقیقاً همون ابزاریه که بهت اجازه میده کنترل کامل روی رشتهها داشته باشی.
با ایندکس میتونی کلی کار کاربردی و خفن انجام بدی، مثل:
✅ گرفتن اولین حرف اسم کاربر
مثلاً وقتی میخوای اسم رو خلاصه کنی یا خوشامدگویی شخصیسازیشده بسازی
✅ بررسی آخرین کاراکتر یا پسوند فایل
مثلاً بفهمی فایل
.jpgهست یا.pdf✅ جدا کردن کاراکترهای خاص از یک رشته
مثل حذف
@از ایمیل یا جدا کردن-از کد ملی✅ انجام slicing (برش رشته)
یعنی فقط یه بخش مشخص از رشته رو برداری، نه کلش
✅ حلقه زدن روی تکتک کاراکترها
برای شمارش حروف، بررسی حروف بزرگ و کوچک، یا فیلتر کردن کاراکترها
✅ تحلیل و پردازش رشتهها
که پایهی خیلی از کارها توی برنامهنویسی و تحلیل داده است
خلاصه بگم 😄
اگه ایندکسینگ رو خوب یاد بگیری، نصف راه کار با رشتهها رو رفتی ✅
اتصال رشتهها (Concatenation) چیه؟ 🤝
خیلی وقتها توی برنامهنویسی لازم داریم چند تا رشته رو به هم بچسبونیم و ازشون یه متن جدید بسازیم.
به این کار میگن Concatenation یا همون اتصال رشتهها.
اتصال رشتهها در پایتون چطوریه؟
توی پایتون این کار خیلی ساده انجام میشه و فقط کافیه از علامت + استفاده کنی.
یعنی هرچی رشته داری، با + میذاریشون کنار هم و یه رشتهی جدید تحویل میگیری 😄
مثال ساده 👇
first = "Hello"
second = "World"
print(first + second)
خروجی:
HelloWorld
اگر بخواهیم بینشان فاصله باشد:
print(first + " " + second)
نکته مهم: فقط رشتهها را میتوان چسباند
اگر یکی از بخشها رشته نباشد (مثلاً عدد باشد)، پایتون خطا میدهد:
age = 25
print("Age: " + age)
خطا
TypeError
برای حل: تبدیل به رشته
print("Age: " + str(age))
تکرار رشتهها
با ضرب کردن یک رشته در یک عدد، آن را چند بار تکرار میکنیم
print("Hi! " * 3)
خروجی:
Hi! Hi! Hi!
مهمترین متدهای رشتهها در پایتون ✨
توی این بخش قراره بریم سراغ متدهایی از رشتهها که واقعاً به کارت میان؛
یعنی هم پرکاربردن، هم تقریباً توی همهی پروژهها استفاده میشن، مخصوصاً اگه تازهکاری 👌
تبدیل حروف به کوچک یا بزرگ 🔤
خیلی وقتها لازم داریم متنها رو یکدست کنیم؛
مثلاً همه رو بزرگ کنیم یا همه رو کوچیک، مخصوصاً موقع مقایسه متنها.
پایتون برای این کار چند تا متد خیلی ساده و کاربردی داره:
تبدیل به حروف کوچک → lower()
text = "Python"
print(text.upper()) # PYTHON
print(text.lower()) # python
تبدیل به حروف بزرگ → upper()
text = "Python Is Awesome"
print(text.upper())
خروجی:
PYTHON IS AWESOME
🔹 این یکی برعکس قبلیه و همهی حروف رو بزرگ میکنه.
چرا این متدها مهمن؟ 🤔
فرض کن کاربر نوشته:
Python
python
PYTHON
از نظر پایتون اینها سه تا رشتهی متفاوت هستن!
ولی اگه قبل از مقایسه، همه رو lower() یا upper() کنی، کارت خیلی راحتتر میشه ✅
این متدها پایهی خیلی از پردازشهای متنی هستن، پس حتماً خوب یادشون بگیر 😉
حذف فاصلههای اضافی
name = " Arman "
print(name.strip()) # "Arman"
جایگزینی متن
msg = "I love Java"
print(msg.replace("Java", "Python"))
پیدا کردن کاراکتر یا کلمه
text = "Hello Python"
print(text.find("Python")) # 6
شمارش تکرار یک حرف یا کلمه
print(text.count("l"))
رشتهها قابل تغییر نیستند (Immutable) ⚠️
این نکته خیلی خیلی مهمه و اگه خوب درکش نکنی، بعداً ممکنه حسابی گیجت کنه 👀
Immutable یعنی چی؟
توی پایتون، رشتهها (String) از نوع immutable هستن؛
یعنی بعد از اینکه یه رشته ساخته شد، نمیتونی مستقیماً هیچکدوم از کاراکترهاش رو تغییر بدی.
مثال اشتباه (که خطا میده) ❌
text = "Python"
text[0] = "J" # خطا
روش درست:
text = "Python"
text = "J" + text[1:]
print(text) # Jython
تمرینهای پیشنهادی
تمرین 1
یک رشته تعریف کن و:
- اولین کاراکتر آن
- آخرین کاراکتر
- طول رشته
را چاپ کن.
تمرین 2
برنامهای بنویس که یک جمله از کاربر بگیرد و تعداد حرف a در آن را چاپ کند.
تمرین 3
جمله زیر را با replace به نسخه پایتونی تبدیل کن:
I love Java programming
کار با رشتهها در پایتون (String) | آموزش کامل رشته در Python
فهرست مطالب
مقدمه: رشتهها چطور وارد برنامهنویسی میشن؟
بذار طبق روال همیشگی، با یه مثال واقعی شروع کنیم 😊
تقریباً هر برنامهای که مینویسیم، یه جایی پای متن وسطه.
مثلاً:
- اسم کاربر
- پیامهای خوشآمدگویی
- شماره تلفن
- آدرس ایمیل
- جملهها و توضیحات
- حتی چیزایی که از کاربر ورودی میگیریم
برای نگهداشتن و کار کردن با این متنها توی پایتون، از رشتهها (String) استفاده میکنیم.
پس اگه قراره هر نوع متنی رو ذخیره، نمایش یا پردازش کنی، باید رشتهها رو درست و حسابی بشناسی 👌
رشته (String) چیست؟
توی پایتون، رشته یعنی یک مجموعه از کاراکترها که داخل کوتیشن قرار میگیره.
ما توی پایتون سه نوع کوتیشن داریم:
"Hello"
'Python'
"""This is a long text"""
انواع کوتیشن در پایتون
توی پایتون برای ساخت رشته، میتونیم از سه نوع کوتیشن استفاده کنیم:
- کوتیشن دوتایی
" " - کوتیشن تکی
' ' - کوتیشن سهتایی
""" """یا''' '''که بیشتر برای متنهای چندخطی استفاده میشه
ساخت یک رشته (String)
برای اینکه هر نوع متنی رو توی پایتون ذخیره کنیم، کافیه اون متن رو داخل کوتیشن (quote) قرار بدیم.
پایتون سه راه مختلف برای ساخت رشته داره و هر کدوم بسته به موقعیت، کاربرد خودش رو داره.
کوتیشن دوتایی
" "این نوع کوتیشن معمولاً برای متنهای ساده و روزمره استفاده میشه؛
همون چیزی که بیشتر وقتها توی کدت میبینی 😊
- کوتیشن دوتایی
text = "Hello Python"
کوتیشن تکی
' 'کوتیشن تکی دقیقاً همون کاری رو میکنه که کوتیشن دوتایی انجام میده.
از نظر پایتون هیچ تفاوتی بین این دو وجود نداره و انتخاب بینشون بیشتر سلیقهایه.
یعنی هر کدوم راحتتری، همونو استفاده کن 😉
name = 'Arman'
نکته مهم ✅
اگه داخل متنت از کوتیشن دوتایی استفاده میکنی، بهتره خود رشته رو با کوتیشن تکی بسازی؛
و برعکس، اگه داخل متن کوتیشن تکی داری، از کوتیشن دوتایی استفاده کن.
این کار باعث میشه هم کدت تمیزتر بشه، هم به خطا نخوری.
مثال:
title = 'Python is "awesome"'
کوتیشن سهتایی
""" """یا''' '''این نوع کوتیشن وقتی به کارت میاد که بخوای متنهای طولانی یا چندخطی بنویسی.
یعنی میتونی بدون دردسر، متن رو دقیقاً همونطوری که هست (با اینتر و خط جدید) داخل رشته قرار بدی.
bio = """This is a long text
that goes over multiple lines."""
این مدل کوتیشن برای نوشتن توضیحات طولانی، پیامهای چندخطی یا متنهایی که داخلشون علامت کوتیشن زیاد داره، واقعاً عالیه و کارت رو خیلی راحت میکنه 👌
طول رشته — تابع len()
تابع len() یکی از سادهترین و در عین حال پرکاربردترین توابع پایتونه.
کار این تابع خیلی واضحه:
بهت میگه یه رشته چند تا کاراکتر داره.
حالا کاراکتر یعنی چی؟
هر چیزی که داخل رشته باشه:
- حرف
- عدد
- فاصله (space)
- علامتهایی مثل
!،?،. - حتی رفتن به خط جدید (Enter)
همهی اینها با هم جزو طول رشته حساب میشن.
مثال ساده:
text = "Python"
print(len(text))
خروجی:
6
چون رشتهی "Python" دقیقاً ۶ تا کاراکتر داره.
۱) فاصلهها هم حساب میشن ✅
یادت باشه توی محاسبهی طول رشته، فاصلهها هم جزو کاراکترها حساب میشن و نادیده گرفته نمیشن.
msg = "Hello World"
print(len(msg))
تعداد:
11
یعنی:
۵ حرف «Hello» + یه فاصله + ۵ حرف «World» ✅
ایندکسگذاری (Indexing) در رشتهها
برای اینکه بتونیم روی یک رشته کارهای جدیتری انجام بدیم، باید بتونیم به هر کاراکترش جداگانه دسترسی داشته باشیم.
اینجاست که مفهوم ایندکس (Index) وارد بازی میشه.
ایندکس در واقع شمارهی هر کاراکتر داخل رشته است؛
دقیقاً مثل شمارهی صندلیها توی یه سالن سینما 🎬
نکته خیلی مهم ⚠️
پایتون شمارش رو از ۰ شروع میکنه، نه ۱
به این میگن Zero-based indexing.
پس اگه رشتهمون این باشه:
P y t h o n
0 1 2 3 4 5
ایندکس هر کاراکتر اینطور است:
- ایندکس ۰ → «P»
- ایندکس ۱ → «y»
- ایندکس ۲ → «t»
- ایندکس ۵ → آخرین کاراکتر یعنی «n»
مثال:
text = "Python"
print(text[0]) # P
print(text[1]) # y
print(text[5]) # n
ایندکس منفی چیست و چرا مهم است؟
پایتون یه قابلیت خیلی خفن و کاربردی داره به اسم ایندکس منفی 😄
ایندکس منفی یعنی بهجای اینکه از اول رشته بشماری، از آخرش شروع کنی.
به عبارت سادهتر، پایتون این امکان رو میده که کاراکترهای انتهای رشته رو خیلی راحت و مستقیم صدا بزنی.
ایندکس منفی از کجا شروع میشه؟
ایندکسهای منفی از آخر رشته شروع میشن و به این شکل هستن:
P y t h o n
-6 -5 -4 -3 -2 -1
پس:
print(text[-1]) # n (آخرین کاراکتر)
print(text[-2]) # o
print(text[-3]) # h
این قابلیت خیلی به دردت میخوره وقتی طول رشته رو نمیدونی، اما میخوای از آخرش یه کاراکتر برداری یا باهاش کار کنی 👌
اگه به ایندکسی خارج از محدوده اشاره کنیم چی میشه؟ 🤔
اگه ایندکسی رو صدا بزنی که اصلاً وجود نداره، پایتون خیلی شفاف بهت میگه اشتباه کردی و خطا (Error) میده.
یعنی پایتون اجازه نمیده به کاراکتری دسترسی داشته باشی که خارج از محدودهی رشته است.
مثال:
text = "Hi"
print(text[10])
خطا:
IndexError: string index out of range
چرا ایندکسینگ مهمه؟ 🤓
چون ایندکسینگ دقیقاً همون ابزاریه که بهت اجازه میده کنترل کامل روی رشتهها داشته باشی.
با ایندکس میتونی کلی کار کاربردی و خفن انجام بدی، مثل:
✅ گرفتن اولین حرف اسم کاربر
مثلاً وقتی میخوای اسم رو خلاصه کنی یا خوشامدگویی شخصیسازیشده بسازی
✅ بررسی آخرین کاراکتر یا پسوند فایل
مثلاً بفهمی فایل
.jpgهست یا.pdf✅ جدا کردن کاراکترهای خاص از یک رشته
مثل حذف
@از ایمیل یا جدا کردن-از کد ملی✅ انجام slicing (برش رشته)
یعنی فقط یه بخش مشخص از رشته رو برداری، نه کلش
✅ حلقه زدن روی تکتک کاراکترها
برای شمارش حروف، بررسی حروف بزرگ و کوچک، یا فیلتر کردن کاراکترها
✅ تحلیل و پردازش رشتهها
که پایهی خیلی از کارها توی برنامهنویسی و تحلیل داده است
خلاصه بگم 😄
اگه ایندکسینگ رو خوب یاد بگیری، نصف راه کار با رشتهها رو رفتی ✅
اتصال رشتهها (Concatenation) چیه؟ 🤝
خیلی وقتها توی برنامهنویسی لازم داریم چند تا رشته رو به هم بچسبونیم و ازشون یه متن جدید بسازیم.
به این کار میگن Concatenation یا همون اتصال رشتهها.
اتصال رشتهها در پایتون چطوریه؟
توی پایتون این کار خیلی ساده انجام میشه و فقط کافیه از علامت + استفاده کنی.
یعنی هرچی رشته داری، با + میذاریشون کنار هم و یه رشتهی جدید تحویل میگیری 😄
مثال ساده 👇
first = "Hello"
second = "World"
print(first + second)
خروجی:
HelloWorld
اگر بخواهیم بینشان فاصله باشد:
print(first + " " + second)
نکته مهم: فقط رشتهها را میتوان چسباند
اگر یکی از بخشها رشته نباشد (مثلاً عدد باشد)، پایتون خطا میدهد:
age = 25
print("Age: " + age)
خطا
TypeError
برای حل: تبدیل به رشته
print("Age: " + str(age))
تکرار رشتهها
با ضرب کردن یک رشته در یک عدد، آن را چند بار تکرار میکنیم
print("Hi! " * 3)
خروجی:
Hi! Hi! Hi!
مهمترین متدهای رشتهها در پایتون ✨
توی این بخش قراره بریم سراغ متدهایی از رشتهها که واقعاً به کارت میان؛
یعنی هم پرکاربردن، هم تقریباً توی همهی پروژهها استفاده میشن، مخصوصاً اگه تازهکاری 👌
تبدیل حروف به کوچک یا بزرگ 🔤
خیلی وقتها لازم داریم متنها رو یکدست کنیم؛
مثلاً همه رو بزرگ کنیم یا همه رو کوچیک، مخصوصاً موقع مقایسه متنها.
پایتون برای این کار چند تا متد خیلی ساده و کاربردی داره:
تبدیل به حروف کوچک → lower()
text = "Python"
print(text.upper()) # PYTHON
print(text.lower()) # python
حذف فاصلههای اضافی
name = " Arman "
print(name.strip()) # "Arman"
جایگزینی متن
msg = "I love Java"
print(msg.replace("Java", "Python"))
پیدا کردن کاراکتر یا کلمه
text = "Hello Python"
print(text.find("Python")) # 6
شمارش تکرار یک حرف یا کلمه
print(text.count("l"))
رشتهها قابل تغییر نیستند (Immutable) ⚠️
این نکته خیلی خیلی مهمه و اگه خوب درکش نکنی، بعداً ممکنه حسابی گیجت کنه 👀
Immutable یعنی چی؟
توی پایتون، رشتهها (String) از نوع immutable هستن؛
یعنی بعد از اینکه یه رشته ساخته شد، نمیتونی مستقیماً هیچکدوم از کاراکترهاش رو تغییر بدی.
مثال اشتباه (که خطا میده) ❌
text = "Python"
text[0] = "J" # خطا
روش درست:
text = "Python"
text = "J" + text[1:]
print(text) # Jython
تمرینهای پیشنهادی
تمرین 1
یک رشته تعریف کن و:
- اولین کاراکتر آن
- آخرین کاراکتر
- طول رشته
را چاپ کن.
تمرین 2
برنامهای بنویس که یک جمله از کاربر بگیرد و تعداد حرف a در آن را چاپ کند.
تمرین 3
جمله زیر را با replace به نسخه پایتونی تبدیل کن:
I love Java programming