微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决运行简单的 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 举报,一经查实,本站将立刻删除。