پایتون برای همه | 29 | رشته و طول آن‌ها

پایتون برای همه پایتون 3

رشته چیست؟

یک رشته، زنجیره‌ای از کاراکترهاست. شما می‌توانید با استفاده از عملگر قلاب به هر کاراکتر در آنِ واحد دسترسی داشته باشید:

>>> fruit = 'banana'
>>> letter = fruit[1]

گزاره‌ی دوم، کاراکتری که در موقعیت ‎1 از متغیر fruit قرار دارد را بیرون می‌کشد و آن را به متغیر letter نسبت می‌دهد.

عبارت داخل براکت‌ها را ایندکس یا شاخص می‌گوییم. شاخص نشان می‌دهد که کدام کاراکتر در سلسله‌ی موجود را می‌خواهید. ولی شاید انتظار شما از مقدار موجود در letter چیز دیگری باشد:

>>> print(letter)
a

به صورت شهودی اولین کاراکتر موجود در رشته banana حرف b است، و نه a. ولی چرا شاخص ‎1 حرف a را نشان می‌دهد؟ در پایتون، شاخص از ابتدای یک رشته شروع و اولین حرف از رشته با شاخص ‎0 مشخص می‌شود.

>>> letter = fruit[0]
>>> print(letter)
b

در نتیجه b صفرمین حرف از رشته banana به حساب می‌آید و a یکمین و n دومین و به همین ترتیب.

شما می‌توانید از هر عبارتی، شامل متغیرها و عملگرها، به عنوان شاخص استفاده کنید، با این استثنا که مقدار شاخص بایستی یک عدد صحیح باشد وگرنه شما چیزی شبیه به این خطا را دریافت می‌کنید:

>>> letter = fruit[1.5]
TypeError: string indices must be integers

دریافت طول یک رشته با استفاده از len

یک تابع توکاری شده با اسم len در پایتون وجود دارد که مقدار عددیِ تعداد کاراکترهای موجود در یک استرینگ را برمی‌گرداند:

>>> fruit = 'banana'
>>> len(fruit)
6

با استفاده از تابع len چطور می‌شود آخرین کاراکتر یک رشته را استخراج کرد؟ شاید بخواهید که از آن به این صورت استفاده کنید:

>>> length = len(fruit)
>>> last = fruit[length]
IndexError: string index out of range

ولی دلیل اینکه خطای IndexError گرفتیم چیست؟ حرفی با شاخص ‎6 در رشته banana وجود ندارد. از آنجایی که پایتون شمارش کاراکترهای رشته را با عدد ‎0 آغاز می‌کند، ما در این رشته شاخص‌های ‎0 تا ‎5 را داریم. به عبارتی برای دریافت آخرین کاراکتر از یک رشته، بایستی عدد یک را از اندازه‌ی طول آن رشته کسر کنیم:

>>> last = fruit[length-1]
>>> print(last)
a

همچنین می‌توانید از شاخص‌های منفی به منظور شمارش از آخر به اول استفاده کنید. عبارت fruit[-1]‎ آخرین حرف و عبارت fruit[-2]‎ حرف یکی مانده به آخر را استخراج می‌کند.

این نوشته تحت مجوز کرییتیو کامنز BY – NC و حمایت موسسه تحقیقاتی رامونا ارائه می‌شود. شما می‌توانید با توجه به مفاد این گواهی از آن استفاده کنید.

مقاله را پسندیدید؟ در صورتی که پاسخ‌تان مثبت است، می‌توانید مقاله‌ای که خواندید را به مبلغ ۱۵۰۰ تومان با فشار دادن دکمه زیر بخرید. توجه کنید که ۱۵۰۰ تومان بهای مقاله‌ای است که اکنون خواندید اما به نشان قدردانی از شمایی که مقاله را بعد از خواندن، می‌خرید، به صفحه‌ای از وب‌سایت ایلولا هدایت خواهید شد و مقاله‌های ویژه به صورت فایل PDF در دسترس شما قرار خواهد گرفت. اگر متوجه منظورم نشدید، خواهش می‌کنم مقاله را نخرید چرا که به نظر می‌رسد ما زبان هم را نمی‌فهمیم.

پرداخت شما از طریق سایت امن زرین‌پال به سایت شاپرک (زیر نظر بانک مرکزی) هدایت خواهد شد و امنیت اطلاعات شما - در صورت رعایت نکاتی که در درگاه پرداخت ذکر شده - تضمین شده است. به عنوان راه جایگزین می‌توانید پرداخت را از طریق شماره شبا IR570560080388802621820001 به نام ایمان امینی انجام دهید و رسید را به ایمیل eman.amini روی gmail.com ارسال کنید تا دسترسی به صفحه مذکور به شما اعطا شود.

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

Whatsapp Telegram
Email Facebook Google Twitter

2 دیدگاه

  1. چگونه می توان طول کاراکترهای دریافتی توسط کاربر را محدود بندی کنیم.مثلا،کاربر تنها قادر به وارد کردن 6 حرف یا عدد باشد؟

    • بایستی یه شرط تعیین کنید و داخل اون با استفاده از تابع len مشخص کنید که طول کاراکتراهای دریافتی چقدر باشه. مثلا برای ۶ کاراکتر:

      userInput = raw_input("Enter something: ")
      if len(userInput) != 6:
          print "Please enter  string with only 6 char!"
          sys.exit()

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

پاسخ دهید

ایمیل شما نمایش داده نخواهد شد