如何在Python中使用执行循环3次?

2024-09-29 19:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习Python3。下面是基本程序。在这里,我想将重试次数限制为3次。如何在Python中实现。提前谢谢

def add(x,y):
    return x +y
def sub(x,y):
    return x -y    
def mul(x,y):
    return x *y
def div(x,y):
    return x /y

print("Select Operation from below:")
print("1.Addition")
print("2.Subtraction")
print("3.Multiplication")
print("4.Division")

while True:
    choice= int(input("Enter your Choice(1,2,3,4)  from above:"))
    if choice in (1,2,3,4):
        num1 = float(input("Enter first number :"))
        num2 = float(input("Enter second number :"))
        if choice == 1:
            print("Addition of 2 numbers {} and  {} is {} ".format(num1,num2,add(num1,num2)))
        elif choice == 2:
            print("Subtraction of 2 numbers {} and  {} is {} ".format(num1,num2,sub(num1,num2)))
        elif choice == 3:
            print("Multiplication of 2 numbers {} and  {} is {} ".format(num1,num2,mul(num1,num2)))
        elif choice == 4:
            print("Division of 2 numbers {} and  {} is {} ".format(num1,num2,div(num1,num2)))
        break
    else:
        invalidCount =0
        if invalidCount <=3:
            invalidCount += 1 
            print("Invalid Input with retry no {}".format(invalidCount))
        else:
            print("Exceeded maximum number of Invalid re-try")  

             

Tags: andofformatinputreturnifisdef
3条回答

您当前的代码有两个问题:

  1. 您需要在while循环之外声明invalidCount对象
  2. 您缺少要退出循环的break语句

试试这个:

invalidCount =0
while True:
    choice= int(input("Enter your Choice(1,2,3,4)  from above:"))
    if choice in (1,2,3,4):
        num1 = float(input("Enter first number :"))
        num2 = float(input("Enter second number :"))
        if choice == 1:
            print("Addition of 2 numbers {} and  {} is {} ".format(num1,num2,add(num1,num2)))
        elif choice == 2:
            print("Subtraction of 2 numbers {} and  {} is {} ".format(num1,num2,sub(num1,num2)))
        elif choice == 3:
            print("Multiplication of 2 numbers {} and  {} is {} ".format(num1,num2,mul(num1,num2)))
        elif choice == 4:
            print("Division of 2 numbers {} and  {} is {} ".format(num1,num2,div(num1,num2)))
        break
    else:
        if invalidCount <=3:
            invalidCount += 1 
            print("Invalid Input with retry no {}".format(invalidCount))
        else:
            print("Exceeded maximum number of Invalid re-try")
            break

您正在重置变量invalidCount。您需要将invalidCount =0放在循环之前。当有太多的尝试时,你也没有脱离循环。有了这两个变化,它看起来像:

def add(x,y):
    return x +y
def sub(x,y):
    return x -y    
def mul(x,y):
    return x *y
def div(x,y):
    return x /y

print("Select Operation from below:")
print("1.Addition")
print("2.Subtraction")
print("3.Multiplication")
print("4.Division")

invalidCount = 0

while True:
    choice= int(input("Enter your Choice(1,2,3,4)  from above:"))
    if choice in (1,2,3,4):
        num1 = float(input("Enter first number :"))
        num2 = float(input("Enter second number :"))
        if choice == 1:
            print("Addition of 2 numbers {} and  {} is {} ".format(num1,num2,add(num1,num2)))
        elif choice == 2:
            print("Subtraction of 2 numbers {} and  {} is {} ".format(num1,num2,sub(num1,num2)))
        elif choice == 3:
            print("Multiplication of 2 numbers {} and  {} is {} ".format(num1,num2,mul(num1,num2)))
        elif choice == 4:
            print("Division of 2 numbers {} and  {} is {} ".format(num1,num2,div(num1,num2)))
        break
    else:
        if invalidCount <=3:
            invalidCount += 1 
            print("Invalid Input with retry no {}".format(invalidCount))
        else:
            print("Exceeded maximum number of Invalid re-try")
            break
def add(x,y):
    return x +y
def sub(x,y):
    return x -y    
def mul(x,y):
    return x *y
def div(x,y):
    return x /y

invalidCount =0

print("Select Operation from below:")
print("1.Addition")
print("2.Subtraction")
print("3.Multiplication")
print("4.Division")

while True:
    choice= int(input("Enter your Choice(1,2,3,4)  from above:"))
    if choice in (1,2,3,4):
        invalidCount =0 # This line is that if after some invalid tries if user makes a valid tries then the invalid tries are reset remove this line if you want that number of invalid tries to be fixed
        num1 = float(input("Enter first number :"))
        num2 = float(input("Enter second number :"))
        if choice == 1:
            print("Addition of 2 numbers {} and  {} is {} ".format(num1,num2,add(num1,num2)))
        elif choice == 2:
            print("Subtraction of 2 numbers {} and  {} is {} ".format(num1,num2,sub(num1,num2)))
        elif choice == 3:
            print("Multiplication of 2 numbers {} and  {} is {} ".format(num1,num2,mul(num1,num2)))
        elif choice == 4:
            print("Division of 2 numbers {} and  {} is {} ".format(num1,num2,div(num1,num2)))
        break
    else:
        if invalidCount <=3:
            invalidCount += 1 
            print("Invalid Input with retry no {}".format(invalidCount))
        else:
            print("Exceeded maximum number of Invalid re-try")  
            break

相关问题 更多 >

    热门问题