How to input a readable text file into my Python code and have it run properly -


def main():      infile = open("studentinfo.txt", "rt")     data = infile.read()     fname, lname, id, year = data.split(",")     year = int(year)      # prompt user 3 test scores     grades = eval(input("enter 3 test scores separated coma: "))     # prompt create username     uname = (lname[:4] + fname[:2] + str(year)).lower()     converted_id = id[:3] + "-" + id[3:5] + "-" + id[5:]     grade_1, grade_2, grade_3 = grades     # convert grades strings can written new file     [grade_1, grade_2, grade_3] = [str(grade_1), str(grade_2), str(grade_3)]     # calculate average     average =(float(grade_1) + float(grade_2)+ float(grade_3))/3.0     # convert average string     average = str(average)     # write information file     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:    " + str(grade_1) + "\n" "grade 2:    " + str(grade_2) + "\n" + "grade 3:    " + str(grade_3) + "\n" + "average:    " + str(average))         infile.close()     outfile.close()  main() 

how make run using readable text file when run program help?

enter 3 test scores separated coma: 80,78,90, >>> 80,78,90, (80, 78, 90) >>> main() enter 3 test scores separated coma: 87,86,90 >>>  

there may syntax issues, cannot test since not have files, may inline thinking:

def get_grades(student_name):     grades = raw_input("enter 3 test scores {0} separated coma: ".format(student_name)).split(',')     if len(grades) != 3:         print "must enter 3 grades"         return get_grades(student_name)     return float(grades[0]), float(grades[1]), float(grades[2])  open("studentreport.txt", "w") outfile:     outfile.write("*******student report*******\n")     open("studentinfo.txt", "r") infile:         student in infile:             fname, lname, id, year = student.split(",")             year = int(year)             uname = "{0}{1}{2}".format(lname[:4], fname[:2], str(year)).lower()             converted_id = "{0}-{1}-{2}".format(id[:3], id[3:5], id[5:])              # prompt user 3 test scores             grade_1, grade_2, grade_3 = get_grades("{0} {1}".format(fname, lname))             average = sum([grade_1, grade_2, grade_3])/3             outfile.write("student name:{0} {1}\n".format(fname, lname))             outfile.write("student id:  {0}\nusername:    {1}\n\n".format(converted_id, uname))             outfile.write("grade 1:    {0}\ngrade 2:    {1}\ngrade 3:    {2}\naverage:    {3}\n\n".format(grade_1, grade_2, grade_3,average)) 

tested input:

sam, snead, kghasjkdfiuaski21, 2006 john, doe, 9792345678872, 2009 garth, nroken, 097892364, 2006 

which outputs:

*******student report******* student name:sam  snead student id:   kg-ha-sjkdfiuaski21 username:     snesa2006  grade 1:    56.0 grade 2:    67.0 grade 3:    78.0 average:    67.0  student name:john  doe student id:   97-92-345678872 username:     doejo2009  grade 1:    67.0 grade 2:    89.0 grade 3:    78.0 average:    78.0  student name:garth  nroken student id:   09-78-92364 username:     nroga2006  grade 1:    45.0 grade 2:    67.0 grade 3:    89.0 average:    67.0 

and remember: eval evil


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -