سلام دوستان

در پست های قبلی ، یاد گرفتیم که چطور یک دنباله ( رشته ) رو تایپ و تعریف کنیم ؛ همچنین ، با عملگرهای قیاسی و ریاضی آشنا شدیم و تونستیم با توابع شرطی if و else و همچنین تابع print ، برنامه های ساده ای بسازیم .

امروز میخوایم ، کمی بیشتر در مورد دنباله ها بحث کنیم ؛ و اینکه چطور اونهارو از کاربر بگیریم .

محیط IDLE رو باز کنید . اما این بار ، به جای کار در Shell ، به محیطی خواهیم رفت که بشه کدها رو در اون ذخیره کرد ؛با استفاده از کلیدهای ترکیبی Ctrl+N یا از طریق نوار File و کلیک روی New File ، یه ماژول جدید برای خودمون ایجاد میکنیم :


خب ؛ حالا چطور میتونیم از کاربر یک رشته ای از کاراکترهارو درخواست کنیم؟ به سادگی ! با استفاده از تابع input ، میتونیم یک رشته رو درون یک متغیر بریزیم . پایتون بصورت اتوماتیک ، حافظه خاصی رو برای اون متغیر ، در نظر میگیره .

برای مثال ، ما از کاربر میخوایم که اسمش رو وارد کنه ؛ اسم متغیری که میخوایم اسم کاربر درونش ذخیره بشه رو User_Name میذاریم . همچنین ، میتونیم پیغامی به کاربر بدیم که ازش بخوایم اسمش رو وارد کنه :

User_Name = input("please enter your name")

بر فرض مثال ، اسمی که کاربر وارد میکنه ، Admin هست .

در خط بعدی ، با استفاده از تابع len ، تعداد حروف نام کاربر رو بدست میاریم( که 5 هست ) و داخل متغیر Alpha قرار میدیم :

Alpha = len(User_Name)

حالا ، با اسم کاربر میخوایم کمی بازی کنیم ! :)

تا حالا ، ما تونستیم نام کاربر رو بگیریم و تعداد حروف اسم کاربر رو داخل متغیر Alpha قرار بدیم . برای اینکه بخوایم حرف خاصی از کلمه (مثلا : حرف آخر که n هست ) رو با تابع print ، چاپ کنیم، باید این کد رو اجرا کنیم :

print(User_Name[Alpha - 1])

شاید واستون سوال باشه که این براکت ها ( آکولاد ها) از کجا اومد؟! اصلا منفی یک چرا؟! ما حرف آخر رو خواسته بودیم!

در جواب سوال دوم ( چرا منفی یک ؟ ) باید بگم که پایتون ، از اندیس ها برای شماره گذاری هر کاراکتر استفاده میکنه و این کار رو از عدد 0 آغاز میکنه و نه 1 ؛ یعنی ، حرف اول اسم کاربر که A هست ، در اینجا اندیس صفر رو میگیره و برای مثال به m(حرف سوم کاربر) ، اندیس دو رو اختصاص میده . برای همین ، اگر منهای یک رو قرار نمیدادیم ، ارور دریافت می کردیم .

و اما جواب سوال اول : برای برش رشته ای ، یعنی برای دریافت یک یا چند حرف از بین چندین کاراکتر ، باید از براکت یا همون آکولاد استفاده کرد ( که حتما باید بین دو اندیس مورد نظر ، دونقطه قرار بگیره ). در مثال های بعدی همین پست ، بیشتر با این قانون آشنا خواهید شد .

حالا ، میخوایم که دو حرف انتهایی نام کاربر رو نمایش بده ، برای این کار ، از تکه کد زیر استفاده می کنیم :

print(User_Name[2:4]

فکر میکنم یه سوال ذهنتون رو درگیر کنه ! این که چرا نوشتم 4 ؟ حرف i مگه اندیس چهار رو به خودش اختصاص نمیده ؟

در جواب ، باید گفت که پایتون در برش رشته ای ، از اولین اندیسی که نام بردیم (2) شروع میکنه به نمایش دادن و تا آخرین شماره اندیسی که گفتیم میره ؛ یعنی اندیس 4 ؛ ولی اندیس 4 رو نمیخونه ؛ در واقع ، از اندیس 2 تا 3 رو چاپ میکنه و نمایش میده .

یه نکته خیلی مهم : برای اینکه یک حرف خاص ، مثلا حرف d رو نمایش بدیم ، این کد درست نیست :

print(User_Name[1:1]

چرا ؟ چون عملا داریم به پایتون میگیم که اندیس شماره 1 رو چاپ کنه ؛ ولی اندیس 1 رو چاپ نکنه ! اما دو کد زیر ، درست هستند ( در کدهای زیر ، فقط یک حرف میتونیم نمایش بدیم . یعنی این بار ، برش رشته ای انجام نمیدیم ) :

print(User_Name[1])
print(User_Name[-4])

پی نوشت : در بار دوم ، از سمت راست به چپ شروع کردیم ؛ اگه از راست به چپ شمارش رو آغاز کنیم ، باید از 1- شروع کنیم و نه از 0 چون پایتون ، حرف اول از راست و حرف اول از چپ رو قاطی نکنه !

این بار ، میخوایم فامیلی فرد رو هم دریافت کنیم :

LastName = input("please enter your lastname")

بر فرض مثال ، اسمی که در این قسمت کاربر وارد میکنه ، PCBAZ هست ؛ حالا میخوایم نام کامل فرد رو بهش نشون بدیم :

FullName = User_Name + LastName

بله ! با استفاده از عملگر جمع و با ترتیب اولویت از چپ به راست ( اول اسم کوچیک فرد و بعد ، فامیلی فرد ) میتونیم هر دو متغیر ذکر شده رو داخل یک متغیر جدید قرار بدیم ! البته ، برای این که یک فاصله بین نام فرد و فامیلی فرد ایجاد بشه ، من تکه کد زیر رو پیشنهاد میکنم ( که خودمون ، یک رشته حاوی یک Space رو بین دو رشته مذکور ، اضافه میکنیم )

FullName = User_Name + " " + LastName

برش رشته ای ، استفاده از عملگر جمع ، گرفتن داده از کاربر و چاپ کردن یک کاراکتر از بین کاراکترهای یک رشته رو یاد گرفتیم ؛ حالا دیگه نیازی که به دو متغیر User_Name و LastName نداریم که ؟! پس با متد del ، در خط آخر برنامه مون ، هر دو متغیر رو پاک میکنیم تا cpu رو اسیر خودش نکنه ! :)

در صورتی که چندتا متغیر رو همزمان خواستیم پاک کنیم ( مثل همین برنامه مون که User_Name و LastName رو میخوایم با هم پاک کنیم ) باید اسم همه متغیرهای مورد نظر رو داخل پرانتز بنویسیم و بین شون کاما ( , ) بذاریم :

del(نام یا نام های متغیر)

حالا برای ذخیره برنامه ، کلیدهای ترکیبی Ctrl+S رو انتخاب کنید و یا از منوی File ، گزینه save رو انتخاب کنید و برنامه رو ذخیره کنید .

توجه ! در هنگام ذخیره برنامه ، توجه کنید که در قسمت سیو کردن و در قسمت save as type ، گزینه python files انتخاب شده باشه ؛ اگر روی All files بود ، باید فایل رو با پسوند py. ذخیره کنید و یا گزینه python files رو انتخاب کنید تا نیاز نباشه پسوند رو خودتون وارد کنید :


برنامه رو باز کنید و یک بار باهاش کار کنید ؛ دیدید؟ بعد اینکه باز شد و یکبار باهاش کار کردید ، بطور خودکار بسته شد ! راستی ، فایل با فرمت py. هست ؛ یعنی اگه فایل رو به دوستاتون بدید که برنامه پایتون رو نصب نکرده باشن ، نمیتونن برنامه رو باز کنن !

در آموزش های بعدی ، این رو آموزش خواهیم داد که برنامه تا هروقت که خودمون برنامه رو بخوایم ببندیم ، باز باشه ؛ همچنین ، بتونیم برنامه رو به اپلیکیشن ویندوزی تبدیل کنیم تا همه بتونن استفاده کنن !

با نظراتتون ، به ما انرژی بدید تا زودتر آموزش ها رو قرار بدیم !