在接收raw_input方法後,判斷接收到的字符串是否爲數字git
例如:正則表達式
str = raw_input("please input the number:")spa
if str.isdigit():字符串
爲True表示輸入的全部字符都是數字,不然,不是所有爲數字input
str爲字符串 str.isalnum() 全部字符都是數字或者字母 str.isalpha() 全部字符都是字母 str.isdigit() 全部字符都是數字 str.islower() 全部字符都是小寫 str.isupper() 全部字符都是大寫 str.istitle() 全部單詞都是首字母大寫,像標題 str.isspace() 全部字符都是空白字符、\t、\n、\rit
上述的主要是針對整型的數字,可是對於浮點數來講就不適用了,那麼浮點數怎麼判斷呢,一直在糾結這個問題,爲何非要區分整型和浮點數呢,既然都是參與運算的,所有適用浮點數不是同樣嗎,在獲得結果後,直接轉換爲int型不是同樣嗎,爲何非要糾結在前期去判斷是否整型或者浮點數呢,有了這樣的思路,下面就好作了,例如:io
咱們能夠經過異常來判斷,異常語法以下:import
try: {statements} exception: {Exception Objects} {statements}exception
str = raw_input("please input the number:")語法
try: f = float(str) exception ValueError: print("輸入的不是數字!")
==========================================================
還有一種純粹判斷是否爲浮點數的方法,使用正則表達式:
1.#引用re正則模塊
import re
float_number = str(input("Please input the number:"))
#調用正則
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. 關於這個正則表達式,解釋一下:
^[-+]?[0-9]+\.[0-9]+$
^表示以這個字符開頭,也就是以[-+]開頭,[-+]表示字符-或者+之一,
?表示0個或1個,也就是說符號是可選的。
同理[0-9]表示0到9的一個數字,+表示1個或多個,也就是整數部分。
\.表示的是小數點,\是轉義字符由於.是特殊符號(匹配任意單個除\r\n以外的字符),
因此須要轉義。
小數部分同理,$表示字符串以此結尾。
纔開始學正則,有錯誤的地方請你們指正。