رشتهها چیستند؟
رشتهها دنبالهای از کاراکترها (حروف ،اعداد ،نمادها) هستند که در **تککوتیک
(`' ')`** یا **دوبلکوتیک (`" ")`** یا **سهکوتیک (`''' '''` یا `""" """`)**
محصور میشوند.
'! فارسیs1 = 'Hello
"s2 = "Python 3.10
= '''این یک رشتهs3
'''!چندخطی است
تغییر رشتهها ()Modify Strings
در پایتون ،رشتهها (** )Stringsتغییرناپذیر ( **)Immutableهستند .یعنی
پس از ایجاد ،محتوای اصلی آنها قابل تغییر نیست .اما میتوانیم عملیاتی روی
آنها انجام دهیم که **نسخههای جدیدی** از رشته تغییر یافته برگردانند .در
اینجا مهمترین متدهای تغییر رشتهها را با مثالهای متنوع بررسی میکنیم:
متدهای رشته ها
`()`upper
متد `)( `upperهمه حروف را به بزرگ تبدیل میکند.
"!text = "Hello, World
))(print(text.upper
# Output: HELLO, WORLD!
مقایسه بدون توجه به بزرگی حروف: مثال کاربردی#
user_input = "Yes"
if user_input.upper() == "YES:"
print("User agreed!") # Output: User agreed!
`lower)(`
.` همه حروف را به کوچک تبدیل میکندlower()` متد
text = "Hello, World"!
print(text.lower()) # Output: hello, world!
نرمالسازی ایمیلها: مثال کاربردی#
email = "[email protected]"
normalized_email = email.lower()
print(normalized_email) # Output: [email protected]
`strip)(`
.` فاصلههای اضافی از ابتدا و انتهای رشته را حذف میکندstrip()` متد
text = " Hello, World!"
print(f"'{text.strip()}'")
# Output: 'Hello, World!'
پردازش ورودی کاربر: مثال کاربردی#
user_input = " admin"
username = user_input.strip()
print(f"Welcome, {username}!")
# Output: Welcome, admin!
`replace)(`
.` بخشی از رشته را با بخش دیگری جایگزین میکندreplace()` متد
text = "I like cats".
print(text.replace("cats", "dogs"))
# Output: I like dogs.
جایگزینی چندگانه:۱ مثال#
text = "apple orange apple"
print(text.replace("apple", "banana", 1))
# Output: banana orange apple
حذف کاراکترهای خاص:۲ مثال#
phone = "+98-21-1234-5678"
clean_phone = phone.replace("-", "").replace("+", "")
print(clean_phone) # Output: 982112345678
`split)(`
` رشته را بر اساس جداکننده (بهطور پیشفرض فاصله) به لیستی ازsplit()` متد
.زیررشتهها تقسیم میکند
text = "Python is fun"
print(text.split())
# Output: ['Python', 'is', 'fun']
CSV پردازش: مثال کاربردی#
csv_data = "Alice;30;Developer"
fields = csv_data.split)";"(
print(f"Name: {fields[0]}, Age: {fields[1]}")
# Output: Name: Alice, Age: 30
maxsplit تقسیم با: مثال پیشرفته#
text = "one:two:three:four"
print(text.split(":", 2)) # Output: ['one', 'two', 'three:four']
`join)(`
تاپل را با یک جداکننده مشخص به هم متصل/` عناصر یک لیستjoin()` متد
.میکند
words = ["Python", "is", "powerful"]
print(" ".join(words)) # Output: Python is powerful
ساخت مسیر فایل: مثال کاربردی#
folders = ["home", "user", "documents"]
path = "/".join(folders)
print(path) # Output: home/user/documents
ایجاد رشته از اعداد: مثال پیشرفته#
numbers = [1, 2, 3]
print("->".join(map(str, numbers))) # Output: 1->2->3
`len)(`
print(len("))"!سالم
)! , م, ا, ل, (شامل کاراکترهای س5 : خروجی#
startswith)(,endswith)(`
text = "Hello World"
print(text.startswith("He"))
True : خروجی#
print(text.endswith("ld"))
True : خروجی#
`find)(`
text = "Python is fun"
print(text.find("is"))
) (ایندکس شروع7 : خروجی#
print(text.find("Java"))
) (یافت نشد۱- : خروجی#
isdigit)(
.بررسی میکند آیا همه کاراکترها رقم هستند
txt = "12345"
print(txt.isdigit()) # Output: True
txt = "12a45"
print(txt.isdigit()) # Output: False
isalnum)(
.بررسی میکند آیا رشته فقط شامل حروف و اعداد است
txt = "Company12"
print(txt.isalnum()) # Output: True
txt = "Company 12"
print(txt.isalnum()) # Output: False)(به دلیل فاصله
index)(
. عمل میکند اما اگر زیررشته پیدا نشود خطا میدهدfind() مانند
txt = "Hello, welcome to my world".
print(txt.index("welcome")) # Output: 7
#print(txt.index("Python")) # ValueError
count)(
.تعداد تکرار یک زیررشته را برمیگرداند
txt = "I love apples, apple are my favorite fruit"
print(txt.count("apple")) # Output: 2
join)(
.عناصر یک لیست را با رشته مورد نظر به هم میچسباند
my_list = ["apple", "banana", "cherry"]
print(", ".join(my_list)) # Output: apple, banana, cherry
format)(
.مقادیر را در محلهای مشخص شده قرار میدهد
txt = "My name is {} and I am {} years old"
print(txt.format("Ali", 25)) # Output: My name is Ali and I
am 25 years old
zfill)(
.رشته را با صفر از سمت چپ پر میکند تا به طول مشخص شده برسد
txt = "42"
print(txt.zfill(5)) # Output: 00042
capitalize)(
.حرف اول را بزرگ و بقیه را کوچک میکند
text = "hello world"
print(text.capitalize())
# Output: Hello world
title)(
.اولین حرف هر کلمه را بزرگ میکند
text = "python programming"
print(text.title())
# Output: Python Programming
swapcase)(
.حروف بزرگ را کوچک و کوچک را بزرگ میکند
text = "PyThOn"
print(text.swapcase())
# Output: pYtHoN
Isalpha)(
چک کردن اینکه آیا رشته فقط حروف است
text1 = "Hello"
text2 = "123"
print(text1.isalpha()) # True
print(text2.isalpha()) # False
str)(
.هر نوع دادهای را به رشته تبدیل میکند
: مثالها#
p = str(100) از صحیح به رشته#
print(p)
# Output: “100”
print(type(p))
# Output: <class ‘str’>
q = str(3.14)
از اعشاری به رشته#
print(q)
# Output: “3.14”
r = str(True)
:نکات کلیدی
:****تغییرناپذیری رشتهها
تمام متدهای باال یک **رشته جدید** برمیگردانند و رشته اصلی را تغییر.1
.نمیدهند
original = "hello"
modified = original.upper)(
print(original)
# Output: hello
print(modified)
# Output: HELLO
:****ترکیب متدها
.میتوانید متدها را زنجیرهای کنید
text = " Hello, World!"
processed = text.strip().lower().replace("world",
"Python")
print(processed)
# Output: hello, python!
:****حساسیت به حروف
` فقطreplace("A", "a")`( کوچکی حروف حساس هستند/متدها به بزرگی
.)` را جایگزین میکندA` حروف بزرگ
)`f-strings` ` یا+`( ادغام رشتهها
name = ""آرش
age = 25
print("نام: " + name)
آرش: نام#
print(f"سن: {age}")
) (روش مدرن۲5 : سن#
تکرار رشته (`*`)
)print("abc" * 3
#خروجیabcabcabc :
فرمتبندی رشتهها ()String Formatting
سه روش اصلی:
روش قدیمی (`)`%
"سارا" = name
): %s" % nameاسم"(print
#اسم :سارا
متد `()`format
))".format(20سن }{ :سال"(print
#سن ۲0 :سال
string-f
price = 15000
قیمت ۱5,000 :تومان ") #تومان }: {price:,قیمت"print(f
عملیاتهای کاربردی دیگر
-بررسی وجود زیررشته:
"text = "Programming in Python
)print("Python" in text
#خروجیTrue :
-مقایسه رشتهها:
)"print("abc" == "ABC
#خروجی( False :حساس به حروف کوچک/بزرگ)
توابع تبدیل نوع
-تبدیل رشته به عدد:
"num_str = "123
)print(int(num_str) + 1
#خروجی۱۲4 :
-تبدیل عدد به رشته:
num = 456
)): " + str(numعدد"(print
نکات مهم:
.۱رشتهها در پایتون **غیرقابل تغییر** هستند.
.) پایتون از **یونیکد** پشتیبانی میکند (پس با حروف فارسی مشکلی ندارد.۲
. برای رشتههای طوالنی از `"""` یا `'''` استفاده کنید.3
:مثال ترکیبی
name = ""نازنین
message = f"""
{ سالمname}!
} سال خورشیدی است۱403{ امروز.
"""
print(message)
تبدیل به عنوان و جایگزینی کلمات#
txt = "python programming is FUN"!
formatted = txt.title().replace("Fun", "Amazing")
print(formatted) # Output: Python Programming Is
Amazing!
بررسی و اصالح ورودی کاربر#
user_input = " User123"
cleaned = user_input.strip)(
if cleaned.isalnum() and not cleaned.isdigit:)(
print(f"Valid username: {cleaned}")
else:
print("Invalid username!")