首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序允许用户输入5个学生的名字和标记来打印报告(循环)

程序允许用户输入5个学生的名字和标记来打印报告(循环)
EN

Stack Overflow用户
提问于 2018-04-12 13:49:54
回答 3查看 22.2K关注 0票数 0

我希望程序允许你输入5个学生的名字和学生的分数。然而,每次我运行它,它不接受学生的名字。

代码语言:javascript
运行
复制
students=[]
for num in range(5):
    x=input("Enter name of students: ")
    students.append(x)

marks=[]
for num in range(5):
    y=input("Enter marks of students:")
    marks.append(y)

report = input("Do you want to print class report?: ")
if report == 'yes':
    print(x[0],":", y[0])
    print(x[1],":", y[1])
    print(x[2],":", y[2])
    print(x[3],":", y[3])
    print(x[4],":", y[4])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-12 13:53:02

以下是一些工作代码:

代码语言:javascript
运行
复制
n = 5

students=[]
for num in range(n):
    x=raw_input("Enter name of students: ")
    students.append(x)

marks=[]
for num in range(n):
    y=raw_input("Enter marks of students:")
    marks.append(y)

report = raw_input("Do you want to print class report?: ")
if report == 'yes':
    for i,j in zip(students, marks):
        print(i,':', j)

解释

解决了几个问题:

  • 缩进在Python中是至关重要的。
  • 对实际定义的变量使用list.append
  • 使用一个循环与zip,循环通过对学生,标记数据。
  • 在Python2.x中使用raw_input而不是input
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 13:53:21

代码语言:javascript
运行
复制
while Name != "":
    i.append(x)

将永远循环(并附加)如果Name != "".( iName是什么?)

在python2.7中,您应该使用raw_input

一个快速的解决办法是:

代码语言:javascript
运行
复制
for num in range(5):
    x=raw_input("Enter name of students: ")
    if x == "":
        break
    students.append(x)

尽管如此,为什么同时有一个中断条件和一个高达5的循环呢?为什么不直接

代码语言:javascript
运行
复制
for num in range(5):
    x=raw_input("Enter name of students: ")
    students.append(x)
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 13:55:02

不清楚该代码是否会按编写的方式运行。Namei从来没有定义过。

在Python2中,您需要使用raw_input来接受输入,否则,您输入的内容将由Python在内部进行计算。

此外,您还可以组合这些循环来收集元组,而不是构建并行列表。

代码语言:javascript
运行
复制
students=[]
for num in range(5):
    x=raw_input("Enter name of students: ")
    y=raw_input("Enter marks of students:")
    students.append((x,y,))

report = raw_input("Do you want to print class report?: ")
if report == 'yes':
    for x, y in students:
        print(x,":", y)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49798329

复制
相关文章

相似问题

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