مشخصات مقاله
-
3006
-
0.0
-
27160
-
0
-
0
آموزش رشته ها در پایتون
در این بخش از آموزش، به بحث در مورد محبوب ترین نوع داده در پایتون، یعنی رشته (string) میپردازیم. رشته در پایتون مجموعهای از کاراکترها است که با نقل قول تکی، نقل قول دوتایی یا نقل قول سهتایی احاطه شدهاند. در پایتون، رشتهها میتوانند با قرار دادن کاراکتر یا دنبالهای از کاراکترها در داخل نقل قولها ایجاد شوند. پایتون به ما اجازه میدهد که از نقل قول تکی، نقل قول دوتایی یا نقل قول سهتایی برای ایجاد رشته استفاده کنیم. مثال زیر را در نظر بگیرید.
Str1 = "Hi Python !"
در اینجا، اگر نوع متغیر str را با استفاده از دستور زیر بررسی کنیم خروجی آن string خواهد بود:
print(type(Str1)) output < class 'str' >
در پایتون، رشتهها به عنوان دنباله ای از کاراکترها مورد استفاده قرار میگیرند، به این معنا که پایتون از نوع دادهٔ کاراکتر پشتیبانی نمیکند؛ به جای اینکه یک کاراکتری مانند 'p' به عنوان نوع دادهٔ کاراکتر در نظر گرفته شود، به عنوان یک رشته با طول 1 تلقی میشود.
ایجاد رشته در پایتون
در زبان پایتون، با قرار دادن کاراکتر ها در نقل های تکی یا دوتایی می توانیم یک رشته ایجاد کنیم، همچنین پایتون امکان استفاده از نقل قول های سه تایی را نیز برای نمایش رشته فراهم می کند. اما توجه داشته باشید که نقل قول سه تایی عموما برای نمایش رشته های چندخطی یا docstring مورد استفاده قرار می گیرد.
#Using single quotes
str1 = 'Hello Python'
print(str1)
#Using double quotes
str2 = "Hello Python"
print(str2)
#Using triple quotes
str3 = '''''Triple quotes are generally used for
represent the multiline or
docstring'''
print(str3)
خروجی
Hello Python
Hello Python
Triple quotes are generally used for
represent the multiline or
docstring
اندیسگذاری و تقسیم رشتهها در پایتون
مانند زبانهای دیگر، اندیس گذاری رشتههای پایتون نیز از صفر شروع میشود. به عنوان مثال، رشته "HELLO" به صورت زیر اندیس گذاری میشود:
به مثال زیر توجه کنید :
str = "HELLO" print(str[0]) print(str[1]) print(str[2]) print(str[3]) print(str[4]) # It returns the IndexError because 6th index doesn't exist print(str[6])خروجی
H E L L O IndexError: string index out of range
همانطور که در بالا مشاهده کردید از اپراتور slice یا برش ( [ ] ) برای دسترسی به یک کاراکتر از کاراکترهای یک رشته استفاده میشود. با این حال، ما میتوانیم از اپراتور : (دونقطه) در پایتون برای دسترسی به مجموعه زیررشته های یک رشته (مجموعه کاراکتر های یک رشته) استفاده کنیم. مثال زیر را در نظر بگیرید:
در اینجا باید توجه داشته باشیم که محدوده بالا (upper range) که در اپراتور برش استفاده میشود همیشه منحصر به فرد است، به عبارت دیگر اگر 'str = 'HELLO داده شود، آنگاه [1:3]str همیشه شامل str[1] = 'E'، 'str[2] = 'L خواهد بود. مثال زیر را در نظر بگیرید.
# Given String str = "JAVATPOINT" # Start Oth index to end print(str[0:]) # Starts 1th index to 4th index print(str[1:5]) # Starts 2nd index to 3rd index print(str[2:4]) # Starts 0th to 2nd index print(str[:3]) #Starts 4th to 6th index print(str[4:7])خروجی
JAVATPOINT AVAT VA JAV TPO
در رشته می توانیم از برش منفی (negative slicing) نیز استفاده کنیم؛ این برش از کاراکتر سمت راست شروع میشود و به عنوان 1- نشان داده میشود. دومین اندیس از سمت راست با 2- نشان داده شده و همینطور ادامه پیدا میکند. به تصویر زیر توجه کنید.
مثال زیر را در نظر بگیرید
str = 'JAVATPOINT' print(str[-1]) print(str[-3]) print(str[-2:]) print(str[-4:-1]) print(str[-7:-2]) # Reversing the given string print(str[::-1]) print(str[-12])خروجی
T I NT OIN ATPOI TNIOPTAVAJ IndexError: string index out of range
در پایتون، رشتهها قابل تغییر نیستند (immutable)، یعنی نمیتوان محتوای آنها را به صورت جزئی تغییر داد. این بدان معنی است که یک رشته فقط میتواند با یک رشته جدید جایگزین شود. مثال زیر را در نظر بگیرید
str = "HELLO" str[0] = "h" print(str)خروجی
Traceback (most recent call last): File "12.py", line 2, instr[0] = "h"; TypeError: 'str' object does not support item assignment
با این حال، در مثال قبل، رشته str میتواند به طور کامل به یک محتوای جدید اختصاص داده شود، به مثال زیر توجه کنید:
str = "HELLO" print(str) str = "hello" print(str)خروجی
HELLO hello
همانطور که میدانیم، رشتهها در پایتون قابل تغییر نیستند. نمیتوانیم کاراکترها را از رشته حذف کنیم. اما میتوانیم از واژه کلیدی `del` برای حذف کل رشته استفاده کنیم. مثال زیر را در نظر بگیرید.
خروجیstr = "JAVATPOINT" del str[1]خروجی
TypeError: 'str' object doesn't support item deletionحذف کل رشته :
str1 = "JAVATPOINT" del str1 print(str1)خروجی
NameError: name 'str1' is not defined
عملگرهای رشته در پایتون
str = "Hello"
str1 = " world"
print(str*3) # prints HelloHelloHello
print(str+str1)# prints Hello world
print(str[4]) # prints o
print(str[2:4]); # prints ll
print('w' in str) # prints false as w is not present in str
print('wo' not in str1) # prints false as wo is present in str1.
print(r'C://python37') # prints C://python37 as it is written
print("The string str : %s"%(str)) # prints The string str : Hello
خروجی
HelloHelloHello Hello world o ll False False C://python37 The string str : Hello
فرمتدهی رشته در پایتون (دنباله های فرار)
فرض کنید نیاز داریم متنی را به شکل زیر بنویسیم:
"They said, "Hello what's going on?"
str = "They said, "Hello what's going on?"" print(str)خروجی
SyntaxError: invalid syntax
یکی از راه های حل این مشکل استفاده از نقل قول سهتایی است، اما پایتون دنبالههای فرار (escape sequence) را نیز فراهم کرده است. علامت (/) نماد دنبالههای خروجی است. این علامت میتواند پس از یک کاراکتر ویژه قرار گیرد و به صورت متفاوت تفسیر شود. نقل قول تکی داخل رشته باید از طریق این دنباله فرار به تصویر کشیده شود. میتوانیم همان اقدام را برای نقل قول دوتایی نیز انجام دهیم. به مثال زیر توجه کنید.
# using triple quotes
print('''''They said, "What's there?"''')
# escaping single quotes
print('They said, "What\'s going on?"')
# escaping double quotes
print("They said, \"What's going on?\"")
خروجی
They said, "What's there?" They said, "What's going on?" They said, "What's going on?"لیست دنبالههای خروجی به شرح زیر است:
print("Python1 \
Python2 \
Python3")
Output:
Python1 Python2 Python3
print("\\")
Output:
\
print('\'')
Output:
'
print("\"")
Output:
"
print("\a")
print("Hello \b World")
Output:
Hello World
print("Hello \f World!")
Output:
Hello World!
print("Hello \n World!")
Output:
Hello
World!
print("Hello \r World!")
Output:
World!
print("Hello \t World!")
Output:
Hello World!
print("Hello \v World!")
Output:
Hello
World!
print("\110\145\154\154\157")
Output:
Hello
print("\x48\x65\x6c\x6c\x6f")
Output:
Hello
print("C:\\Users\\DEVANSH SHARMA\\Python32\\Lib")
print("This is the \n multiline quotes")
print("This is \x48\x45\x58 representation")
خروجی
C:\Users\DEVANSH SHARMA\Python32\Lib This is the multiline quotes This is HEX representation
با استفاده از رشته خام میتوانیم از دنبالههای فرار در رشته داده شده صرف نظر کنیم این کار را میتوانیم با نوشتن r یا R در ابتدای رشته انجام دهیم. به مثال زیر توجه کنید
print(r"C:\\Users\\DEVANSH SHARMA\\Python32")خروجی
C:\\Users\\DEVANSH SHARMA\\Python32
متد format در پایتون
متد format، انعطافپذیرترین و مفیدترین متد در قالببندی رشتههاست. پرانتزها { } به عنوان نگهدارنده در رشته استفاده میشوند و توسط آرگومانهای متد format جایگزین میشوند. نگاهی به مثال زیر بیندازید:
# Using Curly braces
print("{} and {} both are the best friend".format("Devansh","Abhishek"))
#Positional Argument
print("{1} and {0} best players ".format("Virat","Rohit"))
#Keyword Argument
print("{a},{b},{c}".format(a = "James", b = "Peter", c = "Ricky"))
خروجی
Devansh and Abhishek both are the best friend Rohit and Virat best players James,Peter,Ricky
توابع رشته در پایتون
پایتون از توابع داخلی مختلفی برای کنترل رشتهها استفاده میکند. در جدول زیر به آن ها اشاره می کنیم: