1. 程式人生 > >判斷Python輸入是否為數字、字元

判斷Python輸入是否為數字、字元

當鍵入字串8字串時候,我們自己就可以判斷了!

一:

import re
print("我現在要寫一個檔案數字猜遊戲數字遊戲:")


temp=input("請你輸入一個數字,猜對了有獎,猜錯了,沒有關係:")
guess=str(temp)


while guess != '8':
        temp=input("還沒有猜對,繼續猜猜看,不要放棄:")
        guess=str(temp)


if guess == '8':
    print("你猜對了!")
else:
    if guess > '8':
        print("數字猜大了!")
    else:
        print("數字猜小了")

二:

str=input("請輸入數字:")
if str.isdigit():
    print("對了,你輸入的是數字")
else:
    print("你輸入的不是數字")

三:

第一種:
利用str函式將數字轉化成字串,再利用len函式判斷位長。

  1. a=Int(raw_input("the number you want type in:")  
  2. b=len(str(a))  
  3. print b  

第二種:

  1. c=0
  2. a=int(raw_input("the number you want type in:"))  
  3. while a!=0:  
  4.       a=a/10
  5.       c +=1
  6. print c  

四:

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

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

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

#引用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之外的字元),

所以需要轉義。

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

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