python7-2 jmu-python-查成绩 分数 9 作者 蔡莉白 单位 集美大学 从键盘输入一个学生所有课程的成绩,输入格式为”课程名:成绩“,每门课占一行,以空行结束。随后提示”请输入要查询的课程:“,用户从键盘输入课程名,查询并输出该课程的成绩,要求进行异常处理,对不存在的课程进行捕捉处理。 输入格式: 输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束 在提示后输入课程名 输出格式: 如果课程存在,直接输出成绩,否则提示”没有该门课程“ 输入样例1: 数学:96 英语:82 计算机:76 思政:90 计算机 输出样例1: 请输入要查询的课程: 76 输入样例2: 数学:96 英语:82 计算机:76 思政:90 数学a 输出样例2: 请输入要查询的课程: 没有该门课程 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB Python (python3) 1
时间: 2024-02-29 17:53:28 浏览: 64
以下是实现该功能的Python代码:
```python
# 读入所有课程成绩
scores = {}
while True:
line = input().strip()
if line == "":
break
course, score = line.split(":")
scores[course] = int(score)
# 查询指定课程成绩
course_name = input("请输入要查询的课程:")
try:
print(scores[course_name])
except KeyError:
print("没有该门课程")
```
该代码首先利用一个循环读入所有课程成绩,并将它们存储在一个字典`scores`中。然后,程序提示用户输入要查询的课程名,并利用`try`-`except`语句块查询对应的成绩。如果课程名不存在字典`scores`中,则输出提示信息。
相关问题
2 jmu-python-查成绩 分数 6 作者 蔡莉白 单位 集美大学 从键盘输入一个学生所有课程的成绩,输入格式为”课程名:成绩“,每门课占一行,以空行结束。随后提示”请输入要查询的课程:“,用户从键盘输入课程名,查询并输出该课程的成绩,要求进行异常处理,对不存在的课程进行捕捉处理。 输入格式: 输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束 在提示后输入课程名 输出格式: 如果课程存在,直接输出成绩,否则提示”没有该门课程“
好的,这是一道关于Python编程的问题,让我们一步步来看。
首先,我们需要从键盘输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束。这可以通过以下代码实现:
```
sub=[] #科目列表 sore=[] #成绩列表
while(1):
s=input()
if s:
x=s.split(":")
sub.append(x[0]) #把输入的科目append到sub列表
sore.append(x[1]) #把输入的成绩append到sore列表
else:
break #s为空跳出循环
```
然后,我们需要提示用户输入要查询的课程名称,并将其存储在变量`check`中:
```
check=input('请输入要查询的课程:\n')
```
接下来,我们需要将科目和成绩合并为一个字典,并根据用户输入的课程名查询对应的成绩。如果找到了该课程,直接输出其对应的成绩;否则,输出“没有该门课程”。这可以通过以下代码实现:
```
zipped=zip(sub,sore) #将sub与sore合并
d=dict(zipped) #将合并的数据转换成字典
try:
print(d[check]) #输入正确的课程即能输出相应的成绩,否则异常处理
except:
print('没有该门课程')
```
最终,这个程序可以如下所示:
```
sub=[] #科目列表 sore=[] #成绩列表
while(1):
s=input()
if s:
x=s.split(":")
sub.append(x[0]) #把输入的科目append到sub列表
sore.append(x[1]) #把输入的成绩append到sore列表
else:
break #s为空跳出循环
check=input('请输入要查询的课程:\n')
zipped=zip(sub,sore) #将sub与sore合并
d=dict(zipped) #将合并的数据转换成字典
try:
print(d[check]) #输入正确的课程即能输出相应的成绩,否则异常处理
except:
print('没有该门课程')
```
希望这个程序可以解决你的问题!
R6-3 jmu-python-发牌 分数 10 作者 蔡莉白 单位 集美大学 从键盘输入一个整数作为随机种子,随机生成一副扑克牌(去掉大小王),循环分给4位牌手,每人5张牌(第1、5、9、13、17张牌给第一个玩家,第2、6、10、14、
18张牌给第二个玩家,以此类推),输出每位玩家手中的牌和对应的点数(计算点数时,将A作为1,J、Q、K作为10,其余按牌面点数计算)。
示例输入:
```
123
```
示例输出:
```
player 1: ['♠️9', '♣️K', '♥️J', '♠️3', '♥️7'],total points: 30
player 2: ['♥️6', '♦️10', '♦️Q', '♠️A', '♦️4'],total points: 31
player 3: ['♠️10', '♠️5', '♠️J', '♠️8', '♠️6'],total points: 39
player 4: ['♣️4', '♠️2', '♥️4', '♦️5', '♣️3'],total points: 18
```
提示:
1. 生成一副扑克牌可以使用列表推导式,如 `cards = [f'{rank}{suit}' for rank in ranks for suit in suits]` ,其中 `ranks` 和 `suits` 分别是大小和花色的列表。
2. 可以使用 `random.shuffle()` 方法将列表中的元素随机排序。
3. 分发牌时可以使用循环和取模运算。
4. 计算点数时可以使用字典或者条件判断语句。
阅读全文