目次
1. トピックの要件
プログラミングテンプレートを確認し、添付されているdata.txtの内容を読み込み、1行目の生徒の合計点を計算し、入出力例を参考に結果を画面に直接出力します。プログラム内で指定されたフレームの内容を変更してはなりません。
特別な注意事項: 学生が IDLE でプログラムする場合は、.py ファイルと data.txt ファイルを同じディレクトリに配置してください。
例 1:
输入:无
输出:"314"
data.txt の内容は次のとおりです。
李启睿,110,115,119
上記の内容を出力するコード行を追加します。元のコードは次のとおりです。
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
———————————————————————
2、さまざまなソリューション
1. 公式ソリューション
eval を使用して文字を追加した後に数式を計算し、同時にリストのスライスを使用します
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
print(eval(line[1])+eval(line[2])+eval(line[3]))
2. 公式ソリューションの最適化
eval で文字列の計算ができることを考えると、まず数値を加算してから eval で計算できるので、スライスが減り、eval を複数回使用することができ、実行効率が高くなります。
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
print(eval("+".join(line[1:])))# 把数字字符用加号拼接后用eval进行脱字符计算,这里用上了"".join()
3. リストの把握方法
リスト内包表記を使用して数値を数値に変換し、計算して出力します。
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
print(sum([int(i) for i in line[1:]]))
リスト行をスライスし、int で文字を数値に変換し、組み込み関数 sum を使用して演算します。
4. マップメソッドの使用
map 関数を使用して各文字を数値に変換し、sum を使用して計算し、最後に結果を出力します。
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
print(sum(map(int,line[1:])))
5. ポップメソッドを使用する
まず、pop(0) で最初の要素を削除し、合計を求めます。
with open("data.txt","r",encoding="utf-8") as fi:
line = fi.readline().split(',')
line.pop(0)
print(eval("+".join(line)))
3. 放課後の振り返り
- 公式の解決策は確かにそうではありませんが、Python 自体は非常に柔軟なプログラミング言語なので、同じ問題を解決するためにさまざまな方法を使用することで、心を開いて個人のプログラミング能力とレベルを向上させることができます。
- Python の組み込み関数は非常に豊富で強力なので、これらを総合的に活用すれば、半分の労力で 2 倍の成果を生み出すことができます。