تور آموزشی

رشته در پایتون

مقدمات

رشته‌ها در پایتون دنباله پیوسته‌ای از کاراکترها هستند که با کوتیشن (‘) یا دوکوتیشن (“) مشخص می‌شوند. رشته‌ها برای ذخیره کردن داده‌های متنی به کار می‌روند. از کلمات کوتاه مانند نام و نام خانوادگی تا جمله‌ها و پاراگراف‌ها. با دستور print می‌توان یک رشته را چاپ کرد. همچنین با دستور len می‌توان تعداد کاراکترهای رشته را بدست آورد

مثال:

a = “salam! I am a string :)”
print(len(a))

خروجی:

23

همان‌طور که مشاهده می‌شود همه کاراکترها محاسبه می‌شوند. حتی فاصله و کاراکترهای ویژه.

مثال:

a = “salam”
b = “!”
print(a, b)

خروجی:

salam!

همانند لیست‌ها می‌توان به بخش‌های مختلف یک رشته دسترسی داشت.

مثال:

print(a[4])
print(a[1:5])
print(a[-1])
print(a[-7:-1])
print(a[:5])
print(a[7:])

خروجی:

m
alam
)
ring :
salam
I am a string :)

برای تبدیل یک متغیر از سایر نوع‌ها (مثلا نوع عددی) به رشته از دستور str استفاده می‌کنیم.

مثال:

x = 12.5
a = str(x)
print(type(a))

خروجی:

<class 'str'>

دقت شود برخلاف برخی دیگر از زبان‌های برنامه‌نویسی کلمه کلیدی برای نوع رشته در زبان پایتون str است و نه string. بنابراین با دستوری مانند str() = a می‌توان یک رشته خالی تعریف کرد. البته همین کار را به این شکل نیز می‌توان انجام داد: "" = a.

برای چسباندن دو رشته به یکدیگر می‌توان از کاراکتر بعلاوه (+) استفاده کرد.

مثال:

a = “salam!”
b = “I am a string.”
c = a + “ “ + b
print(c)

خروجی:

salam! I am a string.

برای اینکه ببینیم آیا یک کاراکتر یا یک رشته خاص در یک رشته دیگر قرار دارد می‌توان از عملگرهای in و not in استفاده کرد.

مثال:

a = “salam! I am a string.”
print(“salam” in a)

خروجی:

True

مثال:

a = “salam! I am a string :)”
if “int” not in a:
    print(“there is no int in a!”)
else:
    print(“int is in a”)

خروجی:

there is no int in a!

نمایش کاراکترهای خاص

بعضی کاراکترها را نمی‌توان در رشته‌ها استفاده کرد. مثلا کاراکتر بک‌اسلش (\) یا استفاده از کاراکتر دوکوتیشن داخل رشته‌ای که با دوکوتیشن تعریف شده است.

مثال:

print(“salam\”)
print(“sal”am”)

خروجی:

SyntaxError: EOL while scanning string literal
SyntaxError: invalid syntax

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

مثال:

print(“\\salam\\”)
print(“\”salam\””)

خروجی:

\salam\
“salam”

مثال:

print(“salam\nI am a string”)

خروجی:

salam
I am a string

n\ به معنای خط جدید (new line) است.

مثال:

print(“salam\tI am a string”)

خروجی:

salam   I am a string

t\ یک تب (tab) ایجاد می‌کند.

البته به این نکته باید دقت کرد درصورتی که رشته با دوکوتیشن تعریف شده باشد می‌توان از کوتیشن داخل آن استفاده کرد و برعکس. درصورتی که رشته با کوتیشن تعریف شده باشد می‌توان از دوکوتیشن درون آن استفاده کرد.

مثال:

print(“’salam’”)
print(‘”salam”’)

خروجی:

‘salam’
“salam”

معرفی متدهای متداول رشته‌ها

رشته‌ها در پایتون متدهای مختلفی دارند که تسلط به آنها توانایی زیادی به برنامه‌نویس پایتون می‌دهد. در این بخش بعضی از متدهای مهم رشته‌ها را بررسی می‌کنیم.

متد format:

از متد format در پایتون برای درج متغیرهایی از سایر انواع در رشته استفاده می‌شود.

ابتدا باید بدانیم کارهایی مانند دستور زیر مجاز نیست و باعث خطای TypeError می‌شود:

print(“price: “ + 3000)

برای چنین شرایطی می‌توان از متد format استفاده کرد. این متد کاربرد فراوانی در شکل‌دهی به رشته دارد. برای استفاده از این متد باید به جای متغیرهایی که باید در رشته وارد شوند از کاراکتر آکولاد استفاده کنیم. سپس در متد format متغیرها را فراخوانی کنیم.

مثال:

price = 3000
txt = “price is {} !!!”.format(price)
print(txt)

خروجی:

price is 3000 !!!

مثال:

number = 5
price = 3000
print(“Price for one product is {}T but for {} product is {}T.”.format(price, number, number*price))

خروجی:

Price for one product is 3000T but for 5 product is 15000T.

به همان تعداد که آکولادها در رشته قرار گرفته‌اند باید در متد format متغیر وجود داشته باشد. از طرف دیگر متغیرها به ترتیب به جای آکولادها قرار خواهند گرفت. البته می‌توان ترتیب قرارگیری را در آکولادها مشخص کرد.

در مثال قبل:

print(“Price for one product is {0}T but for {2} product is {1}T.”.format(price, number*price, number))

متدهای lower و upper:

متدهای lower و upper در پایتون تمام حروف متن را به ترتیب به حروف کوچک و بزرگ تبدیل می‌کند. دقت شود که این متدها به حروف فارسی یا اعداد کاری ندارد.

مثال:

print(“Salam. I am a STRING!!!”.lower())
print(“Salam. I am a STRING!!!”.upper())

خروجی:

salam. i am a string!!!
SALAM. I AM A STRING!!!

متد strip:

متد strip در پایتون فضای خالی را در ابتدا و انتهای رشته از بین می‌برد.

مثال:

txt = “    Salam. I am a string. ”.strip()
print(txt)

خروجی:

Salam. I am a string.

متد replace:

با استفاده از متد replace در پایتون می‌توان یک یا چند کاراکتر را با یک یا چند کاراکتر دیگر عوض کرد.

مثال:

txt = “Salam. I am a string.”
print(txt.replace(‘string’, ‘integer’))

خروجی:

Salam. I am a integer.

دقت شود در صورتی که آرگومان اول در رشته موجود نباشد تغییر رخ نخواهد داد.

مثال:

txt = “Salam. I am a string.”
print(txt.replace(‘String’, ‘integer’))

خروجی:

Salam. I am a string.

متد split:

متد split در پایتون یک لیست از زیر رشته‌ها بازمی‌گرداند.

مثال:

txt = “salam, I am a string.”
print(txt.split(‘,’))
print(txt.split(‘.’))
print(txt.split(‘!’))

خروجی:

['salam', ' I am a string.']
['salam, I am a string', '']
['salam, I am a string.']