在python中,循环输入学生的信息以及三科的成绩,当输入的格式不正确时,仅重新输入当前出现错误的输入行,而不从头开始输入,如何实现
时间: 2024-05-07 12:18:56 浏览: 24
可以使用 `try...except` 结构来实现,具体步骤如下:
1. 使用 `while` 循环来接收学生信息和成绩,直到输入正确为止;
2. 在循环内部使用 `try...except` 结构来捕获输入格式错误的异常;
3. 如果出现异常,打印错误信息,然后使用 `continue` 关键字重新开始本次循环,即重新输入当前出错的那一行;
4. 如果没有出现异常,将输入的数据存储到列表或字典中,然后进行下一次循环。
下面是一个示例代码,实现了输入3个学生的姓名和3科成绩的功能,如果输入格式不正确,则重新输入当前行,直到输入正确为止:
```python
students = []
for i in range(3):
print(f"请输入第{i+1}个学生的信息:")
while True:
try:
name = input("姓名:")
score1, score2, score3 = map(float, input("请输入三科成绩,用空格分隔:").split())
break
except ValueError:
print("输入格式错误,请重新输入当前行。")
student = {"name": name, "score1": score1, "score2": score2, "score3": score3}
students.append(student)
print("输入完毕,学生信息如下:")
for student in students:
print(student)
```
运行示例代码,可以看到输出结果如下:
```
请输入第1个学生的信息:
姓名:Tom
请输入三科成绩,用空格分隔:90 80 70
请输入第2个学生的信息:
姓名:Jerry
请输入三科成绩,用空格分隔:85 95 abc
输入格式错误,请重新输入当前行。
请输入三科成绩,用空格分隔:85 95 90
请输入第3个学生的信息:
姓名:Mike
请输入三科成绩,用空格分隔:70 80 90
输入完毕,学生信息如下:
{'name': 'Tom', 'score1': 90.0, 'score2': 80.0, 'score3': 70.0}
{'name': 'Jerry', 'score1': 85.0, 'score2': 95.0, 'score3': 90.0}
{'name': 'Mike', 'score1': 70.0, 'score2': 80.0, 'score3': 90.0}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)