کار با رشته ها (Strings) در پایتون

رشته ها (string) در زمره محبوب ترین و پرکاربردترین data type ها در زبان برنامه نویسی پایتون می باشند. در پایتون رشته ها با قرار گرفتن درون علامت کوتیشن ایجاد می گردند و زبان برنامه نویسی پایتون همانند جاوا اسکریپت تفاوتی بین سینگل کوتیشن و دابل کوتیشن قائل نبوده و آنها را یکسان در نظر می گیرد.

نحوه تعریف و مقدار دهی یک متغیر string

همانطور که پیشتر گفته شد برای تعریف و مقدار دهی متغیرهای رشته ای در پایتون کافی است آنها را بین علامت های کوتیشن قرار دهید.

str1 = 'Hello world!'
str2 = "Welcome to Beno Academy"

در پایتون برخلاف زبان های برنامه نویسی مانند سی شارپ، نوع داده کاراکتری وجود ندارد و در اصل کاراکتر نیز رشته ای با طول 1 می باشد، به عبارتی دیگر، عملکرد رشته ها در زبان پایتون، همانند زبان برنامه نویسی C می باشد که در آن هر رشته، آرایه ای از کاراکترها در نظر گرفته می شود.

برای دسترسی به یک کاراکتر خاص، می توان اندیس (Index) آن را تعیین نمود. برای مثال اگر قصد داشته باشید کاراکتر اول متغیر str1 را نمایش دهید می توانید به شکل زیر عمل کنید:

str1 = 'Hello world!'
str2 = "Welcome to Beno Academy"

print(str1[0])

یکی دیگر از روش های استخراج متن از یک متغیر string تعیین محدوده می باشد. برای مثال اگر قصد داشته باشید از متغیر str2 عبارت Beno را استخراج کرده و نمایش دهید می توانید از کدهای زیر استفاده نمایید:

print(str2[11:15])

با اجرای کدهای فوق، کاراکترهای 11 تا 15 از متغیر str2 استخراج شده و در خروجی نمایش داده می شود.

عملگرهای متنی (String Operators) در پایتون

در تمامی زبان های برنامه نویسی از جمله سی شارپ، جاوا اسکریپت و ... عملگرهایی برای کار با متغیرهای string وجود دارد اما در پایتون عملکرد برخی از این عملگرها متفاوت تر بوده و طیف گسترده تری از عملگرهای متنی در زبان برنامه نویسی پایتون قابل استفاده می باشد.

الحاق رشته ها

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

str1 = 'Hello'
str2 = 'Programmer'
print(str1 + ' ' + str2)

تکثیر (تکرار) متن

از عملگر * برای تکثیر یا تکرار یک متن در پایتون استفاده می شود. برای مثال اگر قصد داشته باشید محتوای متغیر str1 پنج بار تکرار شود می توانید از این عملگر استفاده نمایید.

str1 = 'Hello'
str2 = 'Programmer'
print(str1 * 5)

عملگر in و not in

دو عملگر دیگری که شاید برنامه نویسان پایگاه داده از آن بیشتر استفاده کرده باشند، in و not in می باشند. از این دو عملگر برای بررسی وجود یا عدم وجود یک عبارت در یک عبارت دیگر استفاده می شود.

str1 = 'Hello programmers, welcome to beno academy'
print('beno' in str1)

با اجرای کدهای فوق عبارت True در خروجی ظاهر می گردد زیرا کلمه beno در متغیر مورد نظر وجود دارد.

عملکرد not in این نیز دقیقا عکس این موضوع می باشد یعنی در صورت عدم وجود نتیجه آن True خواهد بود.

str1 = 'Hello programmers, welcome to beno academy'
print('python' not in str1)

فرمت دهی به متن در پایتون

شرایط مختلفی ممکن است بوجود آید که در آن نیاز باشد متن با فرمت خاصی نمایش داده شود. برای مثال اگر قصد داشته باشید در یک متن طولانی محتوای چند متغیر را مورد استفاده قرار دهید، الحاق رشته ها کمی از زیبایی و خوانایی کدها می کاهد و بهتر از جانگهدارها (Placeholder) به روش زیر استفاده نمایید.

name = 'Ali'
print('Hello %s' % (name))

در کدهای فوق درون متن چاپی بعد از عبارت Hello از %s استفاده شده است که یک placeholder (جانگهدار) برای متغیرهای متنی می باشد. بعد از تعین متن و placeholderها می بایست از کاراکتر % استفاده نموده و سپاس مقادیری که قصد دارید درون placeholderها قرار گیرند را به ترتیب درون پرانتر قرار دهید.

برای استفاده از placeholderهای عددی به جای %s می توانید از %d استفاده نمایید. برای مثال اگر قصد داشته باشید نام، نام خانوادگی و سن یک کاربر را نمایش دهید می توانید به شکل زیر عمل کنید.

firstname = 'Ali'
lastname = 'Rezaei'
age = 25
print('Hello %s %s, your age is : %d' % (firstname, lastname, age))

متدهای رشته ای

علاوه بر دستورات ذکر شده در بخش قبل، در زبان برنامه نویسی پایتون، متدهایی نیز جهت کار با رشته ها وجود دارد که مهمترین آنها به شرح زیر می باشند.

متد capitalize

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

str1 = 'BeNo Academy'
print(str1.capitalize())

خروجی:

Beno academy

متد upper

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

str1 = 'BeNo Academy'
print(str1.upper())

خروجی:

BENO ACADEMY

متد lower

عملکرد این متد برعکس متد upper بوده و کلیه کاراکترها را به حرف کوچک تبدیل می کند.

str1 = 'BeNo Academy'
print(str1.lower())

خروجی:

beno academy

متد find

از این متد برای جستجوی یک عبارت درون یک متن (رشته) استفاده می شود. در صورتیکه عبارت در متن وجود داشته باشد index آن برگشت داده می شود و در غیر اینصورت، مقدار بازگشتی 1- خواهد بود.

str1 = 'Welcome to Beno Academy'
print(str1.find('Beno'))

خروجی:

11

متد join

این متد یکی از جالب ترین متدهای کار با رشته ها می باشد که نمونه آن در کمتر زبان برنامه نویسی دیده می شود و از آن برای الحاق یک رشته با دنباله ای از رشته استفاده می شود.

str1 = '-'
str2 = 'tehran', 'esfahan', 'shiraz', 'tabriz', 'mashhad'
print(str1.join(str2))

خروجی:

tehran-esfahan-shiraz-tabriz-mashhad

متد len

از این متد برای بدست آورد طول یک رشته استفاده می شود.

str1 = 'Welcome to Beno Academy'
print(len(str1))

خروجی:

23

متد replace

از این متد برای جایگذاری یک عبارت، با عبارتی دیگر درون یک متن استفاده می شود.

str1 = 'Welcome to Beno Academy'
print(str1.replace('Beno', 'Programming'))

خروجی:

Welcome to Programming Academy