raw_input函数中的逗号

时间:2013-02-17 03:47:49

标签: python

这会是什么输出?我看到输出但不能理解为什么会发生这种情况。

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)

4 个答案:

答案 0 :(得分:4)

在您的代码中,第一个,末尾的raw_input表示x实际上是包含用户输入的tuple。当你调用这个函数时,你实际在做的是将元组乘以一个整数,它只是乘以元组(xy次。

例如:

>>> 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的函数,它将xymultiple的参数)相乘,然后返回该值。然后它需要输入两个不同的变量,xy(与上面的参数不同),乘以(通过调用multiple),print将它们输出,这就是你所看到的输出。

但是,逗号只是将x定义为元组。