Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果答案为;M";:印刷品(多(a、b))_Python - Fatal编程技术网

Python 如果答案为;M";:印刷品(多(a、b))

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

我必须在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()

假设您使用的是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()

它做错了什么?