這篇文章主要介紹python判斷輸入是不是數(shù)字的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元鄂城做網(wǎng)站,已為上家服務(wù),為鄂城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
在接收raw_input方法后,判斷接收到的字符串是否為數(shù)字
例如:
str = raw_input("please input the number:") if str.isdigit():
為True表示輸入的所有字符都是數(shù)字,否則,不是全部為數(shù)字
str為字符串 str.isalnum() 所有字符都是數(shù)字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是數(shù)字 str.islower() 所有字符都是小寫 str.isupper() 所有字符都是大寫 str.istitle() 所有單詞都是首字母大寫,像標(biāo)題 str.isspace() 所有字符都是空白字符、\t、\n、\r
上述的主要是針對(duì)整型的數(shù)字,但是對(duì)于浮點(diǎn)數(shù)來說就不適用了,那么浮點(diǎn)數(shù)怎么判斷呢,一直在糾結(jié)這個(gè)問題,為什么非要區(qū)分整型和浮點(diǎn)數(shù)呢,既然都是參與運(yùn)算的,全部適用浮點(diǎn)數(shù)不是一樣嗎,在得到結(jié)果后,直接轉(zhuǎn)換為int型不是一樣嗎,為什么非要糾結(jié)在前期去判斷是否整型或者浮點(diǎn)數(shù)呢,有了這樣的思路,下面就好做了,例如:
我們可以通過異常來判斷,異常語法如下:
try: {statements} exception: {Exception Objects} {statements} str = raw_input("please input the number:") try: f = float(str) exception ValueError: print("輸入的不是數(shù)字!")
==========================================================
還有一種純粹判斷是否為浮點(diǎn)數(shù)的方法,使用正則表達(dá)式:
#引用re正則模塊
import re
float_number = str(input("Please input the number:"))
#調(diào)用正則
value = re.compile(r'^[-+]?[0-9]+\.[0-9]+$') result = value.match(float_number) if result: print "Number is a float." else: print "Number is not a float."
2. 關(guān)于這個(gè)正則表達(dá)式,解釋一下:
^[-+]?[0-9]+\.[0-9]+$
^表示以這個(gè)字符開頭,也就是以[-+]開頭,[-+]表示字符-或者+之一,
?表示0個(gè)或1個(gè),也就是說符號(hào)是可選的。
同理[0-9]表示0到9的一個(gè)數(shù)字,+表示1個(gè)或多個(gè),也就是整數(shù)部分。
\.表示的是小數(shù)點(diǎn),\是轉(zhuǎn)義字符因?yàn)?是特殊符號(hào)(匹配任意單個(gè)除\r\n之外的字符),
所以需要轉(zhuǎn)義。小數(shù)部分同理,$表示字符串以此結(jié)尾。
以上是python判斷輸入是不是數(shù)字的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!