Python判斷輸入的字串是否是整數還是小數

2021-10-12 06:18:53 字數 1597 閱讀 7783

1.今天遇到乙個問題如果輸入的是字串還是整數或者是小數如何將他們區分

首先isdigit()只能用來判斷字串輸入的是否是整數,無法判斷是否是小數

所以,先判斷該字串是否是整數,如果是返回3,

不是的話說明是字母或者是小數,然後判斷是否是小數,如果是小數的話返回1,

是字母的或其他的話返回2

def is_float(i):

if i.isdigit():#只能用來判斷整數的字串

return 3

else:

if i.count('.') == 1: # 先判斷裡面有沒有小數點

new_i = i.split('.') # 去掉小數點

right = new_i[-1] # 將小數分為小數點右邊

left = new_i[0] # 小數點左邊

if right.isdigit(): # 如果小數點右邊是數字判斷小數點左邊

if left.isdigit(): # 如果小數點左邊沒有-直接返回

return 1

elif left.count('-') == 1 and left.startswith('-'): # 如果小數點左邊有-

new_left = left.split('-')[-1] # 判斷去掉後的還是不是數字

if new_left.isdigit(): # 是數字則返回true

return 1

else:

return 2 # 返回2說明是字母

輸入例子:1.2,-1.2,.2,-2.

def is_float(i):

if i.count('.') == 1:#先判斷裡面有沒有小數點

new_i = i.split('.')#去掉小數點

right = new_i[-1]#將小數分為小數點右邊

left = new_i[0]#小數點左邊

if right.isdigit():#如果小數點右邊是數字判斷小數點左邊

if left.isdigit():#如果小數點左邊沒有-直接返回

return true

elif left.count('-')== 1 and left.startswith('-'):#如果小數點左邊有-

new_left = left.split('-')[-1]#判斷去掉後的還是不是數字

if new_left.isdigit():#是數字則返回true

return true

else:

return false

更簡單的判斷方法:

while  true:

num = input("請輸入乙個數字:")

try:

n1=eval(num)

except:

print("輸入的不是數字程式結束")

break

if isinstance(n1,float):

print('輸入的是小數請重新輸入:')

continue

else:

print("輸入的是整數沒問題")

判斷輸入字串是否是有效時間

專案需要,乙個textbox要儲存時間值。由於asp.net的validation的驗證工具的asp comparevalidator只能驗到日期。驗證日期可以參考 如何判斷使用者在textbox輸入的字串就是乙個有效的時間呢?insus.net解決方法並沒有使用正規表示式,也可以實現到相同驗證效果...

判斷輸入字串是否是有效時間

專案需要,乙個textbox要儲存時間值。由於asp.net的validation的驗證工具的asp comparevalidator只能驗到日期。驗證日期可以參考 如何判斷使用者在textbox輸入的字串就是乙個有效的時間呢?insus.net解決方法並沒有使用正規表示式,也可以實現到相同驗證效果...

python判斷字串

python判斷字串 s為字串 s.isalnum 所有字元都是數字或者字母 s.isalpha 所有字元都是字母 s.isdigit 所有字元都是數字 s.islower 所有字元都是小寫 s.isupper 所有字元都是大寫 s.istitle 所有單詞都是首字母大寫,像標題 s.isspace...