你好,我是python的初学者。我使用 python 3 并且我的代码有问题。我做了完全相同的事情,但加法和减法,效果很好,但是当我用除法和乘法做时,我得到了一个错误。这是代码:
import math
division = 'division'
multiplication = 'multiplication'
class calculator:
math = input('Enter division or multiplication: ')
if math == division:
x = float(input('First number: '))
y = float(input('Second number: '))
def division(x,y):
div = x / y
print(div)
division(x / y)
elif math == multiplication:
x = int(input('First number: '))
y = int(input('Second number: '))
def multiplication(x,y):
mult = x * y
print(mult)
multiplication(x * y)
else:
print('Invalid input!')
这是我得到的错误:
Traceback (most recent call last):
File "/Users/linusekman/Desktop/test1.py", line 6, in <module>
class calculator:
File "/Users/linusekman/Desktop/test1.py", line 16, in calculator
division(x / y)
TypeError: division() missing 1 required positional argument: 'y'
问题可能是什么?
将division(x / y)
和multiplication(x * y)
更改为division(x , y)
和multiplication(x , y)
,否则您将x/y
和x*y
的解决方案传递给函数,而不是两个值本身。
旁注:如果你不使用它,你不应该import math
,并且你已经在类的斜率中覆盖了变量math
,math = input('Enter division or multiplication: ')
.
另一个旁注:类结构对于你正在做的事情不是必需的,如果你想重用这段代码,请将类更改为函数。
你想要division(x, y)
而不是division(x / y)
。(乘法也是如此。
让我们看看你的例子 (^.^)
if math == division:
x = float(input('First number: '))
y = float(input('Second number: '))
def division(x,y):
div = x / y
print(div)
division(x / y) <-(pay attention to this line!)
当你创建一个名为 def division (x,y)
的函数时,你声明这个函数将接受两个变量。
你接着说,这个函数将打印出当你将x除以y(div = x/y
和print(div)
(时的商。
当你想调用你的divide 函数时,你必须给它传递两个变量,它可以在这两个变量上执行你分配给它的任务。你不会x/y
传递它,因为 1( 它需要两个变量 2( 函数将使用传递的两个变量来做到这一点。