首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:打印重复错误,重复输入

Python:打印重复错误,重复输入
EN

Stack Overflow用户
提问于 2015-03-23 08:02:18
回答 3查看 157关注 0票数 1

我做了一个程序,可以提高平均成绩。一切看起来都很好,唯一的问题是,当我在最后运行程序时,它打印出来如下所示:

代码语言:javascript
复制
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

如何让程序打印出来,例如:

代码语言:javascript
复制
Name Grade1 Grade2 Grade3 (etc) Average
Name2 Grade1 Grade2 Grade3 (etc) Average2

etc

每个学生的名字是分开的吗?

代码语言:javascript
复制
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 = []
EN

回答 3

Stack Overflow用户

发布于 2015-03-23 08:16:53

在不需要换行的print语句末尾添加一个逗号。

代码语言:javascript
复制
print nreal,
...
    print b,
    ...
print avg
票数 0
EN

Stack Overflow用户

发布于 2015-03-23 08:18:45

默认情况下,python会在每个print调用的末尾添加一个\n。要修复此问题,请添加第二个要打印的参数。print(string, end="")

票数 0
EN

Stack Overflow用户

发布于 2015-03-23 08:21:46

在Python3中,您可以通过设置打印函数的结束参数来打印"horizontally“,默认情况下是"\n”(换行符),如下所示:

代码语言:javascript
复制
...
print (nreal, end = " ")
...
   print (b, end = " ")

将最后一个打印语句保留为:print (avg),因为您希望它打印一个换行符,用于打印下一个学生的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29201409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档