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

Please login to bookmark Close

رشته یا String چیست؟

هر گاه نیاز به کار با متن داشته باشیم، متن ها را در قالب رشته تعریف می‌کنیم. نام دیگر رشته، string است.

کارکتر یا Charachter چیست؟

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

تعریف رشته

تعریف رشته به سه شکل امکان پذیر است.

روش اول، کوتیشن ' یا دابل کوتیشن "

برای ایجاد یک رشته در پایتون کافیست متن خود را بین دو کوتیشن ' یا دو دابل کوتیشن " قرار دهید. به عنوان مثال:

string1 = 'Hello, World!'
string2 = "Python is awesome"

روش دوم، سه تا کوتیشن یا سه تا دابل کوتیشن

روش فوق برای رشته های کوتاه که در یک خط قابل تعریف باشند قابل استفاده است. اگر متن شما چند خط باشد، بهتر است با قرار دادن آن بین سه کوتیشن ''' یا سه دابل کوتیشن """ تعریف کنید.

multiline_string = '''
This is a multiline string.
It can contain multiple lines.
This is its third line.
'''
print(multiline_string)

روش سوم، استفاده از \n

روشی دیگر برای تعریف رشته چند خطی استفاده از کارکتر \n است. به عبارت دیگر، ما می‌توانستیم کد بالا را به شکل زیر نیز تعریف کنیم.

multiline_string = '\nThis is a multiline string.\nIt can contain multiple lines.\nThis is its third line.\n'
print(multiline_string)

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

گاهی خود پایتون رشته ها را اینگونه ذخیره می‌کند و ما برای اینکه بتوانیم درک بهتری از عملکرد پایتون داشته باشیم باید این روش را نیز بلد باشیم. برای اینکه منظورم را بهتر متوجه بشوید لطفا به کد زیر توجه کنید.

کد بالا را در python shell اجرا کرده ایم. به تحلیل این کد توجه کنید.

  • بخش اول: در این بخش یک رشته چند خطی را طوری تعریف کرده ایم که برای یک انسان خوانا باشد.
  • بخش دوم: در این بخش همان رشته را print گرفته ایم. همانطور که ملاحظه می‌کنید مطابق انتظار، این رشته در چند خط چاپ شده است.
  • بخش سوم: در این بخش، مقداری که پایتون داخل multiline_string ذخیره کرده را استعلام میگیریم. این در خط همانطور که مشاهده می‌کنید، هر جایی که خط جدیدی ایجاد کرده ایم، پایتون به جایش \n قرار داده است.

در کد بالا مشاهده کردید که خود پایتون به جای new line ها، \n قرار داده است. پس لازم است معنی آن و عملکردش را در برنامه‌نویسی بدانیم که بتوانیم درک بهتری از پایتون داشته باشیم.

چرا رشته را هم با ' و هم با ‍‍" می‌توان تعریف کرد؟

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

مثلا جمله I’m Mohammadreza را چطور باید تعریف می‌کردیم؟ به نظر آیا می‌توان به شکل زیر تعریف کرد؟

text = 'I'm Mohammadreza'

خیر امکان پذیر نیست زیرا با خطای زیر مواجه خواهیم شد.

text = 'I'm Mohammadreza'
              ^
SyntaxError: invalid syntax

همانطور که می‌بینید، علامت ^ زیر دومین کوتیشن بیانگر این است که اینجا یک مشکل داریم. حالا چطور این مشکل را می‌توانیم حل کنیم؟

کافیست یک بک اسلش کنارش قرار دهیم.

text = 'I\'m Mohammadreza'

دلیل این مشکل این است که اگر بخواهیم رشته را با ' تعریف کنیم دیگر نمی‌توانیم درون خود آن از ' استفاده کنیم مگر اینکه قبل از هر کدام از آن‌ها بک اسلش \ قرار دهیم. این روش زیاد جالب نیست چون خوانایی خوبی ندارد. به همین دلیل به جای استفاده از این روش ناخوانا، رشته را با " تعریف کرده و داخلش به راحتی از ' استفاده خواهیم کرد.

text = "I'm Mohammadreza"

حالا تصور کنید بخواهیم جمله I’m “Mohammadreza” را به عنوان یک رشته در پایتون تعریف کنیم. این جمله چطور باید ذخیره و نگهداری شود؟

text = '''I'm "Mohammadreza"'''

پس کاربرد ''' یا """، صرفا تعریف رشته های چند خطی نیست، بلکه می‌توان اجازه داد تا ترکیب های پیچیده ای از ' و " را همزمان در یک رشته به عنوان بخشی از یک رشته نگه داشت و با آنها کار کرد.

عملگر های رشته

عملگر +

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

first_name = 'Mohammadreza'
last_name = 'Kasaiee'
fullname = first_name + ' ' + last_name
print(full_name) # Mohammadreza Kasaie

عملگر *

اگر رشته را در یک عدد ضرب کنید، آنگاه آن رشته، به آن تعداد تکرار خواهد شد.

pattern = '@'
result = pattern * 5
print(result) # @@@@@

عملگر in

کمک می‌کند بفهمیم که یک رشته در رشته ای دیگر وجود دارد یا خیر. اگر وجود داشته باشد مقدار True و اگر نداشته باشد مقدار False را نمایش خواهد داد.

print('M' in 'Mohammadreza')    # True
print('reza' in 'Mohammadreza') # True
print('Reza' in 'Mohammadreza') # False

عملگر \n

با استفاده از این عملگر می‌توان خط جدید یا اصطلاحا new line ایجاد کرد. به ازای هر کدام از \n ها یک خط جدید چاپ خواهد شد. عملگر \n فقط زمانی به new line تبدیل می‌شود که تابع print آن را پردازش کند. در صورتی که مقدار آن را به صورت مستقیم در python shell نمایش دهید، این کارکتر خط جدیدی چاپ نمی‌کند.

>>> text = 'line1\nline2'
>>> print(text)
line1
line2
>>> text
'line1\nline2'

همانطور که در کد بالا مشاهده می‌کنید، اگر text را print کنیم، به جای \n خط جدیدی چاپ می‌شود ولی اگر مقدارش را مستقیم فراخوانی کنیم، همان کارکتر نمایش داده می‌شود.

فرض کنید برای انجام عملیاتی، نیاز است تا فایلی به آدرس C:\new_folder\new_text.txt را در ویندوز فراخوانی کنید. بدین منظور کدی مشابه زیر را خواهید نوشت.

file_path = 'C:\new_folder\new_text.txt'
# سایر کد های برنامه
print(file_path)
# سایر کد های برنامه

وقتی مسیر این فایل را print کنید، انتظار دارید C:\new_folder\new_text.txt چاپ شود اما خروجی به شکل زیر خواهد بود زیرا پایتون هر جا \ را در کنار n ببیند، یک new line چاپ می‌کند.

C:
ew_folder
ew_text

برای حل این مشکل دو راه داریم.

راه اول، استفاده از \ اضافی

اگر کد را به شکل زیر اصلاح کنیم مشکل حل می‌شود.

file_path = 'C:\\new_folder\\new_text.txt'
# سایر کد های برنامه
print(file_path)
# سایر کد های برنامه

راه دوم، تعریف raw string

raw string یا رشته خام، رشته ای است که پایتون هیچکدام از کارکتر های کنترلی را نسبت به آن در نظر نمی‌گیرد. اگر یک raw string را چاپ کنید، همه چیز دقیقا همانطور که در آن نوشته شده است چاپ خواهد شد.

برای اینکه رشته فوق را به صورت یک raw string تعریف کنیم، کافیست تعریف رشته با یک r شروع شود.

file_path = r'C:\new_folder\new_text.txt'
# سایر کد های برنامه
print(file_path)
# سایر کد های برنامه
Please login to bookmark Close
پیشرفت شما در «دوره آموزش پایتون مقدماتی» (16%)
نظرات

دیدگاهتان را بنویسید

16%
پیشرفت

سرفصل دوره

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم