运行代码时,我需要帮助修复代码错误 错误是
"TypeError: addition() missing 1 required positional argument: 'b'"
我需要开发一个Python程序来显示菜单
一个。计算加法
B中。计算减法
℃。计算分工
d。计算乘法
Q值。退出
请输入您的选择:
•在你的程序中,你需要编写五个函数。
def menu( ):
def addition(a, b):
def subtraction(a, b):
def division(a, b):
def multiplication(a, b):
•根据选择, 将要求两个数字从键盘输入。 执行程序后,将显示结果。
•程序将被终止,直到'Q'被击中。
if choice=="A":
num1=input("enter 1st number")
num2=input("enter 2nd number")
sum=addition("num1+num2")
print("num1+num2")
if choice=="B":
num1=input("enter your 1st number")
num2=input("enter your 2nd number")
difference=subtraction("num1-num2")
print("difference")
if choice=="C":
num1=input("enter your 1st number")
num2=input("enter your 2nd number")
quotient=division("num1/num2")
print("quotient")
if choice=="D":
num1=input("enter your 1st number")
num2=input("enter your 2nd number")
product=multiplication("num1*num2")
print("product")
if choice=="Q":
print("quit")`
答案 0 :(得分:1)
就像错误所说:
"TypeError: addition() missing 1 required positional argument: 'b'"
您提到添加功能的实现是:
def addition(a,b)
sum = a + b
return sum
此功能接受两个参数a
和b
。
但是,当您调用此函数时,它只接受一个参数:
sum=addition("num1+num2")
"num1+num2"
是一个字符串,它甚至不是变量,因此它被视为一个参数。
我认为你的意思是将变量传递给函数,你应该这样做
sum=addition(num1,num2)
引用中的所有内容都是字符串,不要使用变量。 我打赌你会在其余的函数调用中遇到类似的问题,所以也要相应地改变它们。
答案 1 :(得分:0)
" num1 + num2" 只会产生一个值,该值也是 string
因为你是在""之间写的。 (引号)。 不要这样做除了字符串以外的所有内容。
你的功能需要两个 参数 (a和b),所以你必须输入这两个分开的参数,这样功能才能完成他的工作,这将是实现操作。
你必须这样做:
if choice=="A":
num1=input("enter 1st number")
num2=input("enter 2nd number")
print(addition(num1,num2)) # <-- Pay attention to this line
# we skipped the variable assignment as the function will return the value by itself.
功能:
def addition(a, b):
sumV=a+b # replace sum by sumV or anything else
return sumV # as others suggested.
所以,这或多或少是你现在所拥有的。但是,它会提供以下输出:
Choice: A
enter 1st number5
enter 2nd number3
53
这是因为您没有指定您为num1和num2分配的输入类型,因此它会像字符串一样威胁它们。 所以,你的函数实际上是连接这些字符串,这就是结果为53而不是8的原因。
为避免这种情况,请更改:
num1=input("enter 1st number")
进入这个:
num1=int(input("enter 1st number"))
# int is specifying you will receive an integer.
# change "int" to "float" if you want to use decimal values.
将其应用于其余代码,它现在应该正常工作:)
更正输出:
Choice: A
enter 1st number5
enter 2nd number3
8