首页 > 解决方案 > 在重置变量时循环主函数

问题描述

刚开始在我的计算基础课上学习 Python。我们必须建立一个程序,为数学创建练习集。用户输入两个数字,一个运算符,然后是一个解,程序会告诉他们它们是否正确/不正确。在那之后,程序应该循环回来,以便用户可以继续练习。该程序应该循环总共 5 个练习集。我有循环,但是当它执行时,它会重复用户最初输入的输入而不是重置,因此用户不能再进行任何输入。我错过了什么?

我尝试了一段时间 True: 在我的全局变量上循环,但这只会导致主函数在没有完成程序的情况下循环。作业非常清楚地表明需要使用 while 循环,因为我的教授提供了一些帮助我们的提示。

num1 = int(input("Enter First Input: "))
num2 = int(input("Enter Second Input: "))
op = str(input("Enter Operator: "))
UserSolution = int(input("Enter Solution: "))
res1 = num1+num2
res2 = num1-num2
res3 = num1*num2
res4 = num1/num2
timesCorrect = 0
timesIncorrect = 0

def main ():
    counter = 0
    while counter < 4:      
        print(num1)
        print(num2)
        print(op)
        print(UserSolution)
        counter = counter + 1

该函数确实像我想要的那样循环,但它并没有像我想要的那样重置变量。

标签: pythonloops

解决方案


您需要将输入语句移动到循环内,例如:

timesCorrect = 0
timesIncorrect = 0

def main ():
    counter = 0
    while counter < 4:
        num1 = int(input("Enter First Input: "))
        num2 = int(input("Enter Second Input: "))
        op = str(input("Enter Operator: "))
        UserSolution = int(input("Enter Solution: "))
        res1 = num1 + num2
        res2 = num1 - num2
        res3 = num1 * num2
        res4 = num1 / num2
        print(num1)
        print(num2)
        print(op)
        print(UserSolution)
        counter = counter + 1

此外,如果您希望它循环五次,则需要将计数器比较更改为< 5, 或<= 4, 而不是< 4.


推荐阅读