考慮以下代碼:檢查空號輸入
>>> num = int(raw_input('Enter the number > '))
如果用戶鍵入任何操作,按下「Enter」鍵,我想捕捉。 (捕獲空輸入)
有這樣做的方法有兩種:
- 我做一個簡單的
num = raw_input()
,然後檢查是否num == ''
。之後,我可以將它投射到int
。我收到ValueError
。但在這種情況下,我無法區分非數字輸入和空輸入。
有關如何做到這一點的任何建議?
考慮以下代碼:檢查空號輸入
>>> num = int(raw_input('Enter the number > '))
如果用戶鍵入任何操作,按下「Enter」鍵,我想捕捉。 (捕獲空輸入)
有這樣做的方法有兩種:
num = raw_input()
,然後檢查是否num == ''
。之後,我可以將它投射到int
。我收到ValueError
。但在這種情況下,我無法區分非數字輸入和空輸入。有關如何做到這一點的任何建議?
是這樣的嗎?
num = 42 # or whatever default you want to use
while True:
try:
num = int(raw_input('Enter the number > ') or num)
break
except ValueError:
print 'Invalid number; please try again'
這依賴於一個事實,即適用於一些int()
將簡單地返回這個數字,那emtpy字符串的計算結果爲False
。
完美!謝謝! – user225312 2010-07-25 10:42:04
從非pythoner:
num = your_default_value;
input = get_input();
if(input != '') num = parse_integer(input);
喜歡的東西:
flag = True
while flag:
try:
value = input(message)
except SyntaxError:
value = None
if value is None:
print "Blank value. Enter floating point number"
對於輸入這可以捕獲該異常,並與打印語句提醒用戶空白值
怎麼辦你想在空輸入時發生?將'num'設置爲某個默認值? – Thomas 2010-07-25 10:37:34
@Thomas:是!究竟! – user225312 2010-07-25 10:38:02