判斷Python輸入是否為數字

來源:互聯網
上載者:User

標籤:please   cep   首字母   做了   oat   匹配   多個   地方   lower   

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

例如:

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("輸入的不是數字!")

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

還有一種純粹判斷是否為浮點數的方法,使用Regex:

#引用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. 關於這個Regex,解釋一下:

^[-+]?[0-9]+\.[0-9]+$  

^表示以這個字元開頭,也就是以[-+]開頭,[-+]表示字元-或者+之一,

?表示0個或1個,也就是說符號是可選的。

同理[0-9]表示0到9的一個數字,+表示1個或多個,也就是整數部分。

\.表示的是小數點,\是逸出字元因為.是特殊符號(匹配任意單個除\r\n之外的字元),

所以需要轉義。

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

 

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

判斷Python輸入是否為數字

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.