新聞中心
在接收raw_input方法后,判斷接收到的字符串是否為數(shù)字

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了和布克賽爾蒙古免費(fèi)建站歡迎大家使用!
例如:
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ù)來(lái)說(shuō)就不適用了,那么浮點(diǎn)數(shù)怎么判斷呢,一直在糾結(jié)這個(gè)問(wèn)題,為什么非要區(qū)分整型和浮點(diǎn)數(shù)呢,既然都是參與運(yùn)算的,全部適用浮點(diǎn)數(shù)不是一樣嗎,在得到結(jié)果后,直接轉(zhuǎn)換為int型不是一樣嗎,為什么非要糾結(jié)在前期去判斷是否整型或者浮點(diǎn)數(shù)呢,有了這樣的思路,下面就好做了,例如:
我們可以通過(guò)異常來(lái)判斷,異常語(yǔ)法如下:
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è),也就是說(shuō)符號(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學(xué)習(xí)網(wǎng)- 專業(yè)的python自學(xué)、交流公益平臺(tái)!
網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)Python教程:python如何判斷輸入是不是數(shù)字
轉(zhuǎn)載注明:http://m.fisionsoft.com.cn/article/coepdpo.html


咨詢
建站咨詢
