运行简单的 Python 计算器时出现逻辑错误

问题描述

昨天我开始学习 Python,到目前为止我很享受它的简单性。今天,我尝试创建一个可以加、减、乘、除和求模的简单计算器。虽然它工作得很好,但每当程序询问用户是否希望在第二次尝试后再次尝试时,都会出现“什么?再试一次”这一行。出现,只有当用户对问题“再试一次?”给出不在 noList 或 yesList 中的答案时才会出现。对不起,如果这些都没有意义,但我会把我的代码放在下面。

functionList = ["add","subtract","multiply","divide","mod"]
yesList = ["yes","yeah","yup","y"]
noList = ["no","nope","nah","n"]

print("Welcome to Bryan's Calculator!")

def calculator():
whatFunction = input("What math function do you want to use (add/subtract/multiply/divide/mod)? ")
if whatFunction == "add":
    numAddOne = float(input("What is your first number? "))
    numAddTwo = float(input("What is your second number? "))
    answerAdd = numAddOne + numAddTwo
    print(str(answerAdd) + " is the answer!")
if whatFunction == "subtract":
    numSubtractOne = float(input("What is your first number? "))
    numSubtractTwo = float(input("What is your second number? "))
    answerSubtract = numSubtractOne - numSubtractTwo
    print(str(answerSubtract) + " is your answer!")
if whatFunction == "multiply":
    numMultiplyOne = float(input("What is your first number? "))
    numMultiplyTwo = float(input("What is your second number? "))
    answerMultiply = numMultiplyOne * numMultiplyTwo
    print(str(answerMultiply) + " is your answer!")
if whatFunction == "divide":
    numDivideOne = float(input("What is your dividend? "))
    numDivideTwo = float(input("What is your divisor? "))
    answerDivide = numDivideOne / numDivideTwo
    print(str(answerDivide) + " is your answer!")
if whatFunction == "mod":
    numModone = float(input("What is your dividend? "))
    numModTwo = float(input("What is your divisor? "))
    answerMod = numModone % numModTwo
    print(str(answerMod) + " is your remainder!")
elif whatFunction not in functionList:
    print("What? Try again.")
    calculator()

def askTryAgain():
tryAgain = input("Try again? ")
if tryAgain in yesList:
    calculator()
if tryAgain in noList:
    print("Thanks for using my calculator!")
    exit()
if tryAgain not in yesList or noList:
    print("What? Try again")
    askTryAgain()
calculator()
askTryAgain()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)