python判斷輸入數據是否為數組或者字母


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

例如:

Stri = raw_input("please input the number:")

if Stri.isdigit():

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

Stri為字符串
Stri.isalnum() 所有字符都是數字或者字母
Stri.isalpha() 所有字符都是字母
Stri.isdigit() 所有字符都是數字
Stri.islower() 所有字符都是小寫
Stri.isupper() 所有字符都是大寫
Stri.istitle() 所有單詞都是首字母大寫,像標題
Stri.isspace() 所有字符都是空白字符、\t、\n、\r

 

Stri.center(width,"#") 字符串居中,默認左右填充的是空格

width=10

###abc####

Stri.count(需要查找的字符串,開始位置默認0,截至位置(不包含本身)) # 返回的是查找到的值

Stri.find(需要查找的字符串,開始位置默認0,截至位置(不包含本身))# 返回的是查找到的值的下標,沒有找打返回-1

Stri.Striip()   返回的是去除字符串左右空白字符(原字符串不變)

Stri.lStriip()   返回的是去除字符串空白字符(原字符串不變)

Stri.rStriip()   返回的是去除字符串空白字符(原字符串不變)

Stri.title()  返回的是字符串中所有英文單詞首字母大寫

Stri.lower()   返回的是字符串中所有字符都成小寫
Stri.upper()   返回的是字符串中所有字符都成大寫
Stri.replace(old,new,count)  使用new字符串替換count個old字符串

 

上述的主要是針對整型的數字,但是對於浮點數來說就不適用了,那么浮點數怎么判斷呢,一直在糾結這個問題,為什么非要區分整型和浮點數呢,既然都是參與運算的,全部適用浮點數不是一樣嗎,在得到結果后,直接轉換為int型不是一樣嗎,為什么非要糾結在前期去判斷是否整型或者浮點數呢,有了這樣的思路,下面就好做了,例如:

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

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

 

Stri = raw_input("please input the number:")

try:
    f = float(Stri)
exception ValueError:
    print("輸入的不是數字!")

==========================================================

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

#引用re正則模塊

import re

float_number = Stri(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之外的字符),

所以需要轉義。

小數部分同理,$表示字符串以此結尾。

 

才開始學正則,有錯誤的地方請大家指正。


免責聲明!

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



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