Python 歌手打分系统教程

在这个教程中,我们将逐步构建一个简单的“歌手打分系统”。本系统将允许用户为歌手的表现给出分数,并计算每个歌手的平均分数。这是一个面向初学者的项目,有助于你熟悉 Python 编程的基本概念及其应用。

流程概述

首先,让我们看一下实现这个系统的步骤。以下是一个简洁的流程表:

步骤 描述
1 创建歌手列表
2 输入每个歌手的得分
3 计算每个歌手的平均分
4 显示每个歌手的得分与平均分信息
5 提供退出功能

每一步骤详细说明

接下来,我们将详细介绍每一步所需的代码和命令。

步骤 1: 创建歌手列表

# 创建包含歌手名字的列表
singers = ["Taylor Swift", "Ed Sheeran", "Adele", "Bruno Mars", "Beyoncé"]

# 打印歌手列表
print("歌手列表:")
for index, singer in enumerate(singers, start=1):
    print(f"{index}. {singer}")
  • 这里我们使用了一个列表 singers 来存储歌手的名字。
  • enumerate 函数将返回带有索引的列表项,我们在打印时加了 start=1,这样索引从1开始,更易于展示。

步骤 2: 输入每个歌手的得分

# 初始化一个空字典,用于存储歌手及其对应得分
scores = {}

# 循环遍历歌手列表,获取用户输入的分数
for singer in singers:
    while True:
        try:
            score = float(input(f"请输入对'{singer}'的评分 (0-10): "))
            if 0 <= score <= 10:
                scores[singer] = score
                break
            else:
                print("评分必须在0到10之间,请重新输入。")
        except ValueError:
            print("无效输入,请输入数字。")
  • 我们使用一个字典 scores 来存储歌手及其得分。
  • 使用 input() 函数获取用户为每个歌手输入的得分,并且使用 try-except 块来处理用户可能输入的错误(如非数字)。
  • 通过 if 条件确保评分在 0 到 10 的范围内。

步骤 3: 计算每个歌手的平均分

# 计算平均分
average_score = sum(scores.values()) / len(scores)

# 打印平均分
print(f"\n平均评分: {average_score:.2f}")
  • 使用 sum(scores.values()) 计算总分,再除以 len(scores) 计算得出平均分。
  • 注意这里格式化输出的分数,保留两位小数。

步骤 4: 显示每个歌手的得分与平均分信息

# 打印每个歌手的得分
print("\n每个歌手的得分:")
for singer, score in scores.items():
    print(f"{singer}: {score:.2f}")
  • 使用 scores.items() 将歌手和对应得分遍历输出。

步骤 5: 提供退出功能

# 提供退出选项
exit_choice = input("\n您想要退出吗?(yes/no): ")
if exit_choice.lower() == 'yes':
    print("感谢使用歌手打分系统,再见!")
else:
    print("您选择继续使用系统。")
  • 可以询问用户是否希望退出系统,通过简单的条件判断进行处理。

完整代码示例

我们将上述所有步骤整合在一起,形成一个完整的程序。以下是最终的代码:

# 创建包含歌手名字的列表
singers = ["Taylor Swift", "Ed Sheeran", "Adele", "Bruno Mars", "Beyoncé"]

# 打印歌手列表
print("歌手列表:")
for index, singer in enumerate(singers, start=1):
    print(f"{index}. {singer}")

# 初始化一个空字典,用于存储歌手及其对应得分
scores = {}

# 循环遍历歌手列表,获取用户输入的分数
for singer in singers:
    while True:
        try:
            score = float(input(f"请输入对'{singer}'的评分 (0-10): "))
            if 0 <= score <= 10:
                scores[singer] = score
                break
            else:
                print("评分必须在0到10之间,请重新输入。")
        except ValueError:
            print("无效输入,请输入数字。")

# 计算平均分
average_score = sum(scores.values()) / len(scores)

# 打印平均分
print(f"\n平均评分: {average_score:.2f}")

# 打印每个歌手的得分
print("\n每个歌手的得分:")
for singer, score in scores.items():
    print(f"{singer}: {score:.2f}")

# 提供退出选项
exit_choice = input("\n您想要退出吗?(yes/no): ")
if exit_choice.lower() == 'yes':
    print("感谢使用歌手打分系统,再见!")
else:
    print("您选择继续使用系统。")

小结

通过以上步骤,我们成功地构建了一个简单的歌手打分系统!这个项目不仅让你学习了 Python 的基本语法,也让你对数据结构(如列表和字典)有了更深入的理解。如果你想进一步扩展功能,可以考虑以下几点:

  • 让用户能够多次为同一歌手打分并计算新平均分。
  • 添加图形用户界面(GUI),使其更加用户友好。
  • 将分数存储到文件中,以便于后续使用。

希望这个项目能激发你对编程的兴趣,并为你在编程的旅程上更进一步迈出坚实的一步!