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

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

تصویر python-strings_2674 رشته ها در پایتون – آموزش Python

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

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

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

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

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

امتحان کنید

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

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

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

امتحان کنید

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

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

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

نشانه گذاری بک اسلشکاراکتر هگزادسیمالتوضیحات
a0x07Bell or alert
b0x08Backspace
cxControl-x
C-xControl-x
e0x1bEscape
f0x0cFormfeed
M-C-xMeta-Control-x
n0x0aNewline
nnnOctal notation, where n is in the range 0.7
r0x0dCarriage return
s0x20Space
t0x09Tab
v0x0bVertical 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 نتیجه 1
not inعضویت – اگر یک کاراکتر در رشته مشخص شده وجود نداشته داشته باشد، مقدار true برمی گرداند.M not in a نتیجه 1
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

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

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

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

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

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

امتحان کنید

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

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

امتحان کنید

نتیجه:

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

امتحان کنید

نتیجه:

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

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

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

امتحان کنید

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

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

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

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

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

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

2center(width, fillchar)

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

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

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

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

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

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

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

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

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

7تابع  expandtabs(tabsize=8)

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

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

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

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

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

10تابع isalnum

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

11تابع isalpha

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

12تابع isdigit

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

13تابع islower

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

14تابع isnumeric

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

15تابع isspace

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

16تابع istitle

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

17تابع isupper

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

18تابع join(seq)

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

19تابع len(string)

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

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

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

21تابع lower

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

22تابع lstrip

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

23تابع maketrans

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

24تابع max(str)

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

25تابع min(str)

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

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

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

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

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

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

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

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

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

30تابع rstrip

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

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

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

32تابع splitlines( num=string.count(‘n’))

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

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

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

34تابع strip([chars])

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

35تابع swapcase

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

36تابع title

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

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

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

38تابع upper

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

39تابع zfill (width)

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

40تابع isdecimal

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

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

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