python判斷輸入是不是數(shù)字的方法:
在接收raw_input方法后,判斷接收到的字符串是否為數(shù)字
例如:
str=raw_input("pleaseinputthenumber:")
ifstr.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
上述的主要是針對整型的數(shù)字,但是對于浮點數(shù)來說就不適用了,那么浮點數(shù)怎么判斷呢,一直在糾結(jié)這個問題,為什么非要區(qū)分整型和浮點數(shù)呢,既然都是參與運算的,全部適用浮點數(shù)不是一樣嗎,在得到結(jié)果后,直接轉(zhuǎn)換為int型不是一樣嗎,為什么非要糾結(jié)在前期去判斷是否整型或者浮點數(shù)呢,有了這樣的思路,下面就好做了,例如:
我們可以通過異常來判斷,異常語法如下:
try:
{statements}
exception:{ExceptionObjects}
{statements}
str=raw_input("pleaseinputthenumber:")
try:
f=float(str)
exceptionValueError:
print("輸入的不是數(shù)字!")
==========================================================
還有一種純粹判斷是否為浮點數(shù)的方法,使用正則表達(dá)式:
#引用re正則模塊
importre
float_number=str(input("Pleaseinputthenumber:"))
#調(diào)用正則
value=re.compile(r'^[-+]?[0-9]+\.[0-9]+$')
result=value.match(float_number)
ifresult:
print"Numberisafloat."
else:
print"Numberisnotafloat."
2.關(guān)于這個正則表達(dá)式,解釋一下:
^[-+]?[0-9]+\.[0-9]+$
^表示以這個字符開頭,也就是以[-+]開頭,[-+]表示字符-或者+之一,
?表示0個或1個,也就是說符號是可選的。
同理[0-9]表示0到9的一個數(shù)字,+表示1個或多個,也就是整數(shù)部分。
\.表示的是小數(shù)點,\是轉(zhuǎn)義字符因為.是特殊符號(匹配任意單個除\r\n之外的字符),
所以需要轉(zhuǎn)義。小數(shù)部分同理,$表示字符串以此結(jié)尾。
以上內(nèi)容為大家介紹了python培訓(xùn)之如何判斷輸入是不是數(shù)字,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。