はここで何が起こっているかを参照してください?
空でない文字列は、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'はあなたが並べ替えることのできるリストではありません。最初に行を読む必要があります。 –
@DisplayNameどうすればそれをより良くすることができますか? –
多分これを見てください:https://docs.python.org/3/library/csv.html?highlight=csv#csv.reader おそらく助けることができるcsvリーダー – SSchneid