我做了一个程序,可以提高平均成绩。一切看起来都很好,唯一的问题是,当我在最后运行程序时,它打印出来如下所示:
Jack
5
10
6
7.0
Stacy
10
8
9
9.0
Jack
5
10
6
7.0
Stacy
10
8
9
9.0
Jack
5
10
6
7.0
Stacy
10
8
9
9.0如何让程序打印出来,例如:
Name Grade1 Grade2 Grade3 (etc) Average
Name2 Grade1 Grade2 Grade3 (etc) Average2
etc每个学生的名字是分开的吗?
grades = []
names = []
ch = 1
while (ch!=0):
name = input('Enter a name: ')
if (name.isalpha()):
grade = int(input('Enter a grade: '))
if(grade <= 10 and grade > 0):
names.append(name)
grades.append(grade)
else:
while (grade <= 0) or (grade > 10):
print ('The grade you entered is not correct, try again!')
grade = int (input('Enter a grade: '))
names.append(name)
grades.append(grade)
elif(name == '0'):
print ('A zero was entered, end of program.')
ch = 0
else:
print ('The name was entered wrong, try again!')
#problem probably starts from here
howmuch = len(grades)
result = []
for k in range(0, howmuch):
nreal = names[k]
for i in range(0, howmuch):
if (nreal == names[i]):
result.append(grades[i])
greal = len(result)
sumup = 0
print (nreal)
howmuch = len(names)
for z in range(0,greal):
a = result[z]
b= int(a)
print (b)
sumup = sumup + b
avg = sumup /(z+1)
print (avg)
result = []发布于 2015-03-23 08:16:53
在不需要换行的print语句末尾添加一个逗号。
print nreal,
...
print b,
...
print avg发布于 2015-03-23 08:18:45
默认情况下,python会在每个print调用的末尾添加一个\n。要修复此问题,请添加第二个要打印的参数。print(string, end="")
发布于 2015-03-23 08:21:46
在Python3中,您可以通过设置打印函数的结束参数来打印"horizontally“,默认情况下是"\n”(换行符),如下所示:
...
print (nreal, end = " ")
...
print (b, end = " ")将最后一个打印语句保留为:print (avg),因为您希望它打印一个换行符,用于打印下一个学生的信息。
https://stackoverflow.com/questions/29201409
复制相似问题