درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من

آموزش زبان پایتون :: قسمت دهم - کار با رشته ها و توابع مرتبط

0 نظرات

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

>>> message = "Welcome to 'Python' training course"
>>> print(message)
Welcome to 'Python' training course
>>> message = 'Welcoe to "Python" training course'
>>> print(message)
Welcoe to "Python" training course

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

>>> message = '''Welcome to Python training course.
... by Hossein Ahmadi
... ITPro.ir'''
>>> print(message)
Welcome to Python training course.
by Hossein Ahmadi
ITPro.ir

زمانی که در محیط cmd و حالت interactive قرار دارید، با نوشتن '''، اگر رشته وارد شده با ''' به اتمام نرسد، با زدن کلید Enter سایر خطوط رشته را وارد می کنید تا زمانی که خط وارد شده با علامت ''' به اتمام برسد.


تبدیل نوع ها با کمک str


در زبان پایتون می توان سایر نوع های داده را بوسیله تابع str به رشته تبدیل کرد. در نمونه کد زیر روش های استفاده از این تابع را مشاهده می کنید:

>>> str(25.4)
'25.4'
>>> str(1.0e4)
'10000.0'
>>> str(True)
'True'

به صورت پیش فرض زبان پایتون از تابع str در تابع print استفاده می کند. برای مثال زمانی که شما یک عدد را بوسیله دستور print چاپ می کنید، ابتدا عدد مورد نظر توسط تابع str به رشته تبدیل شده و سپس در خروجی نمایش داده می شود.


آشنایی با Escape Character ها


برخی کاراکتر ها در زبان پایتون هستند که کاربرد ویژه ای دارند. به این کاراکترها اصطلاحاً Escape Characters گفته می شود و تاثیرات متفاوتی بر روی رشته دارند. از Escape Character ها بوسیله کاراکتر \\ می توان استفاده کرد. کافیست شما کاراکتر \\ را نوشته و Escape Character مورد نظر را بعد از آن بنویسید. یکی از این کاراکترها که بسیار پرکاربرد هم می باشد برای ایجاد خط جدید استفاده شده و به صورت n\\ نوشته می شود:

>>> print("Welcome to Python training course.\nBy Hossein Ahmadi")
Welcome to Python training course.
By Hossein Ahmadi

همانطور که در خروجی کد بالا مشاهده می کنید، عبارت n\\ در خروجی نمایش داده نشده و در عوض در خروجی به جای n\\ یک خط جدید ایجاد شده است. یکی از Escape Character های پرکاربرد t\\ است که معادل کلید tab عمل می کند:

>>> print("Welcome to Python training course.\n\tBy Hossein Ahmadi\n\tITPro.ir")
Welcome to Python training course.
        By Hossein Ahmadi
        ITPro.ir

در صورتی که رشته با کاراکتر ' یا " شروع شده باشد، در صورت استفاده از کاراکترهای ذکر شده در میان رشته باید به صورت Escape Character نوشته شوند:

>>> print("Welcome to \"ITPro.ir\"")
Welcome to "ITPro.ir"
>>> print('Welcome to \'ITPro.ir\'')
Welcome to 'ITPro.ir'

اگر نیاز داشته باشید که در رشته کاراکتر \\ را چاپ کنید کافیست به صورت زیر این کار را انجام دهید:

>>> print("File Path: D:\\data.dat")
File Path: D:\data.dat

الحاق رشته ها


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

>>> "Welcome" + " To " + " ITPro.ir"
'Welcome To  ITPro.ir'

ترکیب رشته های ثابت بدون علامت + نیز به صورت زیر امکان پذیر است:

>>> print("Welcome" " to " " ITPro.ir")
Welcome to  ITPro.ir

دقت کنید که در صورت الحاق رشته ها در زبان پایتون باید فاصله بین رشته ها توسط برنامه نویس مشخص شود و این کار توسط پایتون انجام نمی شود. برای درج فاصله به صورت خودکار می توان به صورت زیر از تابع print استفاده کرد:

>>> print("Welcome","to","ITPro.ir")
Welcome to ITPro.ir

تکرار رشته بوسیله **


برای تکرار یک رشته به تعداد مشخص می توان از کاراکتر ** به صورت زیر استفاده کرد:

>>> print("ITPro.ir"*3)
ITPro.irITPro.irITPro.ir

استخراج کاراکتر از رشته


برای بدست آوردن یک کاراکتر از رشته بر اساس ایندکس مورد نظر می توان باید از [] استفاده کرد. شیوه استفاده از این روش به صورت زیر است:

>>> message="ITPro.ir"
>>> message[0]
'I'
>>> message[1]
'T'
>>> message[4]
'o'

در صورتی که ایندکس وارد شده بیشتر از طول رشته باشد با پیغام خطای string index out of range مواجه خواهید شد:

>>> message[12]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

به این نکته هم توجه کنید که امکان تغییر کاراکتر در یک ایندکس خاص وجود ندارد:

>>> message[0] = 'T'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

استخراج زیر رشته از یک رشته


برای استخراج یک زیر رشته از یک رشته می توان از Slice استفاده کرد. برای اینکار کافیست در بین [] که در قسمت قبلی مشاهده کردیم، به جای یک عدد دو یا سه عدد وارد شود که عدد اول ایندکس شروع یا start برای استخراج رشته، عدد دوم ایندکس پایان یا end و عدد سوم که اختیاری است step است:

message[start:end:step]

استفاده از step برای مواقعی است که می خواهیم کاراکتر ها یکی در میان یا دو در میان یا ... استخراج شوند. حالت های مختلف slice را در زیر بررسی می کنیم:

با فرض اینکه متغیر message به صورت زیر تعریف شده باشد:

>>> message = "Welcome to ITPro.ir"

1. استخراج یک متن از نقطه start تا انتهای رشته ([start:]):

>>> message[4:]
'ome to ITPro.ir'

2. استخراج رشته از ابتدای رشته تا نقطه end مشخص شده ([:end]):

>>> message[:5]
'Welco'

3. استخراج بر اساس ایندکس های start و end مشخص شده ([start:end]):

>>> message[8:10]
'to'

4. استخراج بر اساس ایندکس های start و end و step مشخص شده ([start:end:step]):

>>> message[4:15:2]
'oet Tr'

یکی از قابلیت های جالب در slice این است که در صورت مشخص کردن ایندکس به صورت منفی از انتهای رشته ایندکس مشخص می شود:

>>> message[-8:]
'ITPro.ir'
>>> message[-8:-3]
'ITPro'

بدست آوردن طول رشته با تابع len


برای بدست آوردن طول رشته ها در پایتون می توان از تابع len استفاده کرد. شیوه استفاده از این تابع به صورت زیر است:

>>> message="Welcome to ITPro.ir"
>>> len(message)
19
>>> len("Hossein Ahmadi")
14

تابع len را می توان برای نوع های دیگری مانند list ها یا tuple ها نیز استفاده کرد که در بخش های بعدی در مورد آن صحبت خواهیم کرد.


جدا کردن رشته ها با تابع split


یکی دیگر از توابع پرکاربرد برای کار با رشته ها تابع split است. بوسیله این تابع می توان یک رشته را بر اساس یک کاراکتر مشخص به تعدادی رشته تقسیم کرد. خروجی این تابع یک لیست است. از تابع split به صورت زیر می توان استفاده کرد:

>>> message="Welcome to ITPro.ir"
>>> message.split(' ')
['Welcome', 'to', 'ITPro.ir']

در کد بالا رشته message را بر اساس کاراکتر فاصله شکستیم که خروجی آن یک لیست شامل لغات متغیر message می باشد. مثالی دیگر را در زیر مشاهده می کنید:

>>> "ITPro.ir".split('.')
['ITPro', 'ir']

در صورتی که پارامتری برای تابع split مشخص نشود عملیات شکستن رشته بر اساس کاراکتر فاصله انجام می شود.


ترکیب رشته بوسیله تابع join


تابع join برعکس کار split را انجام می دهد، یعنی یک لیست را به عنوان ورودی گرفته و بر اساس کاراکتر مشخص شده آن ها را با هم ترکیب کرده و یک رشته تولید می کند:

>>> words=["Welcome","To","ITPro.ir"]
>>> ' '.join(words)
'Welcome To ITPro.ir'

سایر توابع کار با رشته ها


در آخرین بخش این قسمت به بررسی سایر توابع کاربردی برای کار با رشته ها خواهیم پرداخت. در کلیه مثال های بعدی متغیر message به صورت زیر تعریف شده است:

message="Welcome to ITPro.ir"

1.

تابع startswith:

این تابع بررسی می کند که رشته مورد نظر با رشته مشخص شده شروع می شود یا خیر، خروجی این تابع از نوع boolean می باشد:

>>> message.startswith("Welcome")
True
>>> message.startswith("welcome")
False

دقت کنید که بخش دوم کد بالا مقدار False را برگرداند، زیرا عملیات مقایسه به صورت Case Sensitive یا حساس به کوچکی و بزرگی حروف انجام می شود.

2.

تابع find:

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

>>> message.find("ITPro")
11

3.

تابع rfind:

مانند find عمل کرده، با این تفاوت که آخرین ایندکس را بر میگرداند:

>>> message.find("o")
4
>>> message.rfind("o")
15

4.

تابع count:

بوسیله این تابع می توان تعداد تکرار یک رشته را داخل یک رشته دیگر بدست آورد:

>>> message.count("o")
3
>>> message.count("Wel")
1

5.

تابع isalnum

: این تابع بررسی می کند که تمامی کاراکترهای داخل رشته عدد یا حروف الفبا هستند یا خیر:

>>> "123".isalnum()
True
>>> "A12".isalnum()
True
>>> "ITPro.ir".isalnum()
False

6.

تابع strip:

این تابع کلیه کاراکترهای مشخص شده را از ابتدا و انتهای رشته حذف می کند:

>>> "..Welcome..".strip('.')
'Welcome'
>>> "  Welcome".strip()
'Welcome'

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

8.

تابع capitalize:

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

>>> "welcome to tosinso.com".capitalize()
'Welcome to tosinso.com'

9.

تابع title:

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

>>> "welcome to tosinso.com".title()
'Welcome To Itpro.Ir'

10.

تابع upper:

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

>>> "welcome to tosinso.com".upper()
'WELCOME TO ITPRO.IR'

11. تابع Lower:* کلیه کاراکترهای رشته را تبدیل به حروف کوچک می کند:

>>> "WELCOME TO ITPRO.IR".lower()
'welcome to tosinso.com'

12.

تابع center:

بر اساس عدد وارد شده، رشته را وسط چین می کند، برای مثال، اگر عدد 30 را انتخاب کنیم، رشته را در یک سطر 30 کاراکتری وسط چین می کند:

>>> "ITPro.ir".center(50)
'                     ITPro.ir                     '

13.

توابع ljust و rjust:

رشته را از سمت چپ یا راست مرتب می کند:

>>> "24.23".ljust(10)
'24.23     '
>>> "24.23".rjust(10)
'     24.23'

تابع rjust برای نمایش اعداد به صورت زیر هم و مرتب شده بسیار کاربر دارد.

14.

تابع replace:

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

>>> "Welcome to ITPro.ir".replace("ITPro.ir","ITPRO.IR")
'Welcome to ITPRO.IR'

در تابع replace به عنوان پارامتر سوم می توان مشخص کرد که تا چند رشته جایگزین شود:

>>> "Welcome to ITPro.ir".replace("o","O",2)
'WelcOme tO ITPro.ir'

همانطور که در کد بالا مشاهده می کند، تنها 2 مرتبه کاراکتر o در رشته جایگزین شده است.

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

ITpro باشید

نویسنده: حسین احمدی

منبع: ITpro

آیا این مطلب را پسندیدید؟
ردیف عنوان قیمت
1 آموزش زبان پایتون :: قسمت اول - مقدمات و آشنایی اولیه با پایتون رایگان
2 آموزش زبان پایتون :: قسمت دوم - دانلود پایتون و نوشتن اولین برنامه رایگان
3 آموزش زبان پایتون :: قسمت سوم - آشنایی با ساختار اسکریپت های پایتون رایگان
4 آموزش زبان پایتون :: قسمت چهارم - نوع های داده در زبان پایتون رایگان
5 آموزش زبان پایتون :: قسمت پنجم - تبدیل نوع ها به یکدیگر رایگان
6 آموزش زبان پایتون :: قسمت ششم - عملگرها در پایتون رایگان
7 آموزش زبان پایتون :: قسمت هفتم - دستور if رایگان
8 آموزش زبان پایتون :: قسمت هشتم - حلقه ها رایگان
9 آموزش زبان پایتون :: قسمت نهم - نوع های عددی و توابع کار با اعداد رایگان
10 آموزش زبان پایتون :: قسمت دهم - کار با رشته ها و توابع مرتبط رایگان
11 آموزش زبان پایتون :: قسمت یازدهم - لیست ها رایگان
12 آموزش زبان پایتون :: قسمت دوازدهم - Tuple ها رایگان
13 آموزش زبان پایتون :: قسمت سیزدهم - دیکشنری ها (Dictionaries) رایگان
14 آموزش زبان پایتون :: قسمت چهاردهم - مجموعه ها (Sets) رایگان
15 آموزش زبان پایتون :: قسمت پانزدهم - تابع zip و پیمایش چند لیست به صورت همزمان رایگان
16 آموزش زبان پایتون :: قسمت پانزدهم - روش Comprehension برای ایجاد لیست ها، دیکشنری ها و مجموعه ها رایگان
17 آموزش زبان پایتون :: قسمت شانزدهم - توابع (Functions) رایگان
18 آموزش زبان پایتون :: قسمت هفدهم - Closure ها رایگان
19 آموزش زبان پایتون :: قسمت هجدهم - توابع بازگشتی (Recursive Functions) رایگان
20 آموزش زبان پایتون :: قسمت نوزدهم - ماژول ها (Modules) رایگان
21 آموزش زبان پایتون :: قسمت بیستم - پکیج ها (Packages) رایگان
22 برنامه نویسی شئ گرا در پایتون :: مقدمات و آشنایی با کلاس و شئ رایگان
هیچ نظری ارسال نشده است

برای ارسال نظر ابتدا به سایت وارد شوید

arrow