6、用户输入若干个成绩(百分制),求所有成绩的平均分。每输入一个分数后询问是否继续输入下一个分数,回答“y”或“Y”就继续输入下一个分数,回答“n”或“N”就停止输入分数。(要求有异常处理)
时间: 2023-09-23 08:13:06 浏览: 123
好的,根据您的要求,我可以提供一个Python的代码实现:
```python
try:
sum = 0.0
count = 0
while True:
score = float(input("请输入成绩(百分制):"))
sum += score
count += 1
choice = input("是否继续输入下一个成绩?(y/n)")
if choice != 'y' and choice != 'Y':
break
average = sum / count
print("所有成绩的平均分为:{:.2f}".format(average))
except ValueError:
print("输入的不是有效成绩,请重新输入!")
```
这个代码中,我们使用了一个循环来反复输入成绩,每输入一个成绩就累加到总分中,并且记录输入成绩的数量。用户可以选择继续输入下一个成绩或停止输入。最后,我们计算所有成绩的平均分,并输出结果。如果输入的内容不是有效的成绩(比如输入了一个字符串),程序会捕获ValueError异常并提示用户重新输入。
相关问题
用户输入若干个成绩(百分制),求所有成绩的平均分。每输入一个分数后询问是否继续输入下一个分数,回答" y "或" Y "就继续输入下一个分数,回答" n "或" N "就停止输入分数。(要求有异常处理)
好的,可以使用一个循环来反复询问用户是否要输入成绩,然后根据用户的回答来决定是否继续输入。在每次输入后,将成绩累加到总分数中,最后计算平均分。同时,使用异常处理来捕获用户输入非数字的情况。具体代码如下:
```python
scores = []
while True:
try:
score = float(input("请输入一个成绩(百分制):"))
scores.append(score)
answer = input("是否继续输入下一个成绩?(y/n)")
if answer.lower() == "y":
continue
elif answer.lower() == "n":
break
else:
print("无效的输入!")
break
except ValueError:
print("请输入数字!")
if len(scores) == 0:
print("没有输入成绩!")
else:
average = sum(scores) / len(scores)
print("平均分为:{:.2f}".format(average))
```
解释一下:
1. 首先定义了一个空列表 `scores`,用于存储输入的成绩。
2. 进入一个循环,每次让用户输入一个成绩,并使用 `float()` 函数将其转换为浮点数类型。如果用户输入的不是数字,则会抛出 `ValueError` 异常,使用 `try-except` 结构捕获并输出错误信息。
3. 将输入的成绩添加到列表 `scores` 中。
4. 根据用户的回答决定是否继续输入下一个成绩。如果回答是 "y" 或 "Y",则使用 `continue` 语句跳过本次循环;如果回答是 "n" 或 "N",则使用 `break` 语句跳出循环。如果回答是其他字符,则输出错误信息并使用 `break` 语句跳出循环。
5. 判断列表 `scores` 是否为空,如果为空则输出 "没有输入成绩!",否则计算平均分并输出结果。使用 `sum()` 函数求出列表中所有成绩的和,再除以列表的长度得到平均分,使用字符串格式化的方式将结果输出,保留 2 位小数。
注意事项:
1. 用户输入的成绩需要使用 `float()` 函数将其转换为浮点数类型,否则无法进行数值计算。
2. 在捕获异常时要注意使用精确的异常类型,否则可能会屏蔽掉其他类型的异常,导致错误难以排查。在本例中,使用了 `ValueError` 异常来捕获用户输入非数字的情况。
3. 在判断用户回答时,使用 `lower()` 方法将其转换为小写字母,以避免大小写带来的问题。
python编程输入若干个百分制成绩,当输入-1时表示输入结束
好的,你可以使用下面的代码实现:
```python
scores = []
while True:
score = float(input("请输入百分制成绩:"))
if score == -1:
break
scores.append(score)
print("输入结束!")
```
这段代码使用了一个 while 循环,每次从用户输入中获取一个成绩,若输入的是 -1,则跳出循环;否则将成绩添加到一个列表中。最后输出“输入结束!”来提示用户输入已经完成。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)