تمرین بخش هشتم:
بریک و کانتینیو
ب ب ک: برنامه ای بنویسید که قیمت روز دلار را به تومان بگیرد، و بعد وارد فرآیندی تکراری شود که همیشه قیمت محصولی را به دلار بگیرد و آن را به تومان تبدیل کند و نمایش دهد. بعد از هر بار انجام این کار از کاربر بپرسد ادامه می دهی ؟ اگر جواب منفی بود برنامه را متوقف کند.
مثال:
Dolar price? 1000
Mahsool be dolar? 3
3000 toman ast
Edame? N
Barname tamam shod
ب ب ک مجموع اعداد 0 تا 1000 را به غیر از ضرایب 5 محاسبه کند. ( از کانتینیو استفاده شود )
400000
ب ب ک از کاربری همین طور نمره بگیرد، هر موقع اعلام کرد که تمام، معدل این اعداد را محاسبه کند.
مثال:
18
19
20
Tamam
Moadel: 19
ب ب ک از دو نفر به ترتیب عدد های صعودی بگیرد، و آن ها مانند بازی هوپ باید به ضرایب 5 هوپ بگویند، اگر فردی اشتباه گفت برای او خطا محاسبه شود و برنامه تمام شود ( در حالت پیشرفته بازی ادامه یابد، هر موقع خطا به 3 تا رسید، فرد مقابل برنده اعلام شود.)
راهنما: برای چک کردن اینکه هر بار نوبت چه فردی است راه های مختلفی وجود دارد، یکی از این راه ها چک کردن باقی مانده عدد فعلی به 2 است ! (عدد های فرد برای نفر اول و نوبت های زوج برای نفر دوم )
نکته: حالت پیشرفته اخیاری است.
مثال:
Nafar1: 1
Nafar2: 2
Nafar1: 3
Nafar2: 4
Nafar1: 5
Khata: nafar1 1 khata
.
.
Nadar1:15
Khata: nafar1 2 khata
.
.
Nadar1:25
Khata: nafar1 3 khata
Nafar2 Barande shod
نکته : اگر دوست دارین این تمرین پر چالش رو خودتون حل کنید، پاسخ زیر رو نگاه نکنید. اگه تمام سعی تون رو کردین و نشد،جواب رو نگاه کنید و کد رو تحلیل کنید:
کد در حالتی که با اولین خطا فرد بازنده اعلام می شود:
for counter in range(1,1000): if counter % 2 == 0: text_input = "nafar2" else: text_input = "nafar1" voroodi = input (text_input) if voroodi == "HOP": if counter % 5 == 0 : print ("True") else: print ("false- not hop", text_input, "bakht") break elif int(voroodi) == counter: if counter % 5 == 0 : print ("False-must hop", text_input, "bakht") break else: print ("True") else: print("False- nobat", text_input, "bakht") break
کد در حالتی که سه بار به هر نفر فرصت خطا داده می شود:
number_fault_1 = 0 number_fault_2 = 0 for counter in range(1,1000): if counter % 2 == 0: text_input = "nafar2" else: text_input = "nafar1" fault_status = False voroodi = input (text_input) if voroodi == "HOP": if counter % 5 == 0 : print ("True") else: print ("false- not hop", text_input, "eshtebah kard") fault_status = True elif int(voroodi) == counter: if counter % 5 == 0 : print ("False-must hop", text_input, "eshtebah kard") fault_status = True else: print ("True") else: print("False- nobat", text_input, "eshtebah kard") fault_status = True if fault_status == True: if text_input=="nafar1": number_fault_1 += 1 print("estebahat nafar1:", number_fault_1) else: number_fault_2 += 1 print("estebahat nafar1:", number_fault_2) if number_fault_1 == 3: print("nafar1 bakht") break elif number_fault_2 == 3: print("nafar2 bakht") break