這會產生什麼結果?我看到輸出結果,但無法理解爲什麼會發生。raw_input函數中的逗號
所有的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)
這會產生什麼結果?我看到輸出結果,但無法理解爲什麼會發生。raw_input函數中的逗號
所有的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)
首先,定義了一個名爲multiple
功能,它乘以x
和y
(的multiple
參數),然後返回值。然後它需要輸入兩個不同的變量,x
和y
(與上面的參數不一樣),乘以(通過調用multiple
)和print
,這就是您所看到的輸出。
然而,逗號只是將x
定義爲元組。
逗號使得x
等於大小爲1的元組(包含int)。
簡單的測試:
>>> a = 1,
>>> print a
(1,)
在代碼中,所述,
在第一raw_input
的端部裝置x
實際上是包含用戶輸入一個tuple
。當你調用這個函數時,你實際上做的是將這個元組乘以一個整數,這個整數乘以元組(x
)y
倍。
例如:
>>> x = 2,
>>> x * 5
(2, 2, 2, 2, 2)
>>> x = 2
>>> x * 5
10
與此大的誤差是,如果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語句。
這確保輸入是小數點數字,而不是字符。