پایتون برای همه | 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های ایلولا هدایت می‌شوید و دسترسی یک ماهه به آن خواهید داشت. در کنار نسخه‌ی PDF مقالات ویژه که به مرور بر تعدادشان افزوده می‌شود، یک کتابچه هدیه نیز تقدیم حضورتان خواهد شد. ایلولا، به احترام بازدیدکنندگان، از تبلیغات استفاده نمی‌کند و با تکیه بر فروش مقالات اداره می‌شود.

2 دیدگاه

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

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

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

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

پاسخ دهید

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