همانطور که قبلا گفتیم شما می توانید با تابع print() رشته مورد نظر خود را چاپ کنید و بر روی صفحه نمایش دهید.
print("Hello")
print('Hello')
اختصاص دادن رشته به متغیر در پایتون
اختصاص دادن یک رشته به متغییر با نام متغیر شروع می شود و به دنبال آن علامت برابر و بعد نوشتن رشته مورد نظر انجام می شود.
a = "Hello"
print(a)
رشته های چند خطی (Multiline) در پایتون (Python)
برای اختصاص دادن رشته های چند خطی می توانیم از سه جفت کوتیشن (Three Quotes) استفاده کنیم.
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)
همچنین می توانیم برای اختصاص رشته های چند خطی از سه تک کوتیشن (Single Quotes) هم استفاده کنیم.
a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)
نکته : همانطور که در دو تصویر بالا می بینید رشته به همان صورت که نوشته شده (به همان فرمت و شکل) در خروجی چاپ می شود.
رشته ها همان آرایه ها هستند
همانند بسیاری از زبان های برنامه نویسی محبوب، رشته ها در پایتون نیز آرایه ای از بایت ها با کاراکترهای یونی کد هستند.
با این حال، پایتون فاقد نوع داده ای کاراکتری است، پس یک کاراکتر منفرد یک رشته با طول 1 است.
برای دسترسی به کاراکتر های یک رشته می توان مانند آرایه ها از جفت براکت [] و شماره اندیس کاراکتر مورد نظر استفاده کرد (به خاطر داشته باشید که شماره اندیس آرایه ها از صفر شروع می شود).
a = "Hello, World!"
print(a[1])
در کد بالا کاراکتر با اندیس شماره 1 در خروجی چاپ می شود، که اندیس صفر کاراکتر H و اندیس شماره یک کاراکتر e است، پس e در خروجی چاپ خواهد شد، تصویر زیر نمایانگر این موضوع است.
پیمایش رشته ها در حلقه ها
از آن جا که رشته ها در پایتون آرایه هستند، می توانیم آن ها را با حلقه for پیمایش کنیم.
for x in "banana":
print(x)
در کد بالا کلمه banana در یک حلقه پیمایش شده و حروف آن به صورت جداگانه در خروجی چاپ می شود.
در مقالات بعدی در مورد حلقه های for در پایتون بیشتر آشنا می شوید.
طول رشته ها در پایتون (Python)
برای دریافت اندازه طول یک رشته در پایتون از تابع len() استفاده می کنیم. تابع len() طول یک رشته را در خروجی بر می گرداند.
a = "Hello, World!"
print(len(a))
در کد بالا تعداد کاراکترهای رشته درون متغیر a که 13 کاراکتر است در خروجی چاپ شده است.
بررسی رشته با کلمه کلیدی in در پایتون (Python)
برای بررسی وجود داشتن یک عبارت یا کلمه در یک رشته، می توانیم از کلمه کلیدی in استفاده کنیم.
مثال : بررسی اینکه آیا کلمه free در رشته داخل متغیر txt وجود دارد یا خیر.
در صورت وجود داشتن مقدار true و در غیر این صورت مقدار false برگشت داده می شود.
txt = "The best things in life are free!"
print("free" in txt)
همچنین می توانید از این کلمه کلیدی در دستورات if … else استفاده کنید.
مثال : در تکه کد زیر فقط در صورت وجود کلمه free عبارت داخل تابع print چاپ خواهد شد.
txt = "The best things in life are free!"
if "free" in txt:
print("Yes, 'free' is present.")
در رابطه با شروط if … else در مقالات آینده بیشتر صحبت خواهیم کرد.
بررسی رشته با کلمه کلیدی NOT in در پایتون (Python)
برای اینکه بررسی کنیم آیا عبارت یا کلمه مورد نظر در رشته داخل متغیر وجود ندارد، از کلمه کلیدی NOT in استفاده میکنیم که در صورت نبودن کلمه یا عبارت مقدار true و در غیر این صورت مقدار false برمی گردد.
txt = "The best things in life are free!"
print("expensive" not in txt)
مانند کلمه کلیدی in ازاین کلمه کلیدی (NOT in) هم می توانید در دستورات شرطی if … else استفاده کنید.
مثال : در تکه کد زیر فقط زمانی رشته درون تابع print در خروجی چاپ می شود که کلمه یا عبارت در رشته درون txt وجود نداشته باشد.
txt = "The best things in life are free!"
if "expensive" not in txt:
print("Yes, 'expensive' is NOT present.")
جدا کردن (Slicing) رشته در پایتون (Python)
شما با استفاده از تابع جدا کردن می توانید طیف وسیعی از کاراکتر ها را از رشته مورد نظر استخراج کنید. این تابع دارای مقادیر زیر می باشد:
- مقدار شروع (که رشته از آن جا جدا می شود)
- مقدار پایان (که رشته تا آن جا جدا می شود)
- یک دونقطه (:) برای جدا کردن عدد شروع و عدد پایان بین دو مقدار بالا
b = "Hello, World!"
print(b[2:5])
در مثال بالا خروجی از اندیس شماره 2 شروع و به اندیس شماره 5 ختم می شود. خود اندیس پنجم چاپ نخواهد شد.
نکته: همانطور که در مقالات قبل هم گفتیم شماره اندیس آرایه از صفر شروع می شود.
جدا کردن عبارت از ابتدای رشته
اگر در قاعده جدا کردن رشته مقدار شروع را مشخص نکنید، جدا سازی از اندیس ابتدایی(اندیس شماره صفر) یعنی از ابتدای رشته شروع به جداسازی می کند.
در مثال زیر عبارت از ابتدای رشته شروع به جداسازی می کند و به اندیس شماره 5 ختم می شود(خود اندیس پنجم شامل جداسازی نمی شود).
b = "Hello, World!"
print(b[:5])
جدا کردن رشته تا انتها
در صورت مشخص نکردن مقدار پایان در تابع جدا کننده (Slicing)، مقدار پیش فرض اندیس پایانی انتهای رشته خواهد بود.
در مثال زیر جدا کردن از اندیس شماره 2 شروع می شود و چون اندیس پایانی مشخص نشده است اندیس پایانی را به صورت پیش فرض پایان رشته در نظر میگیرد.
b = "Hello, World!"
print(b[2:])
شروع جدا کردن از انتهای رشته
برای جدا کردن عبارت از انتهای رشته از ایندکس منفی برای مقادیر شروع و پایان استفاده می کنیم.
b = "Hello, World!"
print(b[-5:-2])
در این مثال از انتهای رشته شروع به شمارش می کند و اندیس شماره 5 را پیدا می کند (خود اندیس شماره 5 را شامل نمی شود، یعنی کاراکتر o در کلمه World) و شروع به جدا سازی به سمت انتها می کند و تا اندیس شماره 2 از انتها (که خود اندیس شماره 2 را شامل نمی شود، یعنی کاراکتر l در کلمه World) جداسازی را انجام می دهد و خروجی مقدار orl می باشد.
تغییر رشته در پایتون(Python)
پایتون یک مجموعه متد داخلی دارد که برای تغییر در رشته ها می توان از آن ها استفاده کرد.
-
تبدیل رشته به حروف بزرگ (upper)
متد داخلی upper() برای تبدیل کاراکترهای یک رشته به حروف بزرگ استفاده می شود.
a = "Hello, World!"
print(a.upper())
-
تبدیل رشته به حروف کوچک (lower)
متد داخلی lower() برای تبدیل کاراکترهای یک رشته به حروف کوچک استفاده می شود.
a = "Hello, World!"
print(a.lower())
-
حذف فضای سفید (خالی) در رشته (strip)
فضای سفید همان فاصله اضافه قبل و بعد از رشته است، که در بسیاری از موارد نیاز به حذف شدن دارد.
متد داخلی strip() تمام فضاهای خالی قبل و بعد رشته را حذف می کند.
a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
-
جایگزین کردن رشته در رشته دیگر (replace)
متد replace() می تواند یک رشته را در رشته دیگری جایگزین کند. در مثال زیر تمام حروف H با حرف J جایگزین می شوند.
a = "Hello, World!"
print(a.replace("H", "J"))
-
قطعه قطعه کردن کلمات یک رشته (split)
متد split() در صورتی که کاراکتر جدا کننده بین دو رشته وجود داشته باشد، آن ها را از هم جدا و به آیتم های جداگانه در یک لیست تبدیل می کند. این کاراکتر جدا کننده می تواند هر چیز دیگری باشد مثل کاراکتر w یا علامت پایپ " | " و ...
در مثال زیر جدا کننده کاراکتر (,) است و چون مابین دو کلمه Hello و World قرار دارد، متد split() آن ها را به یک لیست با دو آیتم تبدیل کرده است.
a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']
در مقالات آینده با لیست ها در پایتون بیشتر آشنا خواهید شد.
الحاق (چسباندن) رشته ها در پایتون (Python)
برای الحاق و یا ترکیب دو رشته به یکدیگر از عملگر + استفاده می کنیم .
در مثال زیر دو متغیر a و b حاوی مقدار رشته ای با یکدیگر ادغام شده اند و درون متغیر c ریخته شده است.
a = "Hello"
b = "World"
c = a + b
print(c)
برای ایجاد فاصله بین دو مقدار بالا می توانیم یک رشته با فضای خالی بین دو مقدار ادغام شده قرار دهیم.
a = "Hello"
b = "World"
c = a + " " + b
print(c)
قالب رشته ها (Format String) در پایتون (Python)
همانطور که در مقاله متغیرها در پایتون (Python) و انواع آن یاد گرفتیم، ما نمی توانیم دو مقدار عددی و رشته ای را با هم ادغام کنیم.
age = 36
txt = "My name is John, I am " + age
print(txt)
اما با استفاده از متد format() می توانیم متغیرهای رشته ای و عددی را با هم ادغام کنیم.
age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))
متد format() متغیر عددی را به عنوان آرگومان دریافت می کند و آن را درون {} قرار می دهد.
متد format() به تعداد بی نهایت آرگومان می تواند دریافت کند و آن ها را در مکان های متناظر خودشان به ترتیب قرار می دهد.
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))
برای اطمینان از این که مقدار مورد نظر در جای مناسب خودش قرار گرفته باشد، می توانیم از ایندکس آرگومان های ورودی که شماره ایندکس آن ها از صفر شروع می شود در متد format() استفاده کنیم .
quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))
در این مثال مقدار price در جای اول، مقدار quantity در مکان دوم و مقدار itemno در مکان آخر قرار می گیرند. مقدار خروجی در تصویر زیر نمایان است.
در مقالات آینده در مورد قالب بندی رشته ها بیشتر بحث و گفت گو می کنیم.
کاراکتر escape در پایتون
برای درج کاراکترهای غیرمجاز در پایتون از کاراکتر escape استفاده می کنیم.
طریقه نوشتن کاراکتر escape به این شکل است که اول کاراکتر backslash (\) را قرار می دهید و بلافاصله بعد از آن کاراکتر غیرمجاز را می نویسیم.
اگر بخواهیم کارایی کاراکتر escape را به شما نشان دهیم از طریق مثال زیر این کار را انجام می دهیم.
txt = "We are the so-called "Vikings" from the north."
در این مثال ما از دو جفت کوتیشن اضافه در داخل یک دو جفت دیگر استفاده کردیم و این خطای syntax به ما می دهد چون کلمه Vikings از داخل رشته بیرون انداخته می شود. برای حل این مشکل از کاراکتر escape استفاده می کنیم و کاراکترهای غیرمجاز داخل جفت کوتیشن را به شکل (\”) می نویسیم.
txt = "We are the so-called \"Vikings\" from the north."
تعدادی از کاراکترهای escape
توضیحات | کاراکتر escape |
---|---|
تک کوتیشن | \’ |
BACKSLASH | \\ |
رفتن به سر سطر | \n |
tab | \t |
backspace | \b |
Form Feed | \f |
مقادیر مبنای هشت | \ooo |
مقادیر مبنای شانزده | \xhh |
انتقال به ابتدای خط | \r |
متدهای رشته ای
پایتون تعدای متد داخلی دارد که می توانید برای تغییر بر روی رشته ها استفاده کنید. در زیر جدولی از تمام متدهای رشته ای را همراه با کارایی آن ها برای شما لیست کرده ایم.
نکته: تمام متد های زیر مقادیر جدیدی برگشت می دهند و مقادیر اصلی تغییر نخواهند کرد.
متد | توضیحات |
---|---|
Capitalize() | تبدیل کاراکتر اول رشته به حرف بزرگ |
Casefold() | رشته را به حروف کوچک تبدیل می کند |
Center() | قرار دادن رشته در مرکز |
Count() | تعداد تکرار یک کلمه داخل یک رشته را برمیگرداند |
Encode() | نسخه رمزگذاری شده رشته را برمیگرداند |
Endswith() | اگر رشته با مقدار مشخص شده به پایان رسیده باشد، مقدار true برگشت داده می شود. |
Expandtabs() | تنظیم اندازه زبانه رشته |
Find() | در داخل رشته به دنبال مقدار خاص می گردد و وقعیت آن را هم در صورت وجود اعلام می کند. |
Format() | قالب بندی مقادیر خاص در یک رشته |
Format_map() | قالب بندی مقادیر خاص در یک رشته |
Index() | در داخل رشته به دنبال مقدار خاص می گردد و وقعیت آن را هم در صورت وجود اعلام می کند. |
Isalnum() | اگر همه نویسه های رشته عددی باشد مقدار true را برمیگرداند |
Isalpha() | اگر همه نویسه های رشته حروف الفبا باشد مقدار true را برمیگرداند |
Isdecimal() | اگر همه کاراکترهای رشته اعشاری باشد مقدار true برمیگرداند |
Isdigit() | اگر همه کاراکترهای رشته رقم باشد مقدار true برمیگرداند |
Isidentifier() | اگر رشته یک شناسه باشد مقدار true را برمیگرداند |
Islower() | اگر همه کاراکترهای رشته با حرف کوچک باشد مقدار true را برمیگرداند |
Isnumeric() | اگر همه نویسه های رشته عددی باشد مقدار true را برمیگرداند |
Isprintable() | اگر همه نویسه های رشته قابل چاپ باشد مقدار true را برمیگرداند |
Isspace() | اگر همه نویسه های رشته فضای خالی داشته باشند مقدار true را برمیگرداند |
Istitle() | اگر رشته از قوانین عنوان پیروی کند مقدار true برمیگرداند |
Isupper() | اگر همه کاراکترهای رشته با حرف بزرگ باشد مقدار true را برمیگرداند |
Join() | عناصر قابل پیمایش را به انتهای رشته پیوند میزند |
Ljust() | مقدار رشته را در سمت چپ فضای خالی قرار میدهد |
Lower() | کاراکترهای رشته را به حروف کوچک تبدیل میکند |
Lstrip() | فضای خالی سمت چپ رشته را پاک می کند |
Maketrans() | یک جدول translate برای استفاده در ترجمه ایجاد می کند |
Partition() | یک لیست سه قسمتی از رشته مشخص شده درون یک رشته، رشته قبل رشته مشخص شده و رشته بعد از رشته مشخص شده ایجاد می کند |
Replace() | یک مقدار خاص را با یک مقدار داخل رشته جایگزین می کند |
Rfind() | در داخل رشته به دنبال مقدار خاص می گردد و وقعیت آن را هم در صورت وجود اعلام می کند |
Rindex() | در داخل رشته به دنبال مقدار خاص می گردد و وقعیت آن را هم در صورت وجود اعلام می کند |
Rjust() | مقدار رشته را در سمت راست فضای خالی قرار میدهد |
Rpartition() | یک لیست سه قسمتی از رشته مشخص شده درون یک رشته، رشته قبل رشته مشخص شده و رشته بعد از رشته مشخص شده ایجاد می کند |
Rsplit() | رشته را با جدا کننده مشخص شده در یک لیست به صورت جداگانه قرار می دهد |
Rstrip() | فضای خالی سمت راست رشته را پاک می کند |
Split() | رشته را با جدا کننده مشخص شده در یک لیست به صورت جداگانه قرار می دهد |
Splitlines() | رشته را از جاهایی که کاراکتر escape (\n) وجود دارد تقسیم می کند و در یک لیست به صورت جداگانه آن ها را قرار می دهد |
Startswith() | اگر رشته با مقدار مشخص شده شروع شده باشد، مقدار true برگشت داده می شود. |
Strip() | فضای خالی در دو طرف رشته را پاک می کند |
Swapcase() | کاراکترهای کوچک را به بزرگ و کاراکترهای بزرگ را به کوچک تبدیل می کند |
Title() | کاراکتر اول هر کلمه را به حروف بزرگ تبدیل می کند |
Translate() | رشته ترجمه شده را برمیگرداند |
Upper() | کاراکترهای رشته را به حروف بزرگ تبدیل می کند |
Zfill() | به ابتدای رشته مقدار مشخصی 0 اضافه می کند |
در این مقاله به بررسی اجمالی string ها پرداختیم در مقاله بعدی هر کدام از متدهای رشته ای را که در جدول بالا لیست کردیم، با مثال شرح می دهیم.