【发布时间】:2015-06-16 02:59:45
【问题描述】:
我的任务是编写一个程序,从文件中提取名字/姓氏、出生年份和 ID,处理这些信息以创建用户名和格式化 ID,提示用户输入 3 个测试成绩,计算平均值,最后将所有信息写入一个新文件。这是我写的程序,我得到的错误列在程序下面。 定义主函数
def main():
infile = open("studentinfo.txt", "r")
data = infile.read()
fName, lName, ID, year = data.split(",")
year = int(year)
提示用户输入三个测试分数
grades = eval(input("Enter the three test scores separated by a comma: "))
创建用户名
uName = (lName[:4] + fName[:2] + str(year)).lower()
converted_id = ID[:3] + "-" + ID[3:5] + "-" + ID[5:]
grade_1, grade_2, grade_3 = grades
将成绩转换为字符串,以便将它们写入新文件
[grade_1, grade_2, grade_3] = [str(grade_1), str(grade_2), str(grade_3)]
计算平均值
average =(grade_1 + grade_2+ grade_3)/3
将平均值转换为字符串
average = str(average)
将信息写入文件
outfile = open("studentreport.txt", "w")
outfile.write("*******Student Report*******\nStudent Name:" + fName + " " + lName)
outfile.write("\nStudent ID: " + converted_id + "\n" + "Username: " + uName + "\n\n")
outfile.write("Grade 1: " + grade_1 + "\n" "Grade 2: " + grade_2 + "\n" + "Grade 3: " + grade_3 + "\n" + "Average: " + average)
infile.close()
outfile.close()
main()
Traceback(最近一次调用最后一次):
文件“C:/Users/ovi/Desktop/Python Project 1.py”,第 34 行,在
main()
文件“C:/Users/ovi/Desktop/Python Project 1.py”,第 22 行,在 main
平均 =(grade_1 + Grade_2+grade_3)/3
TypeError: /: 'str' 和 'int' 的操作数类型不受支持
【问题讨论】:
-
那么,您将
grades_x转换为字符串,然后尝试将它们相加并除以3?也许将字符串转换的成绩存储在不同的命名变量中。将+与字符串一起使用会将它们连接在一起,而不是相加。
标签: python python-3.x