在接收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
上述的主要是針對整型的數(shù)字,但是對于浮點數(shù)來說就不適用了,那么浮點數(shù)怎么判斷呢,一直在糾結(jié)這個問題,為什么非要區(qū)分整型和浮點數(shù)呢,既然都是參與運算的,全部適用浮點數(shù)不是一樣嗎,在得到結(jié)果后,直接轉(zhuǎn)換為int型不是一樣嗎,為什么非要糾結(jié)在前期去判斷是否整型或者浮點數(shù)呢,有了這樣的思路,下面就好做了,例如:
我們可以通過異常來判斷,異常語法如下:
try:???? {statements} exception: {Exception Objects}???? {statements}
str = raw_input("please input the number:")
try:???? f = float(str) exception ValueError:???? print("輸入的不是數(shù)字!")
還有一種純粹判斷是否為浮點數(shù)的方法,使用正則表達(dá)式:
1.#引用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)于這個正則表達(dá)式,解釋一下:
^[-+]?[0-9]+\.[0-9]+$?
^表示以這個字符開頭,也就是以[-+]開頭,[-+]表示字符-或者+之一,
?表示0個或1個,也就是說符號是可選的。
同理[0-9]表示0到9的一個數(shù)字,+表示1個或多個,也就是整數(shù)部分。
\.表示的是小數(shù)點,\是轉(zhuǎn)義字符因為.是特殊符號(匹配任意單個除\r\n之外的字符),
所以需要轉(zhuǎn)義。
小數(shù)部分同理,$表示字符串以此結(jié)尾。
判斷輸入是否全為數(shù)字、字符等
s為字符串
s.isalnum() 所有字符都是數(shù)字或者字母,為真返回 Ture,否則返回 False。
s.isalpha() 所有字符都是字母,為真返回 Ture,否則返回 False。
s.isdigit() 所有字符都是數(shù)字,為真返回 Ture,否則返回 False。
s.islower() 所有字符都是小寫,為真返回 Ture,否則返回 False。
s.isupper() 所有字符都是大寫,為真返回 Ture,否則返回 False。
s.istitle() 所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。
s.isspace() 所有字符都是空白字符,為真返回 Ture,否則返回 False。
例如:
s = 'I LOVE YOU' s.isupper() True
這篇文章就介紹到這了,希望大家以后多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
