我正在寫一個程序,加載一個文件中的數據列表,我需要該程序來區分該行中的數據是字符串還是整數。然而,在我所做的代碼中,程序不會區分數字和字符串。Python:如何在if語句中使用類型函數?
數據列表中的一個例子,我有:
HAJOS
ALFRED
1896
1
我的代碼:
def medalsYear():
times = 1
totalGold = 0
totalSilver = 0
totalBronze = 0
while times <= 5:
alpha = fob.readline() #reads file line by line#
print(alpha)
times = times + 1
if type(alpha) == int:
if alpha == 1:
totalGold = totalGold + 1
print("gold medal won")
elif alpha == 2:
totalSilver = totalSilver + 1
print("silver medal won")
elif alpha == 3:
totalBronze = totalBronze + 1
print("bronze medal won")
else:
pass
else:
print('is a string')
print(totalGold, "Gold medals won")
print(totalSilver, "Silver medals won")
print(totalBronze, "Bronze medals won")
我的問題是,當程序讀取具有整線,它不如果該行包含整數並從那裏遍歷相應的if語句,則可以正確確定。目前我的輸出看起來像這樣。
HAJOS
is a string
ALFRED
is a string
1896
is a string
1
is a string
is a string
0 Gold medals won
0 Silver medals won
0 Bronze medals won
done
作爲你的輸出顯示,所有的值*其實都是*字符串。當你從這樣的文件讀取數據時,你總是閱讀字符串。如果你想將它們轉換爲整數,你需要自己做。 – BrenBarn 2014-09-19 19:02:57
提示:'int(alpha)'會將'alpha'轉換爲一個整數,如果不能則拋出'ValueError'。 – 2014-09-19 19:04:23
'如果alpha.isdigit()'也可以工作 – 2014-09-19 19:18:59