【问题标题】:how to input all data first, then give all output in python?如何先输入所有数据,然后在 python 中给出所有输出?
【发布时间】:2023-04-08 17:44:01
【问题描述】:

我是编程新手,我的问题需要您的帮助。

我做了一个代码,这样的循环输入:

for x in range (2):
    name = input('name   : ')
    age = input('age    : ')

    print()

    print('name', name)
    print('age', age)

    print('---------------')

输出是这样的。

name   : garox
age    : 29

name garox
age 29
---------------
name   : supri
age    : 16

name supri
age 16
---------------

我希望输出与每个输入分开,如下所示:

---  input ---
name   : garox
age    : 29

name   : supri
age    : 16

--- output ----
name garox
age 29

name supri
age 16

所以我想先输入所有数据,然后在我完成所有输入后输出。

也使用循环,而不是一一进行“打印”。 是否可以?如果是这样,我该怎么做?

提前致谢。


感谢您的回答!这真的有助于我更好地理解它。

我试图把它放在一个班级里。但我收到了这个错误:

    Dataa.looop(self)
NameError: name 'self' is not defined

我是这样安排代码的。

class Dataa():
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def looop (self):
        list = []

        for x in range(2):
            name = input('name   : ')
            age = input('age    : ')
            list.append({'name': name, 'age': age})

        for input in list:
            print('name', input['name'])
            print('age', input['age'])
            print('---------------')

Dataa.looop(self)

如何调用循环定义,以便进行输入?

【问题讨论】:

  • 使用listappend从用户读取到datalist。也许将data 放入tupleappend 以列出name = input('..'); age = input('''.'); details.append((name, age))。添加完所有详细信息后,您可以遍历详细信息,然后输出它们
  • 将数据累积到一个容器中,供for循环终止后使用。

标签: python python-3.x loops class


【解决方案1】:

尝试将输入字符串添加到列表中:

persons=[]
print("-----input------")
for x in range (2):
    name = input('name   : ')
    age = input('age    : ')

    persons.append([name,age])

print('--------output-------')
for x in persons:
    print("name:",x[0])
    print("age:", x[1])

结果:

-----input------
name   : name1
age    : 30
name   : name2
age    : 30

--------output-------
name: name1
age: 30
name: name2
age: 30

【讨论】:

  • 您可以使用解包来简化第二个循环:for name, age in persons: ...
【解决方案2】:

您可以创建一个列表,将每个输入存储为具有两个键的字典:姓名和年龄。

然后创建两个for 循环:第一个用于存储输入,第二个用于打印数据。我认为这种方法更好,因为您可以使用它来添加任意数量的内容。

persons = []

for x in range (2):
    name = input('name   : ')
    age = input('age    : ')
    country = input('country    : ')
    persons.append({'name': name, 'age': age, 'country': country})

for input in persons:
    print('name', input['name'])
    print('age', input['age'])
    print('country', input['country'])
    print('---------------')

输出:

name : john
age : 27
name : david
age : 17
name john
age 27
----------------
name david
age 17
----------------

【讨论】:

  • 不要使用list作为标识符,它会影响内置的list类型。
  • 请不要发布代码/数据/Tracebacks 的图像。只需复制文本,将其粘贴到您的问题中并将其格式化为代码即可。 You should not post code as an image because:
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 2011-09-15
  • 2012-05-31
相关资源
最近更新 更多