第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python異常/ ValueError /錯誤處理

Python異常/ ValueError /錯誤處理

函數(shù)式編程 2021-03-29 09:49:19
我有一個輸入(稱為names),該輸入被分為三部分(.split),然后將第三個(最后一個)元素轉(zhuǎn)換為整數(shù)并放入列表中即,例如names = "John Smith 3" ,將其分為三部分"John" "Smith" 3 并放入列表中:list1 = ["John", "Smith", 3]現(xiàn)在我的問題是,第三個元素是否作為字符串輸入并且不能轉(zhuǎn)換為整數(shù)("John Smith Three"),如何顯示錯誤并重新輸入用戶名(名稱),以及如何處理錯誤如果用戶輸入"John Jacob Smith 3"(三個以上的元素)。
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

我建議您要求用戶輸入兩個信息:首先輸入他/她的名字,然后輸入幻數(shù)。


如果您確實想從單個輸入中獲取此信息,則可以這樣嘗試


while True:

    name_and_num = raw_input("Your input: ")

    parts = name_and_num.split()

    try:

        firstname, lastname, num = parts[0], parts[1], int(parts[2])

        break

    except (IndexError, ValueError):

        print "Invalid input, please try again"


print firstname, lastname, num


查看完整回答
反對 回復(fù) 2021-04-02
?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

2種解決方法:


這種古老的經(jīng)典嘗試捕獲方法:


message = 'Please enter ...'

while(True):

    print message

    user_input = raw_input().split()

    if len(user_input) != 3:

        message = 'Incorrect number of arguments please try again'

        continue

    try:

        num_value = int(user_input[2])

    except ValueError:

        message = 'Incorrect int value'

        continue

    break

另一種方法是僅使用正則表達式,它應(yīng)如下所示:


import re    

regex = '^\s*(\w+)\s+(\w+)\s+(\d+)\s*$'

p = re.compile(regex)

print 'Please enter ...'

while(True):

    user_input = raw_input()

    m = p.match(user_input)

    if m:

        value1 = m.group(1)

        value2 = m.group(2)

        int_value = int(m.group(3))

        break

    else:

        print 'Incorrect input format, it should be ...'

并不是使用此正則表達式,您就可以匹配具有3個元素(由任意數(shù)量的空格分隔并以int值結(jié)尾)的任何字符串。所以'a b 10'和' a  b     10 '都匹配。


查看完整回答
反對 回復(fù) 2021-04-02
?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

對于第一部分:一種簡單的方法是:


try:

    float(l[2])

except ValueError:

    #error - bad input. user must re enter...

對于第二部分:只需檢查由拆分形成的列表的長度。


查看完整回答
反對 回復(fù) 2021-04-02
  • 3 回答
  • 0 關(guān)注
  • 512 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號