亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當需要轉換為另一個字符串時,如何將txt文件中的字符串轉換為整數?

當需要轉換為另一個字符串時,如何將txt文件中的字符串轉換為整數?

守候你守候我 2023-10-31 14:33:12
我正在嘗試為我的游戲創建排行榜。游戲結束后,它會詢問姓名并計算分數。但是,當我將名稱和分數寫入 Leaderboard.txt 文件并嘗試再次將它們導入回來時,我無法將數字從字符串轉換回 int。我需要將其轉換回 int,以便我可以按獲得的最高分數對排行榜進行排序,或者嗎?score = 5name = "Adam"file = open("leaderboard.txt", "a+")file.write(name+" ")file.write(str(score)+"\n")file.close()file = open("leaderboard.txt", "r")list_of_lists = []for line in file:  list_line = line.split()  list_of_lists.append(list_line)for x in range(0,len(list_of_lists)):  if list_of_lists[x][1].isdigit == True:    x = int(x)print(list_of_lists)這不起作用,數字保持字符串狀態,但不會出現錯誤。我真的不知道我錯過了什么。這是將姓名和分數寫入 .txt 文件的正確方法嗎?有沒有更好的方法來思考這個問題?我真的非??释麕椭?。
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

幾乎總是最好將代碼的其余部分轉換為最方便的格式,并盡可能靠近入口點。您的代碼希望有一個字符串和一個整數。在將數據添加到結構之前,在從文件中讀取數據時進行轉換list_of_lists:


score = 5

name = "Adam"


file = open("leaderboard.txt", "a+")

file.write(name+" ")

file.write(str(score)+"\n")

file.close()


file = open("leaderboard.txt", "r")


list_of_lists = []

for line in file:

    list_line = line.split()

    list_line[1] = int(list_line[1])  # This is the new code

    list_of_lists.append(list_line)


print(list_of_lists)

這樣,您的內部數據結構list_of_lists將包含程序其余部分所需的內容;無需進行后續改造。您會注意到我的示例省略了第二個for循環;我們在初始讀取時處理了轉換。


int是這里的新概念。但是,通過在文件讀取循環中執行此操作,您可以避免在后續循環中進行額外的后處理。


作為一個單獨的說明,如果輸入文件中的一行不符合預期,通常最好了解一下您希望發生的情況;輸入驗證。例如,您可能想悄悄地跳過空白行,并且可能想向 STDERR 發出警告,然后跳過任何不遵循“string[space]integer”格式的行。


查看完整回答
反對 回復 2023-10-31
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號