رشته ها در پایتون – آموزش Python

  • جمعه ۲۸ آبان ۱۴۰۰
  • بازدید ۱,۰۵۶ نفر

python strings 2674 تصویر

رشته ها در پایتون

رشته ها (strings) یکی از محبوب ترین نوع داده در زبان برنامه نویسی پایتون می باشد. به راحتی می توان با قرار دادن کاراکتر ها بین دو علامت نقل قول یک رشته ایجاد کرد. در زبان پایتون هم از (“) و هم از (‘) برای مشخص کردن رشته ها استفاده می شود. برای نمونه:

دسترسی به مقدار یک رشته

در زبان برنامه نویسی پایتون نوع داده character وجود ندارد و پایتون این مقادیر را به عنوان رشته ای به طول ۱ در نظر می گیرد. از این می توان آن ها را به عنوان یک زیر رشته (substring)  نیز در نظر گرفت.

برای دسترسی به زیر رشته ها، از ([]) به همراه دو اندیس شروع و پایان استفاده می شود. مثال زیر نحوه استخراج زیر رشته را نشان می دهد:

امتحان کنید

زمانی که کد بالا اجرا شود، نتیجه زیر را تولید می کند:

به روز رسانی یک متغیر رشته ای

در پایتون زمانی که یک متغیر دوباره مقدار دهی شود، می گویند، به روز شده است. مقدار جدید می توانید مرتبط با مقدار قبلی باشد که کلا یک مقدار جدید متقاوت باشد. برای مثال:

امتحان کنید

زمانی که کد بالا اجرا شود، نتیجه زیر را تولید می کند:

کاراکترهای کنترلی در پایتون

جدول زیر لیست کاراکترهای کنترلی و غیر قابل چاپ موجود در زبان برنامه نویسی پایتون را نشان می دهد که می توان با یک علامت (\) آن ها نشان داد.

نشانه گذاری بک اسلشکاراکتر هگزادسیمالتوضیحات
\a۰x07Bell or alert
\b۰x08Backspace
\cxControl-x
\C-xControl-x
\e۰x1bEscape
\f۰x0cFormfeed
\M-\C-xMeta-Control-x
\n۰x0aNewline
\nnnOctal notation, where n is in the range 0.7
\r۰x0dCarriage return
\s۰x20Space
\t۰x09Tab
\v۰x0bVertical tab
\xCharacter x
\xnnHexadecimal notation, where n is in the range 0.9, a.f, or A.F

عملگرهای مخصوص رشته

فرض کنید متغیر a مقدار ‘Hello’ و متغیر b مقدار ‘Python’ را در خود ذخیره کرده است:

عملگرتوضیحاتمثال
+اتصال – رشته سمت راست را به انتهای رشته سمت چپ اضافه می کند.a + b  نتیجه HelloPython
*تکرار – با ترکیب یک رشته با خودش، رشته جدید ایجاد می کند.a * b  نتیجه HelloHello
[]برش – یک کاراکتر را بر اساس اندیس داده شده برمی گرداند.a[1] نتیجه e
[ : ]برش در رنج مشخص – کاراکتر های موجود در رنج داده شده را برمی گرداند.a[1:4] نتیجه ell
inعضویت – اگر یک کاراکتر در رشته مشخص شده وجود داشته باشد، مقدار true برمی گرداند.H in a نتیجه ۱
not inعضویت – اگر یک کاراکتر در رشته مشخص شده وجود نداشته داشته باشد، مقدار true برمی گرداند.M not in a نتیجه ۱
r/Rرشته خام (Raw String) – معنای اصلی کاراکتر کنترلی را لغو می کند. Syntax استفاده از رشته خام دقیقا شبیه به رشته معمولی است است به استثنای این که نشانه رشته خام یعنی r باید قبل از علامت نقل قول قرار گیرد.print r’\n’ نتیجه \n

print R’\n’ نتیجه \n

%برای فرمت بندی رشته ها استفاده می شود.بخش بعدی را ببینید

عملگر فرمت بندی رشته

یکی از ویژگی های جالب زبان برنامه نویسی پایتون عملگر % می باشد که به منظور فرمت بندی رشته ها به کار می رود و مخصوص کار با رشته ها می باشد. این عملگر به عنوان جایگزینی برای خانواده توابع printf() در زبان برنامه نویسی C محسوب می شود.

مثال زیر نحوه استفاده از این عملگر را نشان می دهد:

امتحان کنید

زمانی که کد بالا اجرا شود، نتیجه زیر را تولید می کند:

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

نمادتبدیل
%cکاراکتر
%sتبدیل به رشته توسط تابع str قبل از فرمت بندی
%iعدد صحیح علامت دار در مبنای ده
%dعدد صحیح علامت دار در مبنای ده
%uعدد صحیح بدون علامت در مبنای ده
%oعدد صحیح در مبنای هشت
%xعدد صحیح در مبنای شانزده (حروف کوچک)
%Xعدد صحیح در مبنای شانزده (حروف بزرگ)
%eنماد نمایی (با ‘e’ کوچک)
%Eنماد نمایی (با ‘E’ بزرگ)
%fعدد اعشاری
%gکوتاهتر از %f  و %e
%Gکوتاهتر از %f  و  %E

سایر نمادهای پشتیبانی شده را در جدول زیر مشاهده می کنید:

نمادعملکرد
*دقت عدد اعشاری را مشخص می کند.
تنظیم به سمت چپ
+نمایش علامت
<sp>یک فضای خالی قبل از عدد صحیح مثبت قرار می دهد
#صفر آغازین در مبنای هشت (‘۰’) یا صفر آغازین در مبنای شانزده (‘۰x’ یا ‘۰X’) اضافه می کند
۰به جای فضای خالی مقدار صفر قرار می دهد
%برای چاپ علامت %  استفاده می شود
(var)نگاشت متغیر (آرگومان های dictionary)
m.n.m حداقل عدد مجاز و n تعداد عددی است که باید پس از نقطه اعشار نمایش داده شود را مشخص می کند

علامت نقل قول سه گانه (Triple Qoute)

با استفاده از علامت نقل قول سه گانه (“””) می توانید رشته ها را در چند خط به همراه انواع کاراکترهای ویژه (مانند \n \tab و غیره) بنویسید. این علامت شبیه به علامت @ در زبان برنامه نویسی سی شارپ می باشد.

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

امتحان کنید

زمانی که کد بالا اجرا شود، نتیجه زیر را تولید می کند:

در رشته های خام (Raw Strings) به عنوان یک کاراکتر ویژه در نظر گرفته نمی شود. و هر کاراکتری که درون یک رشته خام قرار می گیرد به همان صورت نیز چاپ می شود.

امتحان کنید

نتیجه:

حالا مثال بالا را به صورت رشته خام بنویسید:

امتحان کنید

نتیجه:

رشته یونیکد (Unicode string)

در زبان برنامه نویسی پایتون رشته ها در حالت عادی به صورت کدهای اسکی هشت بیتی ذخیره می شوند. در حالی که در شته های یونیکد به صورت یونیکد شانزده بیتی ذخیره می شوند. این موضوع باعث می شود تا بتوان از مجموعه کاراکترهای مختلف و کاراکترهای ویژه موجود در اکثر زبان ها استفاده کرد.

به مثال زیر توجه کنید:

امتحان کنید

زمانی که کد بالا اجرا شود، نتیجه زیر را تولید می کند:

همان طور که مشاهده می کنید، برای رشته های یونیکد حرف ‘u’ را در ابتدا رشته و قبل از علامت نقل قول قرار می دهیم مانند رشته های خام که از ‘r’ استفاده کردیم.

متدهای درون ساخت مخصوص رشته ها (Built-in String Methods)

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

ردیفمتد و توضیحات
۱تابع capitalize

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

۲center(width, fillchar)

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

۳تابع  count(str, beg= 0,end=len(string))

تعداد تکرار اولین ورودی را در رنج مشخص شده برمرگرداند.

۴تابع  decode(encoding=’UTF-8′,errors=’strict’)

رشته را با استفاده از کدک یا الگوریتم رمزگذاری ثبت شده، رمزگشایی می کند.

۵تابع  encode(encoding=’UTF-8′,errors=’strict’)

رشته را با توجه به الگوریتم رمزگذاری مشخص شده، رمزگذاری می کند.

۶تابع  endswith(suffix, beg=0, end=len(string))

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

۷تابع  expandtabs(tabsize=8)

تعداد تب های موجود در رشته را با توجه اندازه مشخص شده در اولین ورودی، برمی گرداند. به صورت پیشفرض مقدار ۸ برای ورودی در نظر گرفته می شود.

۸تابع  find(str, beg=0 end=len(string))

مقدار اولین ورودی را با توجه رنج مشخص شده، درون رشته جستجو می کند و اگر پیدا شود، اندیس اولین حرف و در صورت پیدا نشدن مقدار -۱ را برمی گرداند.

۹تابع index(str, beg=0, end=len(string))

شبیه متد find می باشد با این تفاوت که اگر رشته مورد جستجو پیدا نشود، باعث بروز خطا می شود.

۱۰تابع isalnum

اگر حداقل یک یا تمامی کاراکتر های رشته، به صورت حروف الفبا یا عدد باشد، مقدار true در غیر این صورت مقدار false برمی گرداند.

۱۱تابع isalpha

اگر حداقل یک یا تمامی کاراکتر های رشته، به صورت حروف الفبا باشد، مقدار true در غیر این صورت مقدار false برمی گرداند.

۱۲تابع isdigit

اگر رشته فقط شامل اعداد باشد، مقدار true و در غیر این صورت مقدار false برمی گرداند.

۱۳تابع islower

اگر حداقل یک یا تمامی کاراکتر های رشته، به صورت حروف کوچک باشد، مقدار true در غیر این صورت مقدار false برمی گرداند.

۱۴تابع isnumeric

اگر رشته یونیکد شامل کاراکترهای عددی باشد، مقدار true و در غیر این صورت مقدار false برمی گرداند.

۱۵تابع isspace

اگر رشته فقط شامل فضای خالی (space) باشد، مقدار true و در غیر این صورت مقدار false برمی گرداند.

۱۶تابع istitle

اگر حرف اول همه کلمات رشته به با حرف بزرگ باشد، مقدار true و در غیر این صورت مقدار false برمی گرداند.

۱۷تابع isupper

اگر تمامی کاراکتر های رشته، به صورت حروف بزرگ باشد، مقدار true در غیر این صورت مقدار false برمی گرداند.

۱۸تابع join(seq)

عناصر رشته seq را به وسیله رشته جدا کننده به هم متصل می کند.

۱۹تابع len(string)

طول رشته را برمی گرداند.

۲۰تابع ljust(width[, fillchar])

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

۲۱تابع lower

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

۲۲تابع lstrip

همه کاراکتر فضای خالی موجود در رشته را حذف می کند.

۲۳تابع maketrans

یک جدول ترجمه را برای تابع translate برمی گرداند.

۲۴تابع max(str)

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

۲۵تابع min(str)

کوچکترین کاراکتر موجود در رشته را بر اساس حروف الفبا برمی گرداند.

۲۶تابع replace(old, new [, max])

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

۲۷تابع rfind(str, beg=0,end=len(string))

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

۲۸تابع rindex( str, beg=0, end=len(string))

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

۲۹تابع rjust(width,[, fillchar])

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

۳۰تابع rstrip

تمامی کاراکتر فضای خالی را از انتهای رشته حذف می کند.

۳۱تابع split(str=””, num=string.count(str))

رشته را با توجه به کاراکتر جدا کننده رشته های کوچک تبدیل می کند و به صورت لیست برمی گرداند.

۳۲تابع splitlines( num=string.count(‘\n’))

رشته را بر اساس کاراکتر NEWLINE به رشته های کوچکتر تبدیل می کند.

۳۳تابع startswith(str, beg=0,end=len(string))

بررسی می کند که آیا رشته با ورودی اول (str) آغاز شده است یا خیر. اگر چنین بود مقدار true و در غیر این صورت مقدار false را برمی گرداند.

۳۴تابع strip([chars])

عملیات هر دو متد lstrip و rstrip را بر روی رشته انجام می دهد.

۳۵تابع swapcase

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

۳۶تابع title

یک نسخه از رشته را به صورت “titlecase” برمی گرداند. یعنی کاراکار اول همه کلمات با حرف بزرگ نوشته می شوند.

۳۷تابع translate(table, deletechars=””)

رشته را با توجه به جدول ترجمه (۲۵۶ chars)، ترجمه می کند و آن ها را در رشته del حذف می کند.

۳۸تابع upper

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

۳۹تابع zfill (width)

یک کپی از رشته برمی گرداند که سمت چپ آن با صفر پر شده تا طول نهایی رشته با طول مشخص شده در پارامتر width برابر شود.

۴۰تابع isdecimal

اگر رشته یونیکد شامل کاراکترهای دسیمال باشد، مقدار true و در غیر این صورت مقدار false برمی گرداند.

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است