متدهای String
پایتون مجموعهای از متدهای داخلی دارد که میتوانید از آنها در رشتهها استفاده کنید. دقت داشته باشید که تمام متدها مقادیر جدید را برمیگردانند. آنها رشته اصلی را تغییر نمیدهند.
strip
فضای خالی را از ابتدا یا انتها حذف میکند.
# Input a = " Hello, World! " print(a.strip()) # Output Hello, World!
lower
رشته را با حروف کوچک برمیگرداند.
# Input a = "Hello, World!" print(a.lower()) # Output hello, world!
upper
رشته را با حروف بزرگ برمیگرداند.
# Input a = "Hello, World!" print(a.upper()) # Output HELLO, WORLD!
replace
رشته را با رشته دیگری جایگزین میکند.
# Input a = "Hello, World!" print(a.replace("H", "J")) # Output Jello, World!
split
رشته اصلی را بر اساس یک جدا کننده (کاراکتر مشخص) به زیر رشتهها تقسیم میکند.
# Input a = "Hello, World!" b = a.split(",") print(b) # Output ['Hello', ' World!']
capitalize
کاراکتر اول رشته را به حرف بزرگ تبدیل میکند.
# Input txt = "hello, and welcome to my world." x = txt.capitalize() print (x) # Output Hello, and welcome to my world.
در مثال زیر ببینید چه اتفاقی میافتد اگر کاراکتر اول رشته عدد باشد.
# Input txt = "36 is my age." x = txt.capitalize() print (x) # Output 36 is my age.
casefold
رشته را به حروف کوچک تبدیل میکند.
این متد شبیه متد lower است اما قویتر و مهاجمتر است. به این معنی که کاراکترهای بیشتری را به حروف کوچک تبدیل میکند.
# Input txt = "Hello, And Welcome To My World!" x = txt.casefold() print(x) # Output hello, and welcome to my world!
center
رشته را وسط چین میکند. به عبارت دیگر این متد با استفاده از یک کاراکتر مشخص (فضای خالی به صورت پیشفرض است) رشته را تراز میکند.
در مثال زیر کلمه banana در وسط فضایی با ۲۰ کاراکتر چاپ میشود.
# Input txt = "banana" x = txt.center(20) print(x) # Output banana
در مثال زیر فضای خالی را با استفاده از حرف O پر شده است.
# Input txt = "banana" x = txt.center(20, "O") print(x) # Output OOOOOOObananaOOOOOOO
count
تعداد دفعاتی را که یک کاراکتر در رشته تکرار میشود را مشخص میکند.
# Input txt = "I love apples, apple are my favorite fruit" x = txt.count("apple") print(x) # Output 2
در مثال زیر کلمه apple در موقعیتهای ۱۰ تا ۲۴ جستجو میشود.
# Input txt = "I love apples, apple are my favorite fruit" x = txt.count("apple", 10, 24) print(x) # Output 1
encode
با استفاده از رمزگذاری مشخص شده، رشته را رمزگذاری میکند. اگر رمزگذاری، مشخص نشده باشد از UTF-9 استفاده میشود.
# Input txt = "My name is Ståle" x = txt.encode() print(x) # Output b'My name is St\xc3\xe5le'
مثال زیر از رمزگذاری ascii و کاراکتری که امکان رمزگذاری وجود ندارد استفاده میکند و نتیجه را با خطاهای مختلف نشان میدهد.
# Input txt = "My name is Ståle" print(txt.encode(encoding="ascii",errors="backslashreplace")) print(txt.encode(encoding="ascii",errors="ignore")) print(txt.encode(encoding="ascii",errors="namereplace")) print(txt.encode(encoding="ascii",errors="replace")) print(txt.encode(encoding="ascii",errors="xmlcharrefreplace")) print(txt.encode(encoding="ascii",errors="strict")) # Output b'My name is St\\xe5le' b'My name is Stle' b'My name is St\\N{LATIN SMALL LETTER A WITH RING ABOVE}le' b'My name is St?le' b'My name is Ståle' Traceback (most recent call last): File "demo_ref_string_encode2,py", line 8, in <module> UnicodeEncodeError: 'ascii' codec can't encode character '\xe5\ in position 13: ordinal not in range(128)
endwith
اگر رشته با مقدار مشخص شده به پایان برسد، مقدار True برمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.endswith(".") print(x) # Output True
مثال زیر چک میکند آیا رشته با عبارت my world تمام میشود؟
# Input txt = "Hello, welcome to my world" x = txt.endswith("my world") print(x) # Output True
مثال زیر چک میکند آیا رشته با عبارت my world در موقعیت ۵ تا ۱۱ تمام میشود؟
# Input txt = "Hello, welcome to my world" x = txt.endswith("my world", 5, 11) print(x) # Output False
expandtabs
اندازه فضای خالی Tab را در رشته تنظیم میکند.
# Input txt = "H\te\tl\tl\to" x = txt.expandtabs(2) print(x) # Output H e l l o
مثال زیر خروجی را با اندازههای مختلف نشان میدهد.
# Input txt = "H\te\tl\tl\to" print(txt) print(txt.expandtabs()) print(txt.expandtabs(2)) print(txt.expandtabs(4)) print(txt.expandtabs(10)) # Output H e l l o H e l l o H e l l o H e l l o H e l l o
find
یک مقدار مشخص را در رشته جستجو میکند و موقعیت مکانی را که در آن پیدا شده است بازمیگرداند.
این متد موقعیت اولین مقدار پیدا شده را بازمیگرداند. اگر مقدار پیدا نشد 1- را بازمیگرداند.
متد find با متد index تقریباً مشابه است تنها تفاوت در متد index این است که اگر مقدار پیدا نشد یک استثناء ایجاد میکند.
# Input txt = "Hello, welcome to my world." x = txt.find("welcome") print(x) # Output 7
مثال زیر موقعیت اولین حرف e که در رشته وجود دارد را بازمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.find("e") print(x) # Output 1
مثال زیر موقعیت اولین حرف e که بین موقعیت ۵ تا ۱۰ است را بازمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.find("e", 5, 10) print(x) # Output 8
format
مقادیر مشخص شده را فرمت میکند و آنها را درون محل نگهدارنده رشته قرار میدهد.
محل نگهدارنده با استفاده از براکت ایجاد میشود.
به طور خلاصه این متد، رشته فرمت شده را برمیگرداند.
مثال زیر price را در محل نگهدارنده که با براکت ایجاد شده وارد میکند. Price باید ممیز ثابت با دو رقم باشد.
# Input txt = "For only {price:.2f} dollars!" print(txt.format(price = 49)) # Output For only 49.00 dollars!
محلهای نگهدارنده را میتوان با استفاده از شاخصهای نامگذاری شده {price}، شاخصهای شمارهگذاری شده {0} یا حتی با براکت های خالی {} شناسایی کرد.
# Input # named indexes: txt1 = "My name is {fname}, I'm {age}".format(fname = "John", age = 36) print(txt1) # numbered indexes: txt2 = "My name is {0}, I'm {1}".format("John",36) print(txt2) # empty placeholders: txt3 = "My name is {}, I'm {}".format("John",36) print(txt3) # Output My name is John, I'm 36 My name is John, I'm 36 My name is John, I'm 36
در داخل براکتها میتوانید نوع فرمت بندی را مشخص کنید.
index
یک مقدار مشخص را در رشته جستجو میکند و موقعیت مکانی را که در آن پیدا شده است را بازمیگرداند.
در صورت عدم یافتن مقدار یک استثناء ایجاد میکند.
متد index تقریباً مشابه متد find است. تنها تفاوت این است که متد find اگر مقدار را پیدا نکند 1- را برمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.index("welcome") print(x) # Output 7
مثال زیر موقعیت اولین حرف e که در رشته وجود دارد را بازمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.index("e") print(x) # Output 1
مثال زیر موقعیت اولین حرف e که بین موقعیت ۵ تا ۱۰ است را بازمیگرداند.
# Input txt = "Hello, welcome to my world." x = txt.index("e", 5, 10) print(x) # Output 8
مثال زیر تفاوت متد find و index در صورتی که مقدار پیدا نشود را نشان میدهد.
# Input txt = "Hello, welcome to my world." print(txt.find("q")) print(txt.index("q")) # Output -1 Traceback (most recent call last): File "demo_ref_string_find_vs_index.py", line 4 in <module> print(txt.index("q")) ValueError: substring not found
نوشتههای متدهای String در پایتون – بخش دوم و متدهای String در پایتون – بخش سوم را مطالعه کنید.
منابع
w3schools.com – Python String
w3schools.com – Python String Methods
Photo by Negative Space from Pexels