[英]comma in raw_input function
這將是什么輸出? 我看到了輸出,但無法理解為什么會發生。
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
裝置x
實際上是一個tuple
包含的用戶輸入。 調用該函數時,實際上是將元組乘以一個整數,該整數僅將元組( x
)乘以y
倍。
例如:
>>> x = 2,
>>> x * 5
(2, 2, 2, 2, 2)
>>> x = 2
>>> x * 5
10
逗號使x
等於大小為1的元組(包含int)。
簡單測試:
>>> a = 1,
>>> print a
(1,)
這樣做的一個大錯誤是,如果x和y不是數字(又稱字符串),則該函數將被弄亂。 這可以通過以下方式解決: try: mul = float(x) * float(y)
然后,捕捉x或y不是數字( except TypeError: print('Please do not give a string...')
時的情況except TypeError: print('Please do not give a string...')
在這種情況下,您想表明mul無效,因此,您說mul = None
現在您可以按照try和except語句return mul
。
這樣可以確保輸入的是小數點數字,而不是字符。
首先,您定義了一個稱為multiple
的函數,該函數將x
和y
( multiple
參數)相乘,然后返回該值。 然后,它接受兩個不同變量x
和y
(與上面的參數不同),相乘(通過調用multiple
),然后將它們print
出來,這就是您所看到的結果。
但是,逗號僅將x
定義為元組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.