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

به دنباله ای از کارکتر ها که در کنار یک دیگر در یک دنباله وجود دارند رشته گفته می شود ، متنی که می خواهیم به متغییر رشته ای انتصاب دهیم باید داخل تک کتیشن ( ‘ ) یا دابل کتیشن ( ” ) و حتی تریپل کتیشن ( ”’ ) قرار گیرد، البته از ( ”’ ) معمولا برای رشته های چند خطی استفاده می شود. برای درک بهتر این موضوع به مثال های زیر توجه فرمایید.
به دنباله ای از کارکتر ها که در کنار یک دیگر در یک دنباله وجود دارند رشته گفته می شود ، متنی که می خواهیم به متغییر رشته ای انتصاب دهیم باید داخل تک کتیشن ( ‘ ) یا دابل کتیشن ( ” ) و حتی تریپل کتیشن ( ”’ ) قرار گیرد، البته از ( ”’ ) معمولا برای رشته های چند خطی استفاده می شود.
برای درک بهتر این موضوع به مثال های زیر توجه فرمایید.
در صورتی که رشته ما به صورت چند خطی باشد یعنی بین کارکتر های متن از Enter استفاه شده بود می توان از ( ”’ ) یا ( “”” ) برای انتصاب رشته به متغییر استفاده کرد. به مثال زیر توجه فرمایید:
توجه داشته باشید که رشته ها یک تاپل (tuple) از کارکتر ها می باشند و می توان به تک تک کارکتر های تشکیل دهنده یک رشته همانند تاپل ها (tuple) دسترسی داشته باشیم. به مثال زیر توجه فرمایید:
برای دسترسی به عناصر تشکیل دهنده رشته علاوه بر روش بالا که دسترسی اندیس گذاری نرمال نام دارد روش دیگری وجود دارد که به آن اندیس گذاری معکوس گفته می شود.

همانطور که در شکل بالا مشاهده می کنید اندیس گذاری منفی در رشته ها به این شکل است که اندیس -1 به آخرین عنصر رشته اختصاص داده می شود و به ترتیب به سمت ابتدای رشته یک واحد یک واحد کاسته می شود.
نکته : باید توجه داشت اولین عنصر یک رشته همواره کوچکترین اندیس را داراست.
باید توجه داشت که شماره اندیس های رشته ها همواره عدد صحیح می باشند و استفاد از هر نوع داده ای به جز داده صحیح باعث ایجاد اعلام خطا توسط پایتون خواهد شد، همچنین شماره اندیس های یک رشته از 0 شروع شده و به تعداد عناصر (کاراکترهای) تشکیل دهنده رشته یک واحد یک واحد اضافه می شود اندیس های یک رشته با طول 10 از 0 تا 9 شماره گذاری می شود، پس اگر بخواهیم به اندیسی خارج از محدوده عناصر رشته دسترسی پیدا کنیم پایتون به شما اعلام خطا خواهد داد.
همچنین با کمک گرفتن از متد ()len می توان طول رشته یا به عبارتی دیگر تعداد کارکتر های تشکیل دهنده رشته را مشخص نمود. مانند مثال زیر :
تغییر یا حذف رشته ها
عناصر رشته تغییر ناپذیر هستند به این معنا که ما نمیتوانیم عناصر (کاراکتر های) تشکیل دهنده یک رشته را یک به یک تغییر دهیم، ولی می توانیم کل رشته موجود دریک متغییر رشته ای را به شکل کلی تغییر داد، به مثال زیر دقت کنید :
همچنین عناصر یک رشته قابل حذف نیستند، ولی می توان کل رشته را با دستور del حذف کرد، به مثال زیر توجه کنید :
همانطور که در مثال بالا مشاهده نمودید بعد از حذف کامل متغییر my_str، پایتون دیگر این نام را به عنوان متغییر نمی شناسد. و در صورت استفاده از آن به این عنوان پیغام خطا صادر می کنید.
عملیات رشته ها در پایتون
رشته ها یکی از کاربردی ترین متغییر ها در زبان برنامه نویس پایتون می باشند، از این رو عملیات زیادی وجود دارد که می توان با رشته ها انجام داد، حال به شرح هر یک خواهیم پرداخت.
الحاق دو رشته
برای الحاق رشته ها از دو عملگر + و * استفاده می شود، + برای پیوستن دو رشته به یکدیگر و * برای الحاق یک رشته با خودش به تعداد مشخص کاربرد دارند، برای درک بهتر این موضوع به مثال های زیر توجه کنید:
روش دیگر برای الحاق رشته ها کنار هم قرار دادن آن ها در کنار یکدیگر است، این عمل باعث الحاق رشته ها می شود :
اگر بخواهیم رشته ها را در خطوط مختلف به هم متصل کنیم باید از پرانتز مانند مثال بالا استفاده کنیم.
اعمال حلقه for بر روی رشته ها
می توان از رشته برای شمارنده حلقه for استفاده کرد، برای درک بهتر این موضوع با مثالی آن را شرح خواهیم داد :
برای شمارش تعداد تکرار عنصر مورد نظر در یک رشته از دستور count استفاده می شود، همچنین برای پیدا کردن اندیس عنصر مورد نظر در یک رشته از دستور index به شکل زیر استفاده می شود:
در دستور index می توان بعد آرگومان مربوط به کارکتر یا زیر رشته مورد جستجو شماره اندیس شروع جستجو را نیز مشخص کرد، در مثال فوق عدد 4 بعد از ‘l’ به این معناست که جستجو از اندیس 4 به بعد شروع شود و عناصر موجود در اندیس های 0 تا 3 را نادیده بگیر.
تست عضویت رشته ها
برای بررسی این که آیا زیر رشته مورد نظر در یک رشته وجود دارد یا خیر می توان از دستور in به شکل زیر استفاده کرد:
نکته مهمی که باید به آن توجه داشت تفاوت حروف کوچک و بزرگ در پایتون می باشد و باید یادآوری کنیم که پایتون نسبت به حروف کوچک و بزرگ حساس است، مثلا در کلمه ‘Pronesh’ حرف ‘o’ با حروف کوچک نوشته شده و اگر ما به دنبال حرف ‘O’ که به صورت حروف بزرگ نوشته شده بگردیم حاصل جستجو false خواهد بود.
برای مشاهده عناصر (کارکتر های) یک رشته و اندیس آن ها می توان از تابع enumerate به شکل زیر استفاده کرد:
قالب بندی رشته ها
همانطور متوجه شدید برای تولید یک متن رشته ای کافیست آن را بین تک کوتیش ( ‘ ) و یا دبل کوتیشن ( ” ) قرار داد، حال فرض کنید ما رشته ای داریم که در آن رشته، خود تک کوتیشن یا دابل کوتیشن هم بخشی از رشته باشد، مثل جمله زیر :
همانطور که در مثال های بالا مشاهده کردید چاپ این رشته چه با تک کوتیشن ( ‘ ) چه با دابل کوتیشن ( ” ) مشکل دارد و پایتون برای چاپ آن اعلام خطا می کند. برای رفع این مشکل راه کار هایی وجود دارد، که به بررسی آن ها خواهیم پرداخت.
راه کار اول: استفاده از تریپل کوتیشن ( ”’ ) برای مشخص کردن محدوده رشته به جای تک کتیشن و دابل کوتیشن می باشد به مثال زیر توجه کنید:
راه کار دوم: استفاده از دنباله های فرار (Escape Sequence) می باشد. در این روش اگر متن خود را داخل تک کوتیشن ( ‘ ) قرار داده اید یک بک اسلش ( \ ) پشت تمام تک کتشین هایی که جزیی از متن هستند قرار دهید و برای دابل کوتیشن ها نیز به همین ترتیب بک اسلش را پشت تمام دابل کتیشن هایی که جزیی از متن هستند قرار می دهیم. به مثال های زیر توجه فرمایید :
همانطور که در مثال های بالا مشاهده می کنید در هر سه حالت تست شده، رشته مد نظر به شکل کامل در خروجی چاپ شده است، بنابراین می توان بنا به نیاز از هر یک از روش های فوق استفاده کرد. البته برای حالت های خاص دیگری در رشته ها دنباله های فرار (Escape Sequence) دیگر در نظر گرفته شده که می توانید در جدول زیر لیست تمام دنباله های فراری که توسط پایتون پشتیبانی می شود مشاهد کرد.

برای درک بهتر دنباله های فرار جدول فوق، به مثال های زیر توجه کنید:
نادیده گرفتن دنباله های فرار داخل یک متن
گاهی لازم می شود دنباله های فرار موجود در یک متن را نادیده بگیریم، در این صورت می توان با قرار دادن کارکتر r یا R در ابتدای رشته (قبل از کوتیش [‘ – “] ابتدای رشته) به پایپون بفهمانیم که رشته موردن نظر را به عنوان رشته ای خام در نظر بگیرد و نماد ها و دستورات مربوط به دنباله های فرار را نادیده بگیرد. به مثال زیر توجه کنید:
قالب بندی رشته ها با متد ()format
متد format در قالب بندی داده برای چاپ بسیار پرکاربرد می باشد، در متد format از براکت ها ({}) برای محل جا نمایی متغییر ها و مقادیر استفاده می شود، همچنین می توان از متغییر ها و شماره گذاری برای ترتیب دادن به نمایش داده ها استفاده کرد. با بررسی مثال های زیر بهتر متوجه این نکات خواهید شد.
در متد format این قابلیت وجود دارد که فرمت نمایش و ترتیب نمایش داده ها را نیز مشخص کرد، مثلا در رشته ها، چپ چین، راست چین یا وسط چین کردن آن ها، در اعداد صحیح نوع نمایش آن ها (باینری، هگز و …) یا اعداد اعشاری که با چه میزان دقت و یا حتی به صورت نماد علمی نمایش داده شوند. حال با استفاده از چند مثال شما را با این موضوع بیشتر آشنا خواهیم کرد .
قالب بندی به سبک قدیمی
در پایتون این قابلیت و جود دارد که از قالب بندی قدیمی ()sprintf در زبان C نیز استفاده کنیم، می توان از اپراتور % برای قالب بندی داده در چاپ استفاده کرد، این قابلیت برای کسانی که به سینتکس های زبان C بیشتر عادت کرده اند بسیار مناسب است. به مثال های زیر توجه کنید.
متد های رایج رشته ها در پایتون
از آنجایی که رشته ها یکی از پرکاربرد ترین انواع داد در پایتون می باشند لذا متد های متعددی برای کار با آن ها وجود دارد که به چند مورد پر کاربرد آن مثل ()lower()، upper()، join()، split()، find()، replace با چند مثال اشاره می کنیم. در بخش دیگری به شکل کامل به بررسی لیست کامل این متدها خواهیم پرداخت.
دیدگاهتان را بنویسید