1. آموزش رشته ها در پایتون ، نوع داده رشته در پایتون(Str)
رشته یا همان str یک نوع داده است که برای نگهداری متنی (حروف، کلمات، جملات و غیره) استفاده میشود. رشتهها در پایتون مجموعهای از کاراکترها هستند که میتوانند شامل حروف، اعداد و نمادها باشند.
1.1 تعریف رشتهها
رشتهها میتوانند با استفاده از علامتهای تک کوتیشن (‘) یا دابل کوتیشن (“) تعریف شوند.
# استفاده از تک کوتیشن
str1 = 'Hello, World!' # استفاده از دابل کوتیشن str2 = "Python is awesome!"
همچنین میتوانید از سه کوتیشن (”’ یا “””) برای تعریف رشتههای چندخطی استفاده کنید:
multi_line_str = ”’این یک رشته
چند خطی است.”’
1.2 دسترسی به کاراکترهای رشته
در پایتون، میتوانید به هر کاراکتر داخل یک رشته با استفاده از ایندکسها (شاخصها) دسترسی پیدا کنید. ایندکسها از ۰ شروع میشوند و میتوانند منفی هم باشند. ایندکس منفی به شما این امکان را میدهد که از انتهای رشته به آن دسترسی پیدا کنید.
به عنوان مثال:
text = "Hello" print(text[0]) # 'H' print(text[-1]) # 'o'
1.3 عملیاتهای مشترک بر روی رشتهها
طول رشته
برای دریافت طول یک رشته از تابع len() استفاده میکنیم:
به عنوان مثال:
text = "Hello, Python!" print(len(text)) # 15
اتصال رشتهها (Concatenation)
با استفاده از علامت + میتوان رشتهها را به هم پیوند داد.
به عنوان مثال:
str1 = "Hello" str2 = "World" result = str1 + " " + str2 print(result) # "Hello World"
تکرار رشتهها
با استفاده از علامت * میتوان یک رشته را چندین بار تکرار کرد.
به عنوان مثال:
text = "Python! " print(text * 3) # "Python! Python! Python! "
برش دادن رشتهها (Slicing)
با استفاده از برش (slicing) میتوانید بخشهایی از یک رشته را استخراج کنید. فرمت کلی برش به شکل [start:end:step] است.
به عنوان مثال:
text = "Hello, Python!" print(text[0:5]) # 'Hello' print(text[7:]) # 'Python!' print(text[:5]) # 'Hello'
4. متدهای رایج رشتهها
پایتون برای رشتهها متدهای زیادی دارد که میتوانند به شما در انجام عملیات مختلف کمک کنند. در اینجا به برخی از متدهای پرکاربرد اشاره میکنیم:
4.1 upper() و lower()
این متدها برای تبدیل رشتهها به حروف بزرگ یا کوچک استفاده میشوند.
به عنوان مثال:
text = "hello" print(text.upper()) # "HELLO" print(text.lower()) # "hello"
srip 4.2 ()
این متد فضای خالی اضافی از ابتدا و انتهای رشته را حذف میکند.
به عنوان مثال:
text = " hello " print(text.strip()) # "hello"
replace 4.3()
این متد برای جایگزینی بخشی از رشته با رشتهای دیگر استفاده میشود.
text = "Hello, World!"
new_text = text.replace("World", "Python")
print(new_text) # "Hello, Python!"
split 4.4()
این متد رشته را به لیستی از زیررشتهها تقسیم میکند. معمولاً از یک جداکننده برای تفکیک استفاده میشود.
به عنوان مثال:
text = "apple,orange,banana"
fruits = text.split(",")
print(fruits) # ['apple', 'orange', 'banana']
join 4.5()
این متد برای اتصال عناصر یک لیست یا مجموعه به همدیگر استفاده میشود.
به عنوان مثال:
fruits = ['apple', 'orange', 'banana'] result = ",".join(fruits) print(result) # "apple,orange,banana"
find() 4.6
این متد برای پیدا کردن اولین وقوع یک زیررشته در داخل رشته استفاده میشود. اگر پیدا نکرد، مقدار -1 را برمیگرداند.
به عنوان مثال:
text = "Hello, Python!"
index = text.find("Python")
print(index) # 7
count() 4.7
این متد تعداد دفعات وقوع یک زیررشته در داخل رشته را برمیگرداند.
به عنوان مثال:
text = "hello world"
count = text.count("o")
print(count) # 2
5. بررسی اینکه آیا یک رشته شامل یک زیررشته است
برای بررسی اینکه آیا یک زیررشته در یک رشته وجود دارد، میتوانید از عملگر in استفاده کنید.
به عنوان مثال:
text = "I love Python" result = "Python" in text print(result) # True
6. رشتههای قالببندی (String Formatting)
پایتون از چندین روش برای قالببندی رشتهها پشتیبانی میکند. یکی از رایجترین روشها استفاده از f-string است که از پایتون 3.6 به بعد معرفی شد.
به عنوان مثال:
name = "Ali"
age = 25
message = f"My name is {name} and I am {age} years old."
print(message) # "My name is Ali and I am 25 years old."
2. استفاده از + و * برای رشتهها
2.1 استفاده از عملگر + برای اتصال رشتهها (Concatenation)
عملگر + برای اتصال یا ترکیب دو یا چند رشته به هم استفاده میشود. زمانی که از + برای ترکیب رشتهها استفاده میکنید، پایتون دو رشته را به صورت پشت سر هم قرار میدهد.
به عنوان مثال:
# تعریف رشتهها greeting = "Hello" name = "Alice" # اتصال دو رشته با استفاده از + message = greeting + ", " + name + "!" print(message) # خروجی: 'Hello, Alice!'
در این مثال، سه رشته greeting، “, “، و name با استفاده از + به هم متصل شدند تا رشتهی کامل ‘Hello, Alice!’ ایجاد شود.
نکات:
عملگر + برای اتصال تنها دو رشته در یک زمان استفاده میشود.
اگر بخواهید چندین رشته را با هم ترکیب کنید، باید از چندین بار استفاده از + استفاده کنید.
2.2 استفاده از عملگر * برای تکرار رشتهها (Repetition)
عملگر * برای تکرار یک رشته چند بار استفاده میشود. با استفاده از * میتوانید یک رشته را تعداد مشخصی تکرار کنید.
به عنوان مثال:
# تعریف یک رشته word = "Python" # تکرار رشته با استفاده از * repeated_word = word * 3 print(repeated_word) # خروجی: 'PythonPythonPython'
در این مثال، رشته word که “Python” است، سه بار تکرار میشود تا رشته جدید ‘PythonPythonPython’ ایجاد شود.
نکات:
اگر عددی که در کنار * میآید صفر یا منفی باشد، خروجی یک رشته خالی خواهد بود.
به عنوان مثال:
empty_string = "Python" * 0 print(empty_string) # خروجی: ''
در صورتی که عدد منفی باشد، خروجی نیز یک رشته خالی خواهد بود.
به عنوان مثال:
invalid_string = "Python" * -1 print(invalid_string) # خروجی: ''
مقایسه بین + و * برای رشتهها
عملیات عملگر توضیحات مثال
اتصال رشتهها + ترکیب چند رشته به هم “Hello” + ” ” + “World”
تکرار رشتهها * تکرار یک رشته به تعداد مشخص “Python” * 3
نکات مهم:
+ برای اتصال رشتهها استفاده میشود.
* برای تکرار یک رشته به تعداد مشخص به کار میرود.
هر دو این عملگرها به شما این امکان را میدهند که به راحتی و با صرفهجویی در زمان، عملیات مختلفی را روی رشتهها انجام دهید.
2.3 استفاده از متدهای مختلف رشتهها در پایتون
1. .lower()
این متد تمام حروف بزرگ در یک رشته را به حروف کوچک تبدیل میکند. این متد برای کار با دادههایی که ممکن است حروف آنها در قالبهای مختلف (حروف بزرگ یا کوچک) باشد، مفید است.
به عنوان مثال:
text = "Hello, World!" print(text.lower())
خروجی:
hello, world!
2. .upper()
متد .upper() برعکس .lower() عمل میکند و تمام حروف کوچک در رشته را به حروف بزرگ تبدیل میکند.
به عنوان مثال:
text = "Hello, World!" print(text.upper())
خروجی:
HELLO, WORLD!
3. .replace()
این متد برای جایگزینی یک بخش از رشته با مقدار جدید استفاده میشود. به این صورت که اولین آرگومان آن بخش مورد نظر برای جایگزینی و دومین آرگومان مقدار جدید است.
به عنوان مثال:
text = "Hello, World!"
new_text = text.replace("World", "Python")
print(new_text)
خروجی:
Hello, Python!
متد .replace() میتواند برای چندین بار جایگزینی استفاده شود اگر همان رشته تکرار شود.
به عنوان مثال:
text = "apple, banana, apple"
new_text = text.replace("apple", "orange")
print(new_text)
خروجی:
orange, banana, orange
4. .strip()
متد .strip() فضای خالی (یا کاراکترهای دیگر) را از ابتدای و انتهای رشته حذف میکند. این متد بهویژه زمانی که دادهها با فضاهای اضافی وارد میشوند، مفید است.
مثال:
text = " Hello, World! " print(text.strip())
خروجی:
Hello, World!
3. فضای سفید در کارکتر ها:
انواع کاراکترهای فاصله:
3.1 فضای خالی (Space)
معمولترین کاراکتر فاصله است که برای جدا کردن کلمات در یک عبارت یا بین متغیرها استفاده میشود.
مثال:
name = "Ali" age = 25 print(name, age) # خروجی: Ali 25
3.2 تب (Tab)
کاراکتر تب \t برای ایجاد فاصلههای عمودی یا برای جدا کردن ستونها در دادهها استفاده میشود.
این کاراکتر معمولاً در زبانهای برنامهنویسی برای ساختاردهی مناسب بلوکهای کد (مثل پایتون) و در نمایش دادهها مفید است.
به عنوان مثال:
print("Name\tAge")
print("Ali\t25")
# خروجی:
# Name Age
# Ali 25
خط جدید (Newline)
کاراکتر خط جدید \n به طور معمول برای شروع یک خط جدید در متن استفاده میشود.
این کاراکتر برای جدا کردن خطوط در رشتهها یا هنگام چاپ اطلاعات به کار میرود.
به عنوان مثال:
print("Hello\nWorld")
# خروجی:
# Hello
# World
بازگشت به ابتدای خط (Carriage Return)
کاراکتر بازگشت به ابتدای خط \r معمولاً به عنوان یک علامت کنترل استفاده میشود که باعث میشود چاپ متن از ابتدای خط جاری شروع شود.
در پایتون، بیشتر از \n برای انتقال به خط جدید استفاده میشود.
به عنوان مثال:
print("Hello\rWorld") # خروجی: World
فضای غیرقابل چاپ (Non-printable whitespace)
این نوع فاصلهها در متن قابل مشاهده نیستند، اما در برنامهها کاربرد دارند، مانند فاصلههای خاص در بین کلمات که ممکن است به عنوان فاصلههای عمودی یا افقی در نظر گرفته شوند.
یکی از مهمترین این فاصلهها، فاصلههای ناشی از Unicode هستند که میتوانند تفاوتهای جزئی در نحوه پردازش رشتهها ایجاد کنند.
اهمیت فاصلهها در پایتون:
ساختاردهی و خوانایی کد: در پایتون، فاصلهها (به ویژه فاصلههای سفید در ابتدای خطوط) نقش کلیدی در تعیین ساختار بلوکهای کد دارند. برای مثال، در پایتون برای نمایش بلوکهای کد از ترازبندی (indentation) استفاده میشود که به کمک فاصلهها انجام میشود.
تشخیص فاصلههای اضافی: در بعضی مواقع، داشتن فاصلههای اضافی یا غیرضروری در ابتدا و انتهای رشتهها میتواند باعث بروز مشکلاتی مانند خطاهای ورودی و خروجی یا تغییر در نتایج برنامه شود. برای رفع این مشکلات میتوان از توابع خاصی مانند strip() برای حذف فاصلههای اضافی استفاده کرد.
به عنوان مثال:
text = " hello " print(text.strip()) # خروجی: hello
مثالهایی برای استفاده از کاراکترهای فاصله:
استفاده از فضای خالی در تفکیک دادهها:
data = "Alice 30 Bob 25 Charlie 35" names = data.split() # جدا کردن با استفاده از فضای خالی print(names) # خروجی: ['Alice', '30', 'Bob', '25', 'Charlie', '35']
چاپ دادهها با استفاده از تب:
print("ID\tName\tAge")
print("1\tAlice\t30")
print("2\tBob\t25")
جدا کردن خطوط با استفاده از \n:
paragraph = "This is the first line.\nThis is the second line." print(paragraph) # خروجی: # This is the first line # This is the second line
4. متد های رشته
capitalize()
اولین کاراکتر را به حروف بزرگ تبدیل میکند.
casefold()
رشته را به حروف کوچک تبدیل میکند.
center()
یک رشتهی متمرکز شده را باز میگرداند.
count()
تعداد دفعاتی که یک مقدار مشخص در رشته تکرار میشود را باز میگرداند.
encode()
نسخهای کدگذاری شده از رشته را باز میگرداند.
endswith()
اگر رشته با مقدار مشخصی تمام شود، درست (True) باز میگرداند.
expandtabs()
اندازهی تبهای رشته را تنظیم میکند.
find()
در رشته به دنبال یک مقدار مشخص میگردد و موقعیت آن را برمیگرداند.
format()
مقادیر مشخصشده را در رشته فرمت میکند.
format_map()
مقادیر مشخصشده را در رشته فرمت میکند.
index()
در رشته به دنبال یک مقدار مشخص میگردد و موقعیت آن را برمیگرداند (برخلاف find()، اگر مقدار پیدا نشود خطا میدهد).
isalnum()
اگر تمام کاراکترهای رشته عددی یا حروف باشند، درست (True) باز میگرداند.
isalpha()
اگر تمام کاراکترهای رشته حروف الفبا باشند، درست (True) باز میگرداند.
isascii()
اگر تمام کاراکترهای رشته از کاراکترهای ASCII باشند، درست (True) باز میگرداند.
isdecimal()
اگر تمام کاراکترهای رشته عددی باشند، درست (True) باز میگرداند.
isdigit()
اگر تمام کاراکترهای رشته عددی باشند، درست (True) باز میگرداند.
isidentifier()
اگر رشته یک شناسه معتبر باشد (برای مثال یک نام متغیر در پایتون)، درست (True) باز میگرداند.
islower()
اگر تمام کاراکترهای رشته حروف کوچک باشند، درست (True) باز میگرداند.
isnumeric()
اگر تمام کاراکترهای رشته عددی باشند، درست (True) باز میگرداند.
isprintable()
اگر تمام کاراکترهای رشته قابل چاپ باشند، درست (True) باز میگرداند.
isspace()
اگر تمام کاراکترهای رشته فاصله یا فضای خالی باشند، درست (True) باز میگرداند.
istitle()
اگر رشته مطابق با قوانین عنوان (برای مثال حرف اول هر کلمه بزرگ باشد) باشد، درست (True) باز میگرداند.
isupper()
اگر تمام کاراکترهای رشته حروف بزرگ باشند، درست (True) باز میگرداند.
join()
عناصر یک Iterable را به انتهای رشته اضافه میکند.
ljust()
نسخهای چپچین از رشته را باز میگرداند.
lower()
رشته را به حروف کوچک تبدیل میکند.
lstrip()
نسخهای از رشته که از سمت چپ برش خورده باشد را باز میگرداند.
maketrans()
یک جدول ترجمه برای استفاده در ترجمهها باز میگرداند.
partition()
یک تاپل برمیگرداند که در آن رشته به سه بخش تقسیم شده است.
replace()
رشتهای برمیگرداند که در آن مقدار مشخصی با مقدار دیگری جایگزین شده باشد.
rfind()
در رشته به دنبال یک مقدار مشخص میگردد و آخرین موقعیت آن را برمیگرداند.
rindex()
در رشته به دنبال یک مقدار مشخص میگردد و آخرین موقعیت آن را برمیگرداند (برخلاف find()، اگر مقدار پیدا نشود خطا میدهد).
rjust()
نسخهای راستچین از رشته را باز میگرداند.
rpartition()
یک تاپل برمیگرداند که در آن رشته به سه بخش تقسیم شده است (از انتها).
rsplit()
رشته را با جداکننده مشخص تقسیم کرده و یک لیست باز میگرداند.
rstrip()
نسخهای از رشته که از سمت راست برش خورده باشد را باز میگرداند.
split()
رشته را با جداکننده مشخص تقسیم کرده و یک لیست باز میگرداند.
splitlines()
رشته را با شکستهای خط تقسیم کرده و یک لیست باز میگرداند.
startswith()
اگر رشته با مقدار مشخصی شروع شود، درست (True) باز میگرداند.
strip()
نسخهای از رشته که برش خورده باشد (فضاهای اضافی از ابتدا و انتها حذف شده) باز میگرداند.
swapcase()
حالت حروف را تغییر میدهد (حروف کوچک به بزرگ و بالعکس).
title()
اولین حرف هر کلمه را به حروف بزرگ تبدیل میکند.
translate()
یک رشته ترجمه شده را باز میگرداند.
upper()
رشته را به حروف بزرگ تبدیل میکند.
zfill()
رشته را با تعدادی صفر در ابتدای آن پر میکند.
