久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python 字符串詳解之isdigit小案例

前面我們講了isdigit功能,這個功能只是確認(rèn)字符串中是否都是數(shù)字。

我講一個案例,簡單的猜字游戲,就知道可以用在哪里了。

num = input('請輸入你猜的數(shù)字:').strip()

后面的這個點strip我們前面講過的,防止手抖或者眼神不太好。然后就要做判斷了,比如我們要讓用戶猜的數(shù)字是36,開始做判斷。

num = input('請輸入你猜的數(shù)字:').strip()
if num > 36:
    print('猜大了')
elif num < 36:
    print('猜小了')
else:
    print('猜中了')

當(dāng)然現(xiàn)在有個問題,我們前面這個strip處理的字符串,結(jié)果還是一個字符串,字符串是沒辦法直接和int類型作比較的所以我們還要做一步類型轉(zhuǎn)換,用int這個歌功能把num這個字符串轉(zhuǎn)成int類型,然后再賦值給num。

num = input('請輸入你猜的數(shù)字:').strip()
num = int(num)
if num > 36:
    print('猜大了')
elif num < 36:
    print('猜小了')
else:
    print('猜中了')

這樣能理解吧,num綁定了新的值,原來的值引用計數(shù)為0就被回收了嘛。我們直接開始打印。

我輸入33,就顯示猜小了,這樣只能猜一次,我想讓用戶重復(fù)猜,猜對了才能退出程序。

這應(yīng)該怎么做?我們前面學(xué)過while循環(huán)就能解決這個問題,代碼最上面輸入while 1,這個理解嗎,隱式布爾值嘛,然后猜對了后面增加一個break,結(jié)束循環(huán)。

while 1:
    num = input('請輸入你猜的數(shù)字:').strip()
    num = int(num)
    if num > 36:
        print('猜大了')
    elif num < 36:
        print('猜小了')
    else:
        print('猜中了')
        break

我先輸入錯誤的20,讓我繼續(xù)猜,然后我再輸入正確的,打印猜中了,最后結(jié)束循環(huán)。

但是還有一種情況,有的用戶不按套路來,在里面輸入英文,這樣的話程序就會直接報錯。

這是因為int這個功能他只能轉(zhuǎn)純數(shù)字的字符串,現(xiàn)在我們就可以用到剛剛講的isdigit了。在用戶輸入之后我們以前判斷一下,如果是串?dāng)?shù)字那就轉(zhuǎn)換吃int類型,如果不是串?dāng)?shù)字,就直接打印‘別調(diào)皮了!’,然后下面continue,進入下一次循環(huán)。

while 1:
    num = input('請輸入你猜的數(shù)字:').strip()
    if num.isdigit():
        num = int(num)
    else:
        print('別調(diào)皮了!')
        continue
    if num > 36:
        print('猜大了')
    elif num < 36:
        print('猜小了')
    else:
        print('猜中了')
        break

這樣運行的話,程序怎么樣都不會報錯了。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 字符串詳解之isdigit小案例

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞