Python 如果答案为;M";:印刷品(多(a、b))
我必须在Python中生成两个除法和乘法的递归函数,我不知道下面的代码有什么问题:Python 如果答案为;M";:印刷品(多(a、b)),python,Python,我必须在Python中生成两个除法和乘法的递归函数,我不知道下面的代码有什么问题: def mult(a, b): if a == 0: return 0 elif a == 1: return b else: return mult(a-1, b) + b def div(a, b): if (a >= b): return div(a - b, b) + 1 else: return 0 def
def mult(a, b):
if a == 0:
return 0
elif a == 1:
return b
else:
return mult(a-1, b) + b
def div(a, b):
if (a >= b):
return div(a - b, b) + 1
else: return 0
def main():
a = input("Please enter your first value.\n")
b = input("Please enter your second value.\n")
answer = input("Please enter M or D. M to multiply your 2 values or D for Divide.\n")
if answer == "M":
print(mult(a, b))
elif answer == "D":
print(div(a, b))
main()
假设您使用的是Python 3,
a
和b
都是字符串。如果要将它们转换为整数,可以执行以下操作:
a = int(input("Please enter your first value.\n"))
b = int(input("Please enter your second value.\n"))
您可能正在使用Python3 Python 3中的
input()
函数将始终返回字符串,因此a
和b
将是代码中的字符串,而不是整数。必须使用
a=int(a)
和b=int(b)
您可以提供错误,或者更好的是,用谷歌搜索错误。我运行了您的代码,问题是您的输入是一个字符串,但您试图将其用作整数
这些线路:
a = input("Please enter your first value.\n")
b = input("Please enter your second value.\n")
应该是:
a = int(input("Please enter your first value.\n"))
b = int(input("Please enter your second value.\n"))
您的代码还可以检查小写的“M”和“D”,您可以通过在输入行末尾添加.upper()来完成这项工作
answer = input("Please enter M or D. M to multiply your 2 values or D for Divide.\n").upper()
它做错了什么?