簡體   English   中英

raw_input函數中的逗號

[英]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的函數,該函數將xymultiple參數)相乘,然后返回該值。 然后,它接受兩個不同變量xy (與上面的參數不同),相乘(通過調用multiple ),然后將它們print出來,這就是您所看到的結果。

但是,逗號僅將x定義為元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM