python-3.x - 当它小于范围时在我的文本文件中显示元素?
问题描述
我正在尝试在 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
==========
解决方案
在打印循环中,您需要检查列表的大小是否小于 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])
推荐阅读
- javascript - 使用 vue 数据对象中的变量进行嵌套循环计算会导致代码中断
- spring-boot - Spring ApplicationListener 抛出 RuntimeException 未被@ControllerAdvice 捕获
- javascript - 使用 jQuery 更新选择选项不显示新选项
- shared-libraries - 加载用 Vala 编写并用介子构建的 libpeas 模块失败
- ruby-on-rails - .split 之后的 Ruby .reject 行为怪异
- python - python请求从不同的url获取响应
- html - 具有多列表格布局自动间距的 Gmail 电子邮件不起作用
- jquery - jQuery datepicker css 格式化
- angular - 角度模块中的条件提供程序引发 AOT 错误
- python-3.x - python3结构导入错误:无法导入连接