看看是怎麼回事?
>>> if "a":
... print ("True!")
... else:
... print("False!")
...
True!
>>>
>>> if "aadasgabherbasdvc23d3wv":
... print ("True!")
... else:
... print("False!")
...
True!
>>>
>>> if "":
... print ("True!")
... else:
... print("False!")
...
False!
>>>
>>> if None:
... print ("True!")
... else:
... print("False!")
...
False!
>>>
任何非空字符串將評估爲True
。空字符串和關鍵字None
評估爲False
(可能有更多示例)。 這意味着無論你輸入什麼,嵌套在if 'a'
下的代碼都會被執行。如果/當你編寫用戶輸入「b」和「c」的代碼時,你會看到這個。
如果要用戶輸入比較字符串'a'
,你會怎麼做:
data = input('How would you like the data? a for alphabetically, b for highest score to lowest and c for average score highest to lowest. press q to exit: ')
if data == 'a':
# do something
關於代碼的其餘部分... Python有csv
模塊。您可以輕鬆地手動拆分csv文件,因爲它應該是逗號分隔,但csv
模塊處理一個稍微更復雜的方式(我不知道,但我認爲它理解值與他們逗號,例如)。
當您使用open()
,不要忘記調用close()
之後。您可以通過使用with
(這被稱爲上下文管理器btw)完全避免這個open/close
業務。那麼你可以做
import csv
with open('scorefile.csv', 'r') as csv_file:
rows = csv.reader(csv_file)
或
with open('scorefile.csv', 'r') as csv_file:
for line in csv_file:
...
或任何你想要的文件執行。關鍵是使用with
負責在讀完數據後自動關閉文件。這樣,你不必記得撥打close()
。
來源
2016-04-28 12:31:26
jDo
請問你的代碼的工作? 'score_file'不是您可以排序的列表,您必須先閱讀這些行。 – 2016-04-28 12:06:59
@DisplayName我怎麼改變它使它更好? –
也許看看這個:https://docs.python.org/3/library/csv.html?highlight=csv#csv.reader 一個CSV閱讀器,大概能有所幫助 – SSchneid