• ارسال کننده: سمیه مظفری
  • تاریخ انتشار: ۱۳۹۸ / ۰۳ / ۱۸

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

در مقاله قبلی با عنوان “ساختار داده ای رشته در زبان برنامه نویسی پایتون” با لیترال های رشته ای، کاراکترهای گریز پایتون و ایجاد رشته های خام در پایتون آشنا شدید.

در این مقاله قصد داریم به شرح عملیاتی که می توان بر روی رشته ها انجام داد بپردازیم.

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

البته توجه داشته باشید که شما نمی توانید از مخلوطی از اعداد و رشته ها را به عنوان عملوندهای یک عملگر تعریف کنید. چرا که این کار به بروز خطای نوع (TypeError) منجر می شود.

                              عملگر + در پایتون

عمگر * نیز یک رشته را به تعداد دفعات مشخص شده تکرار می کند.

عمگر * در پایتون

در قطعه کد زیر می توانید تعدادی از عملیاتی که می توان بر روی رشته ها انجام را به صورت یک جا مشاهده کنید.

 

کارکرد عملگر عملگر های رشته ها
الحاق رشته ها با هم +
تکرار یک رشته به تعداد معین *
دسترسی به کاراکتری از رشته []
استخراج بخش هایی از رشته [:]
تست عضویت کاراکتری در یک رشته in
تست  عدم عضویت کاراکتری در یک رشته not
خنثی کردن عملکر کاراکتر گریز r/R
قالب بندی یک رشته %

تعدادی از عملیات بر روی رشته ها

بررسی وجود یا عدم وجود یک زیر رشته

توسط دو کلمه کلیدی in و not in می توان به ترتیب وجود یا عدم وجود یک زیر رشته را در یک رشته مورد بررسی قرار داد.  نتیجه اعمال این دو عملگر بر روی رشته ها، مقدار بولین True است یا False .

بررسی وجود یا عدم وجود یک زیر رشته

دسترسی به عناصر یک رشته

مشابه لیست های پایتون، با استفاده از یک براکت چهار گوش [] و اندیس عنصر مورد نظر، می توان به تک تک عناصر یک رشته دسترسی پیدا کرد. در این ساختمان داده هم اندیس ها از عدد صفر شروع می شوند. مثلا قطعه کد زیر، هفتمین عنصر آرایه a را چاپ می کند. توجه داشته باشید که فضای خالی بین کلمات هم خود یک کاراکتر محسوب می شود.

تلاش برای دسترسی به کاراکتری از رشته که اندیس آن خارج از رنج اندیس های آن رشته است منجر به خطای IndexError می شود. همچنین این اندیس حتما باید عدد صحیح باشد و انتخاب اندیس از نوع اعشاری یا سایر انواع داده باعث بروز خطای TypeError می شود.

خطای TypeError در پایتون

با استفاده از عملگر برش (کولن :) نیز می توانید قسمت هایی از یک رشته را استخراج کنید. این عملگر دو عدد را به عنوان اندیس شروع و پایان دریافت کرده و کاراکترهای موجود در آن رنج یا محدوده را استخراج می کند. توجه داشته باشید که در این حالت، خود کاراکتر قرار گرفته در مکان اندیس دوم استخراج نمی شود. مثلا در قطعه کد زیر، کاراکترهای مربوط به اندیس 7 تا 11 چاپ می شوند.

چاپ کاراکترهای مربوط به اندیس 7 تا 11

  • اگر در داخل این عملگر، اندیس دوم را ننویسید کاراکترهای رشته را از اندیس اول به بعد چاپ می کند مثلا با نوشتن دستور email[5:] با شروع از اندیس پنجم، تمامی کاراکترهای رشته استخراج می شوند. حال اگر تنها اندیس دوم را بنویسید از اندیس 0 تا اندیس دوم، کاراکترهای رشته مورد نظر چاپ می شوند (email[:4]).
  • اندیس دریافتی توسط این عملگر می تواند منفی هم باشد. در این صورت استخراج کاراکترها از انتهای رشته آغاز خواهد شد. مثلا در قطعه کد زیر می بینید که با اجرای دستور email[-1] آخرین کاراکتر این رشته استخراج می شود و یا با نوشتن دستور email[:-2] غیر از دوکاراکتر انتهای رشته، تمامی کاراکترهای متغیر email چاپ می شوند.

منفی بودن اندیس دریافتی توسط این عملگر

پیمایش عناصر یک رشته توسط حلقه for

شما می توانید توسط حلقه های تکرار مخصوصا حلقه for ، کاراکترهای یک رشته را از ابتدا به انتها پیمایش کرده و عملیات موردنظرتان را روی آنها انجام دهید.  مثلا در قطعه کد زیر، ما تعداد حروف L موجود در رشته HELLO WORLD را توسط یک حلقه for بدست آورده ایم.

پیمایش عناصر یک رشته توسط حلقه for

تغییر عناصر یک رشته

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

تغییر عناصر یک رشته در پایتون

حذف یک رشته یا عناصر آن

در پایتون امکان حذف کاراکترهای یک رشته هم وجود ندارد (با خطای TypeError: ‘str’ object doesn’t support item deletion مواجه می شوید). این خطا به شما می گوید که شی رشته در پایتون از امکان حذف آیتم پشتیبانی نمی کند. بلکه تنها می توانید توسط کلمه کلیدی del کل رشته را حذف کنید.

حذف یک رشته یا عناصر آن در پایتون

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

زبان پایتون برای فرمت دهی رشته ها از همان روش زبان c استفاده می کند، مثلا در پایتون برای فرمت دهی یک رشته از عملگر “%s” ،  برای فرمت دهی یک عدد از عملگر “%d”، برای فرمت دهی اعداد اعشاری از عملگر “%f” و برای فرمت دهی اعداد در نمایش هگزادسیمال از عملگرهای %x  یا%X    استفاده می شود. فرض کنید نام فردی را در یک متغیر ذخیره کرده اید و می خواهید با ذکر نامش با او احوالپرسی کنید.

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

اگر قرار است بیش از یک متغیر را فرمت دهی کنید بهتر است آنها را در درون یک تاپل قرار داده و عملگر “%” را بر روی این علامت پرانتز این تاپل اعمال کنید. بنابراین از عملگر % خالی می توان برای فرمت دهی مجموعه ای از متغیرهای محصور در یک تاپل (لیست تغییرناپذیر) نیز استفاده کرد.

مجموعه ای از متغیرهای محصور در یک تاپل

علاوه بر موارد بالا از عملگر “%s می توان برای فرمت دهی شیئی که یک رشته نیست نیز استفاده نمود.

عملگر "%s می توان برای فرمت دهی شیئی

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

در پایتون توابع درون ساخته ای (build-in) وجود دارند که توسط آنها می توان کارهای مختلفی روی رشته ها انجام داد. لذا ما در این مقاله قصد داریم به تشریح چند نمونه از مهم ترین توابع موجود بپردازیم. خود شما هم می توانید با نوشتن علامت نقطه پس از نام رشته موردنظرتان و فشردن همزمان کلیدهای ctrl  و space، تمامی این توابع را مشاهده کنید. حال می توانید با کلیدهای جهتی بالا و پایین کیبورد، در منوی کشویی موجود، حرکت کرده و توسط کلید tab، تابع مورد نظرتان را انتخاب کنید.

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

تابع format()  

روش دیگر فرمت دهی یک رشته استفاده از تابع format  می باشد. این تابع یکی از توابعی است که توسط شی رشته قابل دسترس است. در این شیوه، رشته ای که قرار آن را فرمت دهی کنید حاوی یک یا بیش از یک علامت براکت مجعد است به طوریکه این براکت ها همانند یک نگه دارنده عمل می کنند و با مقادیری که به عنوان آرگومان های تابع format  مشخص شده اند پر می شوند.  حال برای مشخص کردن ترتیب جایگزین شدن آرگومانهای این تابع با براکت های مجعد درون رشته، می توان  از اندیس های عددی و یا نام متغیرهای درون این تابع استفاده کرد. البته در صورتی که از هیچ کدام از این روش ها برای مشخص کردن ترتیب جایگزینی استفاده نکنید پایتون با ترتیب پیش فرض خود این عمل را انجام می دهد. مثلا در قطعه کد زیر، به ترتیب از روش پیش فرض، اندیس های عددی و نام متغیرها برای مشخص کردن ترتیب جایگزینی مقادیر در درون براکت های مجعد استفاده شده است.

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

تابع count : توسط این تابع می توان فهمید که یک زیر رشته در بازه ای که ما تعیین می کنیم چند بار تکرار شده است. این تابع سه ورودی دارد که عبارتند از زیر رشته مورد نظر، اندیس شروع و اندیس پایان. مثلا در قطعه کد زیر می بینید که بین اولین و آخرین اندیس رشته str، 4 بار زیر رشته “am”  تکرار شده است.

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

تابع :Find این تابع نیز بسیار شبیه تابع count است با این تفاوت که این تابع، به جای برگرداندن تعداد تکرار یک زیر رشته در رشته مورد نظر، وجود یا عدم وجود آن را گزارش می دهد. به عبارت دیگر، اگر زیر رشته را پیدا کند اندیس شروع آن را بر می گرداند و اگر پیدا نکند هم عدد -1 را بر می گرداند. مثلا در قطعه کد زیر، به دلیل یافتن زیررشته “am”، اندیس شروع آن را که 2 است بر می گرداند اما در دستور دوم، چون زیر رشته “kamal” را پیدا نمی کند لذا عدد -1 را بر می گرداند.

تابع :Find در پایتون

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

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

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

تابع strip() در پایتون

تابع len() نیز طول (تعداد کاراکترهای) یک رشته را برمیگرداند. همانطور که در مثال زیر می بینید  با اینکه دو رشته a و b عین هم هستند اما طول یکسانی ندارند. این موضوع نشان میدهد که در شمارش تعداد کاراکترهای یک رشته، فضای خالی هم یک کاراکتر محسوب می شود.

تابع len() در پایتون

تابع upper()  تمامی کاراکترهای یک رشته را با حروف بزرگ نمایش می دهد. تابع lower() نیز برعکس تابع upper()  عمل کرده و تمامی کاراکترهای یک رشته را با حروف کوچک نمایش می دهد.

تابع upper() در پایتون

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

تابع replace() در پایتون

مثلا در کد زیر، با اینکه تابع replace به صورت ضمنی 4 بار وجود زیررشته “am” را در رشته str، کشف نموده است اما تنها سه مورد اول را با زیر رشته “–“، جایگزین می کند.

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

تابع split() : این تابع با یافتن جداکننده ای که به عنوان پارامتر می گیرد رشته را به دو زیر رشته می شکند.

تابع split() در پایتون

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

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

min() و max() : این توابع نیز به ترتیب کوچک ترین و بزرگ ترین کاراکتر موجود در یک رشته را به ترتیب حروف الفبا بر می گردانند.

min() و max() در پایتون

تابع Join() : عناصر موجود در یک رشته را به وسیله جداکننده تعیین شده به همدیگر پیوند می دهد(متصل می کند). اگر آرگومان ورودی این تابع حتی دارای یک کاراکتر غیررشته ای هم باشد خطای TypeError  را دریافت خواهید کرد.

تابع Join() در پایتون

تابع  isnumeric() : اگر تمامی کاراکترهای موجود در یک رشته، عدد باشند این تابع مقدار true  و در غیر این صورت (حتی اگر یک کاراکتر غیر عددی در رشته وجود داشته باشد) مقدار false را بر می گرداند.

تابع isnumeric() در پایتون

تابع enumerate() : این تابع شیئی را بر می گرداند که دربردارنده زوج مرتب هایی به صورت (مقدار آن آیتم , اندیس هر ایتم) می باشد. به مثال زیر توجه کنید تا با نحوه عملکرد این تابع آشنا شوید:

تابع enumerate() در پایتون

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

ترجمه: رقیه آقایاری

 

 

به این مطلب رای دهید



 

به اشتراک بگذارید :       فیس بوک کلوب

 

برچسب ها:
این مقاله اختصاصاً برای یاد بگیر دات کام تهیه شده است استفاده از آن با ذکر منبع همراه با لینک آن و نام نویسنده یا مترجم مجاز است

 

در یاد بگیر دات کام مشترک شوید و آخرین مطالب و مقالات را در ایمیل خود دریافت نمایید
برای عضویت، ایمیل خود را وارد کرده و بروی اشتراک کلیک کنید

نظر شما چیست؟

پرسش های خود را در بخش پرسش و پاسخ مطرح کنید

*

code



تبلیغات اینترنتی در یاد بگیر دات کام

بسته های تبلیغاتی ارزان قیمت

 
بستن تبلیغات

Useful Websites Directory

طراحی سایت
تور کوش آداسی
وقت سفارت انگلیس
ویزای تحصیلی کانادا
چاقی صورت



صفحه ما را در فیس بوک دنبال کنید صفحه ما را در توییتر دنبال کنید صفحه ما را در گوگل پلاس دنبال کنید صفحه ما را در  تلگرام دنبال کنید صفحه ما را در  اینستاگرام دنبال کنید صفحه ما را در لینکداین دنبال کنید