首页 > 解决方案 > 当它小于范围时在我的文本文件中显示元素?

问题描述

我正在尝试在 Python 3 中为我的游戏创建前 5 名排行榜。

这就是我所拥有的

Top_Score = open("highscore.txt", "r+")
score_list = []
    
print("   Top 5")
print("==========")
for line in Top_Score.readlines():  # Read lines
    score_list.append(line)
score_list.sort()
for i in range(5):
    print("Pos", str(i + 1), ":", score_list[i])
print("==========")
Top_Score.close()

高分.txt

50
18
20
40
50
60
70

输出

   Top 5
==========
Pos 1 : 18

Pos 2 : 20

Pos 3 : 40

Pos 4 : 50

Pos 5 : 50

==========

但是,如果它小于范围(5)而没有任何错误,我如何在我的文本文件中显示元素?任何帮助,将不胜感激

示例 highscore.txt

50
18
20

示例输出

   Top 5
==========
Pos 1 : 18

Pos 2 : 20

Pos 3 : 50

==========

标签: python-3.x

解决方案


在打印循环中,您需要检查列表的大小是否小于 5。如果是,则仅循环直到大小。

所以,像这样:

loop_range = 5
if len(score_list) < loop_range:
    loop_range = len(score_list)
for i in range(loop_range):
   print("Pos", str(i + 1), ":", score_list[i])

这可以使用min函数重写,以选择两个数字中较小的一个,5 或大小:

loop_range = min(5, len(score_list))
for i in range(loop_range):
   print("Pos", str(i + 1), ":", score_list[i])

推荐阅读