آموزش نوع داده رشته در پایتون (string Python)

آموزش نوع داده رشته در پایتون (string Python)

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

رشته در پایتون بین تک کوتیشن (Single Quotation) و یا جفت کوتیشن (Double Quotation) قرار می گیرد.

‘Salam’ و “Salam” هر دو مشابه هستند.

زمان مطالعه: 3 دقیقه
بازدید: 10426
پرسش و پاسخ: 0

همانطور که قبلا گفتیم شما می توانید با تابع 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)

 

رشته های چند خطی (Multiline) در پایتون (Python)

 

همچنین می توانیم برای اختصاص رشته های چند خطی از سه تک کوتیشن (Single Quotes) هم استفاده کنیم.

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

 

رشته های چند خطی (Multiline) در پایتون (Python)

 

نکته : همانطور که در دو تصویر بالا می بینید رشته به همان صورت که نوشته شده (به همان فرمت و شکل) در خروجی چاپ می شود.

 

رشته ها همان آرایه ها هستند

همانند بسیاری از زبان های برنامه نویسی محبوب، رشته ها در پایتون نیز آرایه ای از بایت ها با کاراکترهای یونی کد هستند.

با این حال، پایتون فاقد نوع داده ای کاراکتری است، پس یک کاراکتر منفرد یک رشته با طول 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))

 

طول رشته ها در پایتون (Python)

در کد بالا تعداد کاراکترهای رشته درون متغیر a که 13 کاراکتر است در خروجی چاپ شده است.

 

بررسی رشته با کلمه کلیدی in در پایتون (Python)

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

مثال : بررسی اینکه آیا کلمه free در رشته داخل متغیر txt وجود دارد یا خیر.

در صورت وجود داشتن مقدار true و در غیر این صورت مقدار false برگشت داده می شود.

txt = "The best things in life are free!"
print("free" in txt)

 

بررسی رشته با کلمه کلیدی in در پایتون (Python)

همچنین می توانید از این کلمه کلیدی در دستورات if … else استفاده کنید.

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

txt = "The best things in life are free!"
if "free" in txt:
  print("Yes, 'free' is present.")

 

بررسی رشته با کلمه کلیدی in در پایتون (Python)

در رابطه با شروط if … else در مقالات آینده بیشتر صحبت خواهیم کرد.

 

بررسی رشته با کلمه کلیدی NOT in در پایتون (Python)

برای اینکه بررسی کنیم آیا عبارت یا کلمه مورد نظر در رشته داخل متغیر وجود ندارد، از کلمه کلیدی NOT in استفاده میکنیم که در صورت نبودن کلمه یا عبارت مقدار true و در غیر این صورت مقدار false برمی گردد.

txt = "The best things in life are free!"
print("expensive" not in txt)

 

بررسی رشته با کلمه کلیدی NOT in در پایتون (Python)

 

مانند کلمه کلیدی 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.")

 

بررسی رشته با کلمه کلیدی NOT in در پایتون (Python)

 

جدا کردن (Slicing) رشته در پایتون (Python)

شما با استفاده از تابع جدا کردن می توانید طیف وسیعی از کاراکتر ها را از رشته مورد نظر استخراج کنید. این تابع دارای مقادیر زیر می باشد:

  • مقدار شروع (که رشته از آن جا جدا می شود)
  • مقدار پایان (که رشته تا آن جا جدا می شود)
  • یک دونقطه (:) برای جدا کردن عدد شروع و عدد پایان بین دو مقدار بالا

 

b = "Hello, World!"
print(b[2:5])

در مثال بالا خروجی از اندیس شماره 2 شروع و به اندیس شماره 5 ختم می شود. خود اندیس پنجم چاپ نخواهد شد.

 

جدا کردن (Slicing) رشته در پایتون (Python)

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

 

جدا کردن عبارت  از ابتدای رشته

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

در مثال زیر عبارت از ابتدای رشته شروع به جداسازی می کند و به اندیس شماره 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())

 

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

 

  • تبدیل رشته به حروف کوچک (lower)

متد داخلی lower() برای تبدیل کاراکترهای یک رشته به حروف کوچک استفاده می شود.

 

a = "Hello, World!"
print(a.lower())

 

تبدیل رشته به حروف کوچک متد lower پایتون

 

  • حذف فضای سفید (خالی) در رشته (strip)

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

متد داخلی strip() تمام فضاهای خالی قبل و بعد رشته را حذف می کند.

a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"

 

حذف فضای سفید رشته تابع strip پایتون

 

  • جایگزین کردن رشته در رشته دیگر (replace)

متد replace() می تواند یک رشته را در رشته دیگری جایگزین کند. در مثال زیر تمام حروف H با حرف J جایگزین می شوند.

 

a = "Hello, World!"
print(a.replace("H", "J"))

 

جایگزین کردن رشته در پایتون متد replace

 

  • قطعه قطعه کردن کلمات یک رشته (split)

متد split() در صورتی که کاراکتر جدا کننده بین دو رشته وجود داشته باشد، آن ها را از هم جدا و به آیتم های جداگانه در یک لیست تبدیل می کند. این کاراکتر جدا کننده می تواند هر چیز دیگری باشد مثل کاراکتر w یا علامت پایپ " | " و ...

در مثال زیر جدا کننده کاراکتر (,) است و چون مابین دو کلمه Hello و World قرار دارد، متد split() آن ها را به یک لیست با دو آیتم تبدیل کرده است.

a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']

قطعه قطعه کردن کلمات یک رشته در پایتون با split

در مقالات آینده با لیست ها در پایتون بیشتر آشنا خواهید شد.

 

الحاق (چسباندن) رشته ها در پایتون (Python)

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

در مثال زیر دو متغیر a و b حاوی مقدار رشته ای با یکدیگر ادغام شده اند و درون متغیر c ریخته شده است.

 

a = "Hello"
b = "World"
c = a + b
print(c)

 

الحاق (چسباندن) رشته ها در پایتون (Python)

 

برای ایجاد فاصله بین دو مقدار بالا می توانیم یک رشته با فضای خالی بین دو مقدار ادغام شده قرار دهیم.

 

a = "Hello"
b = "World"
c = a + " " + b
print(c)

 

فاصله در الحاق (چسباندن) رشته ها در پایتون (Python)

 

قالب رشته ها (Format String) در پایتون (Python)

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

age = 36
txt = "My name is John, I am " + age
print(txt)

قالب رشته ها (Format String) در پایتون (Python)

 

اما با استفاده از متد format() می توانیم متغیرهای رشته ای و عددی را با هم ادغام کنیم.

 

age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))

 

متد format() متغیر عددی را به عنوان آرگومان دریافت می کند و آن را درون {} قرار می دهد.

 

تابع format در پایتون

 

متد format() به تعداد بی نهایت آرگومان می تواند دریافت کند و آن ها را در مکان های متناظر خودشان به ترتیب قرار می دهد.

 

quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

 

تابع format در پایتون

 

برای اطمینان از این که مقدار مورد نظر در جای مناسب خودش قرار گرفته باشد، می توانیم از ایندکس آرگومان های ورودی که شماره ایندکس آن ها از صفر شروع می شود در متد 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 در مکان آخر قرار می گیرند.  مقدار خروجی در تصویر زیر نمایان است.

 

ایندکس و مکان در تابع format پایتون

در مقالات آینده در مورد قالب بندی رشته ها بیشتر بحث و گفت گو می کنیم.

 

کاراکتر escape در پایتون

برای درج کاراکترهای غیرمجاز در پایتون از کاراکتر escape استفاده می کنیم.

طریقه نوشتن کاراکتر escape به این شکل است که اول کاراکتر backslash (\) را قرار می دهید و بلافاصله بعد از آن کاراکتر غیرمجاز را می نویسیم.

اگر بخواهیم کارایی کاراکتر escape را به شما نشان دهیم از طریق مثال زیر این کار را انجام می دهیم.

 

txt = "We are the so-called "Vikings" from the north."

کاراکتر escape در پایتون

 

در این مثال ما از دو جفت کوتیشن اضافه در داخل یک دو جفت دیگر استفاده کردیم و این خطای syntax به ما می دهد چون کلمه Vikings از داخل رشته  بیرون انداخته می شود. برای حل این مشکل از کاراکتر escape استفاده می کنیم و کاراکترهای غیرمجاز داخل جفت کوتیشن را به شکل (\”) می نویسیم.

 

txt = "We are the so-called \"Vikings\" from the north."

 

کاراکتر escape در پایتون

 

تعدادی از کاراکترهای escape

 

کاراکترهای 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 ها پرداختیم در مقاله بعدی هر کدام از متدهای رشته ای را که در جدول بالا لیست کردیم، با مثال شرح می دهیم.

بهزاد میرزازاده
مسیر درست با پرسش های درست ساخته می شود

مشاهده تمام مطالب نویسنده