رشته به شکل آرایه

!Sequences or Strings like Array Objects

Sequence چیست؟

sequence یا string، همان رشته در پایتون است.

با رشته‌ها آشنا شده بودیم و می‌دانیم که چگونه باید آن‌ها را در یک متغیّر قرار داد. به مثال زیر توجّه کنید:

seq = “Welcome to Nikparvar Python Class”

در پایتون یک رشته مانند آرایه، دارای index می‌باشد!

به مثال زیر توجّه کنید…

seq = [“Welcome to Nikparvar Python Class”]

Index number:      0            6                        22

                              W           e                         y

برای صدا کردن حروف آن، می‌توان مانند آرایه‌ها از ایندکس آن استفاده کرد. مثلاً seq[6] برابر حرف e می‌باشد که حرف هفتم عبارت است.

جهت مشخّص نمودن و جدا کردن بخشی از رشته (برش زدن رشته) از مدل زیر استفاده می‌کنیم. دقّت کنید که چون مقدار پایانی آن «تا» می‌باشد، پس یک حرف کمتر نمایش می‌دهد. در مثال زیر تا پایان حرف 19 نمایش داده می‌شود.

SequenceName[start index:end index]

                                                        تا              شروع

seq = “Welcome to Nikparvar Python Class”

seq[11:20] = “Nikparvar

نکته: برای کار با رشته‌ها به صورت ترکیبی و حذف یا تغییر بعضی حروف آن‌ها می‌توان از مثال‌های زیر بهره برد.

seq = “Welcome to Nikparvar Python Class”

مثال: seq[:12] + “IKPARVAR” + seq[20:]

–> “Welcome to NIKPARVAR Python Class”

مثال: seq[:11] + “Alavi” + seq[20:]

–> “Welcome to Alavi Python Class”

برای به دست آوردن تعداد حروف یک رشته از تابع len به صورت زیر استفاده می‌کنیم:

seq = “Welcome to Nikparvar Python Class”

تعداد کل حروف رشته: len(seq)=33

دقّت شود که space و هر کاراکتر دیگری، حتّی علائم در string شمارش می‌شوند.

جهت کار روی رشته‌ها متدهای زیادی داریم که در اینجا به 4 مورد اشاره می‌کنیم:

seq = “Welcome to Nikparvar Python Class”

1) seq.upper()

2) seq.lower()

3) seq.count(“statement…”)

4) seq.find(“statement”, index)

برای بزرگ کردن حروف یک عبارت از این متد استفاده می‌کنیم (روی اعداد بی‌تأثیر است):

seq = “Welcome to Nikparvar Python Class”

مثال: seq.upper()

–> “WELCOME TO NIKPARVAR PYTHON CLASS”

مثال: seq[11:21].upper()

–> “NIKPARVER”

برای کوچک کردن حروف یک عبارت از این متد استفاده می‌کنیم (روی اعداد بی‌تأثیر است):

seq = “Welcome to Nikparvar Python Class”

مثال: seq.lower()

–> “welcome to nikparvar python class”

مثال: seq[11:21].lower()

–> “nikparvar”

Practice 3

برنامه‌ای بنویسید که در عبارت seq موجود در اسلایدهای قبل، حروف P کلمه‌ی Python را کوچک و to را در آن بزرگ نماید.

نتیجه: Welcome TO Nikparvar python Class

برای شمردن یک عبارت در یک رشته از این متد استفاده می‌کنیم:

seq = “Welcome to Nikparvar Python Class”

مثال: seq.count(“o“)

تعداد o که در این عبارت دیده شده: 3

مثال: seq[11:20].count(“r“)

تعداد r که در این عبارت دیده شده: 2

مثال: seq[11:20].count(“r“, 6)

تعداد r که بعد از ایندکس 6 در این عبارت دیده شده: 1

برای پیدا کردن یک عبارت در یک رشته از این متد استفاده می‌کنیم:

seq = “Welcome to Nikparvar Python Class”

مثال: seq.find(“o“)

اوّلین شماره‌ی index که در آن این عبارت دیده شده: 4

مثال: seq[11:20].find(“r“)

اوّلین r که در این عبارت دیده شده: 5

مثال: seq[11:20].count(“r“, 6)

اوّلین ایندکس r که بعد از ایندکس 6 در این عبارت دیده شده: 8

Practice 4

برنامه‌ای بنویسید که یک عبارت بگیرد و اگر بیش از 15 حرف بود، حرف هشتم آن را بزرگ (capital) کند و کلّ عبارت را چاپ کند، در غیر این صورت پیغام مناسب نشان داده و دوباره درخواست ورود عبارت جدید نماید.

Practice 5

برنامه‌ای بنویسید که یک رشته‌ی بین بیست تا پنجاه حرف از کاربر دریافت کند، اگر رشته‌ی دریافتی خالی بود (Enter زده بودند و چیزی وارد نکرده بودند) یا کمتر از بیست حرف داشت یا از پنجاه حرف بیشتر داشت، پیغام مناسب داده و دوباره رشته‌ را دریافت کند. در ادامه برنامه کارهای زیر را باید انجام دهد:

  • تعداد حروف آن رشته را با عبارت مناسب چاپ کند.
  • مشخص کند از هر حرف الفبای انگلیسی چند تا در آن قرار دارد و آن را به صورتی زیبا چاپ نماید. (حروفی که در رشته نیست را چاپ نکند!)
  • یک حرف از کاربر دریافت نموده (فقط یک حرف نه کمتر نه بیشتر! و پیغام مناسب و تکرار دریافت فراموش نشود…)و ایندکس (جایگاه) همه‌ی تکرارهای آن را نشان دهد.
  • آماده‌ی دریافت یک حرف جدید برای بررسی گزینه‌ی بالایی باشد…
  • در صورتی که عبارت end را وارد کردیم، از برنامه خارج شود.