• ارسال کننده: سمیه مظفری
  • تاریخ انتشار: 2019 / 05 / 15

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

مقاله قبلی: تبدیل نوع در پایتون

لیترال های رشته ای

در پایتون هم همانند سایر زبان های برنامه نویسی، رشته به آرایه ای از کاراکترها (زنجیره ای از کاراکترهای متوالی) گفته می شود که بین یک (‘) ، دو (“) یا سه علامت کوتیشن (”’ یا “””) محصور شده باشند. مثلا دو رشته ‘hello’  و “hello” با هم یکسان هستند. هم چنین به یک سمبل تنها یک کاراکتر گفته می شود. مثلا زبان انگلیسی دارای 26 کاراکتر است.

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

حتما به خاطر دارید که اولین چیزی که در هنگام کار با هر زبانی یاد می گیرید چاپ یک عبارت ساده است. این عبارت در پایتون هم به صورت یک رشته ذخیره می شود. رشته ها را می توان توسط تابع print بر روی صفحه نمایش نشان داد مثل print(“hello”). در مثال زیر نحوه استفاده از لیترال های رشته ای و کاراکتری را ملاحظه می کنید.

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

البته عموما برای نشان دادن یک رشته از علامت تک کوتیشن یا دابل کوتیشن استفاده می شود و سه علامت نقل قول به هم چسبیده (“”” یا  (”’ نیز برای تعریف Docstring ها و یا محصور کردن دستوری که در چند خط ادامه پیدا می کند به کار می رود.

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

آپوستروف های داخل رشته در پایتون

به طور مشابه، فرض کنید به شما گفته شده که رشته He said, “What’s there?” را در خروجی چاپ کنید. خوب برای این کار از کدام علامت رشته استفاده می کنید علامت تک کوتیشن یا دابل کوتیشن؟ از آن جا که این رشته خود دارای علامت های تک کوتیشن و دابل کوتیشن می باشد در نتیجه شما مجاز به استفاده از هیچ کدام از این دو نوع علامت نیستید. چرا که این کار منجر به بروز خطای SyntaxError می شود.

بروز خطای SyntaxError در پایتون

کاراکترهای گریز پایتون

یک روش برای دور زدن این مشکل، استفاده از علامت کوتیشن سه تایی ( “”” یا  (”’  می باشد. روش دیگر استفاده از کاراکترهای گریز یا چاپ نشدنی (escape sequence) است . در این شیوه مثلا اگر رشته شما در علامت تک کوتیشن محصور شده باشد و خود نیز حاوی علامت تک کوتیشن باشد برای بروز از خطای SyntaxError ، باید تمامی علامت های تک کوتیشن را با یک علامت بک اسلش (\) شروع کنید. در مثال زیر می بینید که ما این مشکل را به سه شیوه حل نموده ایم. در حالت اول کل رشته مذکور را در داخل علامت کوتیشن سه تایی قرار داده ایم. در حالت دوم، رشته را بین یک علامت کوتیشن قرار داده ایم و با استفاده از کاراکتر گریز بک اسلش (\) به پایتون اعلام کرده ایم که علامت تک کوتیشن داخل رشته را عینا چاپ کند. و نهایتا در حالت سوم هم رشته را با علامت دابل کوتیشن مشخص کرده ایم و علامت دابل کوتیشن داخل رشته را هم با یک کاراکتر گریز همراه کرده ایم تا عینا در خروجی چاپ شده و از بروز خطای SyntaxError جلوگیری نماید.

جلوگیری از خطای SyntaxError در پایتون

در جدول زیر لیستی از کاراکترهای گریز را مشاهده می کنید. مثلا:

  • کاراکتر \b اشاره گر موس را یک واحد به عقب منتقل می کند.
  • کاراکتر \a باعث شنیدن صدای بوق می شود.
  • کاراکتر \tبه اندازه یک تب فاصله ایجاد می کند.
  • کاراکتر \r اشاره گر موس را به ابتدای خط منتقل می کند.

لیستی از کاراکترهای گریز در پایتون

به عنوان مثالی دیگر، اگر شما می خواهید رشته ای بنویسید که در آن علامت بک اسلش عینا درج شده باشد باید علامت بک اسلش خود را با یک علامت بک اسلش دیگر شروع کنید یا برای مشخص کردن پرش به خط بعدی به هنگام چاپ یک رشته، از کاراکتر \n کمک بگیرید. همچنین در آخرین دستور print قطعه کد زیر می بینید که به دلیل استفاده از کاراکتر گریز \x  ، به جای چاپ اعداد 48 و 45 و 58، معادل آنها یعنی کاراکترهای H  و E و X در خروجی چاپ شده اند.

استفاده از کاراکتر گریز \x در پایتون

ایجاد رشته های خام در پایتون

گاهی اوقات لازم است که کاراکترهای گریز  داخل یک رشته را نادیده بگیریم برای این کار کافیست که در جلوی آن رشته (شروع آن) از حرف r یا R استفاده کنیم. این حروف، رشته مورد نظر را به یک رشته خام تبدیل می کنند؛ به طوری که همه کاراکترهای داخل این رشته خام به همان صورت که نوشته شده اند، تفسیر و چاپ می شوند. مثلا در قطعه کد زیر ملاحظه می کنید که وقتی درون یک رشته، قبل از عدد 61 از کاراکتر گریز  \x استفاده می کنیم 61\x به صورت کاراکتر a  تفسیر می شود. حال آن که در حالت دوم وقتی قبل از شروع این رشته از حرف r استفاده می کنیم  61\x عینا چاپ می شود.

ایجاد رشته های خام در پایتون

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

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

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

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









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