Python 中判斷輸入是否為數字的實現代碼


在接收 raw_input 方法后,判斷接收到的字符串是否為數字

例如:

 
1
2
str = raw_input ( "please input the number:" )
if str .isdigit():

為 True 表示輸入的所有字符都是數字,否則,不是全部為數字

str 為字符串 str.isalnum () 所有字符都是數字或者字母 str.isalpha () 所有字符都是字母 str.isdigit () 所有字符都是數字 str.islower () 所有字符都是小寫 str.isupper () 所有字符都是大寫 str.istitle () 所有單詞都是首字母大寫,像標題 str.isspace () 所有字符都是空白字符、\t、\n、\r
上述的主要是針對整型的數字,但是對於浮點數來說就不適用了,那么浮點數怎么判斷呢,一直在糾結這個問題,為什么非要區分整型和浮點數呢,既然都是參與運算的,全部適用浮點數不是一樣嗎,在得到結果后,直接轉換為 int 型不是一樣嗎,為什么非要糾結在前期去判斷是否整型或者浮點數呢,有了這樣的思路,下面就好做了,例如:

我們可以通過異常來判斷,異常語法如下:

try:     {statements} exception: {Exception Objects}     {statements}

str = raw_input("please input the number:")
try:     f = float (str) exception ValueError:     print ("輸入的不是數字!")

還有一種純粹判斷是否為浮點數的方法,使用正則表達式:

1.# 引用 re 正則模塊

?
1
2
3
4
5
6
7
8
9
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 之外的字符),
所以需要轉義。
小數部分同理,$ 表示字符串以此結尾。

判斷輸入是否全為數字、字符等

s 為字符串

s.isalnum () 所有字符都是數字或者字母,為真返回 Ture,否則返回 False。
s.isalpha () 所有字符都是字母,為真返回 Ture,否則返回 False。
s.isdigit () 所有字符都是數字,為真返回 Ture,否則返回 False。
s.islower () 所有字符都是小寫,為真返回 Ture,否則返回 False。
s.isupper () 所有字符都是大寫,為真返回 Ture,否則返回 False。
s.istitle () 所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。
s.isspace () 所有字符都是空白字符,為真返回 Ture,否則返回 False。

例如:

 
1
2
3
s = 'I LOVE YOU'
s.isupper()
True


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM