Python中判斷input()輸入的數(shù)據(jù)的類型
在pyhton中,經(jīng)常會(huì)用到input()語句,但是input()語句輸入的內(nèi)容只能時(shí)字符串類型,而我們經(jīng)常要輸入int類型的數(shù)據(jù)等,那么就需要用到int()方法給輸入的內(nèi)容強(qiáng)制轉(zhuǎn)換為int類型:
a = int(input())
但是這樣就會(huì)有一個(gè)問題,一旦我輸入的不是數(shù)字,而是字母、標(biāo)點(diǎn)等,這樣就會(huì)報(bào)錯(cuò),因?yàn)樽帜笩羰遣荒苻D(zhuǎn)成int類型的,所以我們就要判斷一下,輸入的內(nèi)容為什么:
str = input() if str.isdigit() : a = int(str)
這樣就可以判斷輸入的是不是數(shù)字,還是字母、符號(hào)等
方法:
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就會(huì)返回FALSE。
isdigit()只是判斷輸入的是不是純數(shù)字,不是判斷你輸入的是不是一個(gè)數(shù),這個(gè)方法只是判斷你輸入的是什么字符,并不是判斷你輸入的是什么類型,因?yàn)闊o論如何,輸入的值都為字符串類型,小數(shù)中有小數(shù)點(diǎn),當(dāng)然會(huì)返回FALSE了。
如何判斷輸入是不是小數(shù),首先判斷輸入有沒有小數(shù)點(diǎn),幾個(gè)小數(shù)點(diǎn),小數(shù)點(diǎn)的位置、再按照小數(shù)點(diǎn)進(jìn)行切片,切為兩片,判斷每一片是否都為純數(shù)字
下面是一個(gè)類型轉(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 : # 判斷字符串中是否只有一個(gè)小數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python&Matlab實(shí)現(xiàn)螞蟻群算法求解最短路徑問題的示例
本文主要介紹了Python&Matlab實(shí)現(xiàn)螞蟻群算法求解最短路徑問題的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python抓取并保存html頁面時(shí)亂碼問題的解決方法
這篇文章主要介紹了python抓取并保存html頁面時(shí)亂碼問題的解決方法,結(jié)合實(shí)例形式分析了Python頁面抓取過程中亂碼出現(xiàn)的原因與相應(yīng)的解決方法,需要的朋友可以參考下2016-07-07Python+SQLAlchemy輕松實(shí)現(xiàn)管理數(shù)據(jù)庫
QLAlchemy是一個(gè)強(qiáng)大的ORM(對(duì)象關(guān)系映射)庫,它允許您通過Python代碼與關(guān)系型數(shù)據(jù)庫進(jìn)行交互,本文我們將學(xué)習(xí)如何使用Python和SQLAlchemy庫來輕松管理數(shù)據(jù)庫,需要的可以參考下2023-05-05python 動(dòng)態(tài)遷移solr數(shù)據(jù)過程解析
這篇文章主要介紹了python 動(dòng)態(tài)遷移solr數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09使用Python程序抓取新浪在國內(nèi)的所有IP的教程
這篇文章主要介紹了使用Python程序抓取新浪在國內(nèi)的所有IP的教程,作為Python網(wǎng)絡(luò)編程中獲取IP的一個(gè)小實(shí)踐,需要的朋友可以參考下2015-05-05Python+Selenium隨機(jī)生成手機(jī)驗(yàn)證碼并檢查頁面上是否彈出重復(fù)手機(jī)號(hào)碼提示框
這篇文章主要介紹了Python+Selenium隨機(jī)生成手機(jī)驗(yàn)證碼并檢查頁面上是否彈出重復(fù)手機(jī)號(hào)碼提示框,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09使用seaborn繪制強(qiáng)化學(xué)習(xí)中的圖片問題
這篇文章主要介紹了使用seaborn繪制強(qiáng)化學(xué)習(xí)中的圖片問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Python?sklearn預(yù)測評(píng)估指標(biāo)混淆矩陣計(jì)算示例詳解
這篇文章主要為大家介紹了Python?sklearn預(yù)測評(píng)估指標(biāo)混淆矩陣計(jì)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Python整數(shù)與Numpy數(shù)據(jù)溢出問題解決
這篇文章主要介紹了Python 的整數(shù)與 Numpy 的數(shù)據(jù)溢出,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09