پایتون برای همه | 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 و حمایت موسسه تحقیقاتی رامونا ارائه می‌شود. شما می‌توانید با توجه به مفاد این گواهی از آن استفاده کنید.

2 دیدگاه

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

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

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

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

پاسخ دهید

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