Python中判斷input()輸入的數(shù)據(jù)的類型
在pyhton中,經(jīng)常會用到input()語句,但是input()語句輸入的內(nèi)容只能時字符串類型,而我們經(jīng)常要輸入int類型的數(shù)據(jù)等,那么就需要用到int()方法給輸入的內(nèi)容強(qiáng)制轉(zhuǎn)換為int類型:
a = int(input())
但是這樣就會有一個問題,一旦我輸入的不是數(shù)字,而是字母、標(biāo)點(diǎn)等,這樣就會報(bào)錯,因?yàn)樽帜笩羰遣荒苻D(zhuǎn)成int類型的,所以我們就要判斷一下,輸入的內(nèi)容為什么:
str = input() if str.isdigit() : a = int(str)
這樣就可以判斷輸入的是不是數(shù)字,還是字母、符號等
方法:
str.isdigit()為True表示輸入的所有字符都是數(shù)字
str.isalnum()為True表示輸入的所有字符都是數(shù)字或者字母
str.isalpha()為True表示輸入的所有字符都是字母
str.isdigit()為True表示輸入的所有字符都是數(shù)字
str.islower()為True表示輸入的所有字符都是小寫
str.isupper()為True表示輸入的所有字符都是大寫
str.istitle()為True表示輸入的所有單詞都是首字母大寫,像標(biāo)題
str.isspace()為True表示輸入的所有字符都是空白字符、\t、\n、\r
更新一下:
注意,用isdigit()來判斷小數(shù),比如3.14就會返回FALSE。
isdigit()只是判斷輸入的是不是純數(shù)字,不是判斷你輸入的是不是一個數(shù),這個方法只是判斷你輸入的是什么字符,并不是判斷你輸入的是什么類型,因?yàn)闊o論如何,輸入的值都為字符串類型,小數(shù)中有小數(shù)點(diǎn),當(dāng)然會返回FALSE了。
如何判斷輸入是不是小數(shù),首先判斷輸入有沒有小數(shù)點(diǎn),幾個小數(shù)點(diǎn),小數(shù)點(diǎn)的位置、再按照小數(shù)點(diǎn)進(jìn)行切片,切為兩片,判斷每一片是否都為純數(shù)字
下面是一個類型轉(zhuǎn)換的方法,將輸入的字符串轉(zhuǎn)換為int或float類型的數(shù)據(jù):
# 將字符串轉(zhuǎn)為int或float類型
def change_type(str):
# 先判斷輸入是不是字符串類型,是的話就繼續(xù),不是的話就將輸入返回
if type(str) == type("123"):
# 判斷輸入是不是純數(shù)字
if str.isdigit() :
# 將輸入轉(zhuǎn)為int類型并返回
result = int(str)
print(result,"是整數(shù) 類型是",type(result))
return result
else :
# 判斷字符串中是否只有一個小數(shù)點(diǎn)、小數(shù)點(diǎn)是不是不在字符串的開始或結(jié)尾
if str.count(".")==1 and not str.startswith(".") and not str.endswith("."):
# 將字符串按小數(shù)點(diǎn)切為兩片,整數(shù)部分與小數(shù)部分
# 整數(shù)部分
left = str.split('.')[0]
# 小數(shù)部分
right = str.split('.')[1]
# 判斷切片的部分是不是純數(shù)字
if left.isdigit() & right.isdigit():
# 將輸入轉(zhuǎn)為float類型并返回
result = float(str)
print(result,"是小數(shù) 類型是",type(result))
return result
else:
# 返回字符串
print("輸入的變量不是字符串類型")
result = str
return result到此這篇關(guān)于Python中判斷input()輸入的數(shù)據(jù)的類型的文章就介紹到這了,更多相關(guān)Python input輸入的類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)接口自動化測試的方法詳解
Python接口自動化測試是一種高效、可重復(fù)的軟件質(zhì)量驗(yàn)證方法,尤其在現(xiàn)代軟件開發(fā)中,它已經(jīng)成為不可或缺的一部分,本文將深入探討如何使用Python進(jìn)行接口自動化測試,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
python利用faker庫批量生成測試數(shù)據(jù)
小編經(jīng)常需要批量測試一些數(shù)據(jù),有時候測試環(huán)境又暫時沒數(shù)據(jù),特意找了一下,發(fā)現(xiàn)有一個可批量生成數(shù)據(jù)的python庫—-faker,現(xiàn)在就介紹一下它的使用方法,如果你不想一行一行輸入代碼,小編提供了完整測試代碼,見文末代碼章節(jié)。2020-10-10
Python使用scipy模塊實(shí)現(xiàn)一維卷積運(yùn)算示例
這篇文章主要介紹了Python使用scipy模塊實(shí)現(xiàn)一維卷積運(yùn)算,結(jié)合實(shí)例形式分析了scipy模塊的功能及使用scipy模塊進(jìn)行一維卷積運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09

