我必须制作两个递归函数,在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 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()
答案 0 :(得分:1)
假设您使用的是Python 3,a
和b
都是字符串。如果要将它们转换为整数,可以执行以下操作:
a = int(input("Please enter your first value.\n"))
b = int(input("Please enter your second value.\n"))
答案 1 :(得分:0)
您可能正在使用Python 3。
Python 3中的input()
函数将始终返回一个字符串,因此a
和b
将成为代码中的字符串而不是整数。您必须使用
a = int(a)
和b = int(b)
答案 2 :(得分:0)
您可能提供了错误,甚至更好地用Google搜索了错误。我运行你的代码,问题是你的输入是一个字符串,但你试图将它作为整数使用。
这些行:
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()