Python中文
首页
教程
问答
标签
搜索
登录
注册
Python成绩册作业、书写和阅读记录以及字母成绩合计,无法得到正确的输出
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>问题是:创建一个Python程序,允许用户输入类名、教职员工姓名、每个学生的姓名以及每个学生获得的字母等级。该程序应统计并显示获得As、Bs、Cs、Ds和Fs的学生人数。程序应该将所有的输入和输出信息保存到一个名为类名grades.txt. 在</p> <p>到目前为止我写的代码如下。我只是在学习,这是非常初级的,我道歉。下面是输出。我不知道为什么我要多出两张唱片。有人能解释一下我做错了什么吗?文件被创建,输入被写入到文件中,但是在读取过程中它会崩溃。在</p> <pre><code>def main(): student_num = 0 count = 0 a_total = 0 b_total = 0 c_total = 0 d_total = 0 f_total = 0 student_num = int(input("Enter the number of students you wish to enter grades for: ")) gradefile = open('gradebook.txt', 'w') for count in range(1, student_num + 1): class_name = input('Enter class name: ') faculty_name = input('Enter faculty name: ') student_name = input('Enter student name: ') letter_grade = input('Enter letter grade (A, B, C, D, or F) ') print() if letter_grade.upper() == 'A': a_total += 1 elif letter_grade.upper() == 'B': b_total += 1 elif letter_grade.upper() == 'C': c_total += 1 elif letter_grade.upper() == 'D': d_total += 1 elif letter_grade.upper() == 'F': f_total += 1 else: print('Invalid response') gradefile.write(class_name + '\n') gradefile.write(faculty_name + '\n') gradefile.write(student_name + '\n') gradefile.write(letter_grade + '\n') gradefile.write(str(a_total) + '\n') gradefile.write(str(b_total) + '\n') gradefile.write(str(c_total) + '\n') gradefile.write(str(d_total) + '\n') gradefile.write(str(f_total) + '\n') gradefile.close() gradefile1 = open('gradebook.txt', 'r') class_name = gradefile1.readline() while class_name != '': faculty_name = gradefile1.readline() student_name = gradefile1.readline() letter_grade = gradefile1.readline() class_name = class_name.rstrip('\n') faculty_name = faculty_name.rstrip('\n') student_name = student_name.rstrip('\n') letter_grade = letter_grade.rstrip('\n') print('Class name: ', class_name) print('Faculty name: ', faculty_name) print('Student name: ', student_name) print('Letter grade: ', letter_grade.upper()) print() class_name = gradefile1.readline() a_total = gradefile1.readline() b_total = gradefile1.readline() c_total = gradefile1.readline() d_total = gradefile1.readline() f_total = gradefile1.readline() a_total = a_total.rstrip('\n') b_total = b_total.rstrip('\n') c_total = c_total.rstrip('\n') d_total = d_total.rstrip('\n') f_total = f_total.rstrip('\n') print('Total As: ', a_total) print('Total Bs: ', b_total) print('Total Cs: ', c_total) print('Total Ds: ', d_total) print('Total Fs: ', f_total) gradefile1.close() main() </code></pre> <p>用户输入:</p> ^{pr2}$ <p>返回输出:</p> <pre><code>Class name: bio Faculty name: jones Student name: smith Letter grade: A Class name: bio Faculty name: jones Student name: gray Letter grade: B Class name: Bio Faculty name: Jones Student name: Thomas Letter grade: B Class name: 1 Faculty name: 2 Student name: 0 Letter grade: 0 Class name: 0 Faculty name: Student name: Letter grade: Total As: Total Bs: Total Cs: Total Ds: Total Fs: Process finished with exit code 0 </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>虽然我现在不在我的开发人员那里,但是我想问题出在for语句上。代替range(1,student_num+1)尝试重写它,以便使用student_num输入值作为迭代次数。根据你写它的方式,我知道发生了什么是for循环错误地计算迭代次数,因为student_num+1。如果用户为student_num输入3,那么3应该是指定的唯一迭代量。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
6 回答
文本小部件:在没有输入时更新并在循环后保持空闲
3 回答
文本小部件tkin
1 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
7 回答
文本小部件tkinter复制图像选项
1 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
3 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
8 回答
文本小部件不显示lis中的内容
1 回答
文本小部件不显示Unicode字符
10 回答
文本小部件中写入的行间距
8 回答
文本小部件中的文本作为变量
7 回答
文本小部件中的滚动条仅显示在底部
10 回答
文本小部件中的选项卡键空间计数
7 回答
文本小部件作为Lis
2 回答
文本小部件在主框架中扩展列宽
6 回答
文本小部件未使用删除功能清除
2 回答
文本小部件滚动动画(Tkinter、Python)
7 回答
文本居中。格式正确吗?
2 回答
文本差分算法
7 回答
文本已知时音频文件中的单词索引
9 回答