这会是什么输出?我看到输出但不能理解为什么会发生这种情况。
def multiple(x,y):
mul = x*y
return mul
x=int(raw_input("Enter value 1 ")),
y=int(raw_input("Enter value 2 "))
print multiple(x,y)
答案 0 :(得分:4)
在您的代码中,第一个,
末尾的raw_input
表示x
实际上是包含用户输入的tuple
。当你调用这个函数时,你实际在做的是将元组乘以一个整数,它只是乘以元组(x
)y
次。
例如:
>>> x = 2,
>>> x * 5
(2, 2, 2, 2, 2)
>>> x = 2
>>> x * 5
10
答案 1 :(得分:2)
逗号使x
等于大小为1的元组(包含int)。
简单测试:
>>> a = 1,
>>> print a
(1,)
答案 2 :(得分:2)
这是一个很大的错误,如果x和y不是数字(也就是字符串),那么函数就会搞砸了。这可以通过说:
try:
mul = float(x) * float(y)
然后,为了捕捉x或y不是数字的情况,
except TypeError:
print('Please do not give a string...')
在这种情况下,你想表明mul无效,所以你说,
mul = None
现在,您可以return mul
与try和except语句一致。
这可以确保输入是小数点数,而不是字符。
答案 3 :(得分:0)
首先,您定义一个名为multiple
的函数,它将x
和y
(multiple
的参数)相乘,然后返回该值。然后它需要输入两个不同的变量,x
和y
(与上面的参数不同),乘以(通过调用multiple
),print
将它们输出,这就是你所看到的输出。
但是,逗号只是将x
定义为元组。