خوب بعد از چند روز تاخیر میریم سراغ ادامه ی اموزش پایتون با شرط ها!!!
شرط های if
تا حالا ما کنترل زیادی روی برنامه هامون نداشتیم.شرط های if یکی از معروفترین دستورهای قرار دادن شرط و شروط در تمام زبان های برنامه نویسیه.این دستورها رو بهشون روند کنترل هم میگن!چون اونها به ما امکانات و تنظیماتی رو برای داشتن کنترل بیشتر روی برنامه هامون میدن.
بیاین با یه مثال خیلی ساده شروع کنیم کارمونو...
number = input("Choose a number:") #Prompt the user for a number
if number >= 100:
print "That is a high number!"
else:
print "That number is less than 100!"
خوب حالا بررسی نتیجه در صورت وارد شدن عدد های 150 و 50!:
choose a number:150
>>>that is a high number!
>>>choose a number:50
>>>that number is less than 100
! خوب حالا بررسی کد ها:
در خط اول ما از مبحث گرفتن ورودی از کاربر که در درس قبلی مطرح شد استفاده کردیم و بعد در ادامه برای اجرای سریعتر برنامه!کد رو بصورت محاوره ای وارد کردیم....
توی خط دوم گفتیم که اگر عدد وارد شده مساوی یا بیشتر از صد بود(خط دوم) بنویس:این عدد بزرگی است(خط سوم)
و بعد در خط چهارم گفتیم که:در غیر اینصورت(اگر عدد مساوی یا بزرگتر از صد نبود!)بنویس:این عدد کوچیکیه!
خوب بنظر خیلی راحت میاد ولی برای کاربرانی که دارن از پایتون 3استفاده می کنن شکل دستور بهش یه خط اضافه میشه:
Number=input("choose a number:")
Number1=int (number)
If number1 >=100:
Print("this number is a high number!)
Else:
Print("this number is less than 100!)
خوب از اونجایی که نتیجه مشابه هستش به نوع و نمایش مثالی از نتیجه نمی پردازیم!فقط باید بگم که اون تیکه کدی که اضافه شد متغییر رو به عنوان عدد به پایتون می شناسونه در حالی که اگر اینجوری واردش نمی کردیم عدد چاپ نمی شد و اصلا نمی شه یه رشته رو با یه عدد مقایسه نمود!!!
خوب حالا فرض کنیم خواستیم از متغییر های دیگه یا بیشتری استفاده کنیم ایا این امکان داره؟
اره من در لیست زیر بقیه ی مقایسه گر ها رو براتون اوردم:
==این یعنی تساوی!یادتون باشه که ما در این کد از دوتا علامت تساوی استفاده کردیم و اگه از یک علامت تساوی استفاده کنید با متغییر اشتباه گرفته میشه
خیلی خوب حالا می خوام که یه تمرین حرفه ای تر براتون بزارم که کارای محاسبه ای یه خورده پیچیده تری رو انجام میده:
print "************MENU************" #Make a menu
print "1. Add numbers"
print "2. Find perimeter and area of a rectangle"
print "0. Forget it!"
print "*" * 28
option = input("Please make a selection: ") #Prompt user for a selection
if option == 0: #If option is 0, quit statement
quit
elif option == 1: #If option is 1, get input and calculate
firstnumber = input("Enter 1st number: ")
secondnumber = input("Enter 2nd number: ")
addit = firstnumber + secondnumber
print firstnumber, "added to", secondnumber, "equals", addit #show results
elif option == 2: #If option is 2, get input and calculate
length = input("Enter length: ")
width = input("Enter width: ")
perimeter = length * 2 + width * 2
area = length * width
print "The perimeter of your rectangle is", perimeter #show results
print "The area of your rectangle is", area
else: #if the input is anything else its not valid
print "That is not a valid option
!"
همونطوری که احتمالا هم تست کردید می بینید که این برنامه با تمام برنامه هایی که تاحالا نوشتید تفاوت داره و شاید اولین برنامه واقعیتون باشه!!!شما ابتدا به کاربر 3 انتخاب جمع زدن دو عدد یا پیدا کردن محیط و مساحت یه مربع یا مستطیل و همینطور خروج از برنامه رو می دید که کاربر در ابتدا با وارد کردن یکی از عدد های1 و 2 و 3 مشخص می کنه که می خواد کدوم کار رو انجام بده...
توی خط اول ما یه جور تیتر برای برناممون نوشتیم!
توی خط دوم گفتیم که بنویس:1.جمع زدن! و در خط سوم و چهارم گفتیم که بنویس:2.پیدا کردن مساحت و محیط یک مربع مستطیل یا یه 4ضلعی!...توی خط پنجم هم گفتیم که :3.فراموشش کن!!!!
در اینجا و در ابتدای کار به کاربر 3 انتخاب داده میشه که کاربر بعد از وارد کردن یکی از عدد های 1و2و3 کاری که می خواد بکنه رو مشخص می کنه....
تا ابنجا رو می تونستید با یه خورده خلاقیت انجام بدید و برید...!!!
اما از اینجا به بعده که کار این درسه و یه کم روش موشکافی دقیقتری انجام میشه...
در اونجایی که نوشته شده"
option = input("Please make a selection: ")"ما به برنامه یه متغییر به نام option می دیم که برابره با همون انتخاب کاربر...یعنی متغییر رو می سازیم خوب این هم مشکلی نداشت..
اونجایی که گفتیم"if option == 0:" ما یه شرط تعریف کردیم اونم اینه که اگر گزینه انتخابی کاربر،0 بود،از برنامه خارج بشو که البته بخشی که گفته از برنامه خارج بشو در بخش بعدی و با نام quit مشخص شده!!! در ادامه همین کد هم یه دستور نوشتیم که شما اگه اونو ننوشتید بازم مشکلی نیست....
اونجایی که گفتیم"elif option == 1:" (دستور elif مخفف همون if,else خودمونه که اومده ساده تر شده و برای شرط ها و حلقه های تو در تو ازش استفاده شده!)در این بخش به برنامه گفته شده که اگر انتخاب کاربر بود،1 به کاربر اجازه ی وارد کردن دو عدد رو بده و بعد مجمو ع اونها رو بهش بده!
اونجا که گفتیم"elif option == 2"گفته شده که اگه عدد انتخاب شده 2بود ،دو تا عدد بگیره و با اونحا محیط و مساحت یه 4ظلعی رو بگیره...
اخرین بخش هم گفته که اگه عدد وارد شده چیزی بجز این سه تا بود(1و2و3)بنویس:کد وارد شده صحیح نیست!
خوب دیدین که چقدر راحت بود؟فقط یه خورده حواس جمع می خواد که بتونین درست انجامش بدین....
تمرین:حالا می خوام برای تمرین یه برنامه بنویسید که کاربر رو به عنوان مهمان بشناسه و ازش رمز عبور بخواد! اگه رمز عبور درست بود که هیچی و برنامه رو بعد از نوشتن یه چیزی ببنده!و اگه رمز اشتباه بود به کاربر بگه که رمزش اشتباه بوده...