ساخت ماشین تکرار
من یه کدی درست کردم میخوام وقتی که ورودی اشتباهه دوباره همون ورودی رو ازمن بخواد اما تو قسمت اخر این عمل اجرا نمیشه نمیدونم مشکل از چیه؟
alamat_ha = [“+”,”-“,”*”,”/”]
checke_a=0
checke_b=1
alamat_ha_dict= {
‘jam’ : “+”,
‘menha’: “-“,
‘zarb ‘:”*”,
‘tagsim’:”/”
}
for shomarande in range (0,99999) :
try:
if checke_a == 0:
a = int (input(“Enter Number 1 : “))
checke_a = 1
alamat = int(input(
“alamat :n1)+n2)-n3)*n4)/n==> ”
))
checke_b == 1
b = int(input(“Enter Number 2 : “))
checke_b=0
else:
alamat = int(input(
“alamat :n1)+n2)-n3)*n4)/n==> ”
))
except ValueError as ve:
print(“Enter Int Number !!!”)
continue
if alamat == 1:
print(f”your answer : {a} {alamat_ha_dict[‘jam’]} {b} = {a + b}”)
if alamat == 2:
print(f”your answer : {a} {alamat_ha_dict[‘menha’]} {b} = {a – b}”)
if alamat == 3:
print(f”your answer : {a} {alamat_ha_dict[‘zarb’]} {b} = {a * b}”)
if alamat == 4:
print(f”your answer : {a} {alamat_ha_dict[‘tagsim’]} {b} = {a / b}”)
تو بخش b وقتی ورودی اشتباه میدم دوباره از alamat شروع میشه اما من میخوام هر کدوم رو اشتباه زدم از اون شروع کنه
پاسخ ها ( ۴ )
درود
برای مثال همچین چیزی میتونه باشه
اگر ورودی اینتیجر بود، میتونید int شده ی ورودی رو به یک لیست append کنید.
یا باید به function تبدیلش کنی
یا از while استفاده کنی
مثل این:
import re
name = input(“What is your name? “).strip()
while not re.match(‘[A-Za-z ]+’, name):
name = input(” nInvalid nYou should enter string characters: “)
else: print(f”Your name is {name}”)
من یمدت همین مشکل رو داشتم
بعد اومدم با استفاده از def اون کارم به function تبدیل کردم و براش حلقه شرطی while تعیین کردم
سلام بهتر هست از try و exception استفاده کنید