爲了判斷一個輸入是整數,浮點數還是字符串,我一直在研究這一兩天。Python:分析輸入,看看它是一個整數,浮點數或字符串
簡而言之,該程序旨在將每個輸入轉換爲一個字符串,循環遍歷每個字符串並檢查列表中的數字。如果字符串的所有數字都是整數,如果它有'。'它是一個浮動,如果它沒有,它不是一個數字。明顯的缺陷是包含字母和'。'的字符串這將被視爲漂浮在這個程序中。
該程序的最終目標是打開文本文件並查看輸入是int,float還是其他。
問題
-Is有什麼辦法可以進一步優化這一方案
我 - 如何可以進一步修改該程序打開文本文件,閱讀,分析,並寫哪個輸入是在列表
第一篇文章!
#Checks input to see if input is integer, float, or character
integer = []
float = []
not_number = []
digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
input_list = [100, 234, 'random', 5.23, 55.55, 'random2']
for i in input_list:
i = str(i)
length = len(i)
count = 0
marker = 0
for j in i:
for k in digits:
if k == j:
count = count + 1
#k loops through digits to see if j single character
#string input is number
if count == length:
integer.append(i)
marker = 1
#count is equal to length if entire string is integers
if j == '.':
float.append(i)
marker = 1
#Once '.' is found, input is "considered" a float
if marker == 1:
break
else:
not_number.append(i)
#If code above else proves that input is not a number the
#only result is that it isn't a number
print ('Integers: ', integer)
print ('Float: ', float)
print ('Not Numbers', not_number)
或者,作爲該模塊的文檔會告訴你,你可以只使用'int','str'和'float'代替'types'模塊:「從Python 2.2開始,內置的工廠函數(如int()和str()也是相應類型的名稱。這現在是訪問該類型而不是使用類型模塊的首選方式。「 – user2357112
比我想象的要容易得多。 – Alexander