无限量的唯一生成变量,python

时间:2017-11-03 01:09:25

标签: python python-3.x list while-loop user-input

所以,我正在制作一个要求用户输入定义变量的程序。我想要它做的是继续提示他们定义变量,直到他们终止程序。 I.E.它提示A1:然后输入2,然后输入A2:然后输入6,依此类推,直到按下输入而不输入任何内容。我遇到的问题是每次循环时我都需要唯一的变量。我还希望这些变量能够访问函数外部定义的变量,而不使用global。

以下是我所得到的:

def userinput():
    n = 0
    while n >= 0:
        c = str(n)
        v = 'A'+c+':'
        v = input(v)
        if v != '':
            n += 1
        else:
            while v == '':
                break
            break
userinput()

正如您所看到的,它所知道的是将用户的输入设置为等于 v 每次迭代。我希望它将第一个输入设置为A0,然后是下一个迭代,我希望将输入设置为A1,依此类推。然后,在用户运行之后,我希望能够调用变量A1并获得结果。有什么想法吗?

编辑: 所以,这是我的计划。它接受输入,将输入添加到列表,然后将列表项转换为全局变量。我不想使用全球,但我不得不这样做。

def userinput():
    n = 0
    values = []
    while True:
        c = str(n)
        v = 'A'+c+':'
        v = input(v)
        values.append(v)
        if v != '':
            n += 1
        else:
            while v == '':
                values.remove(v)
                break
            break
    for x, val in enumerate(values):
        globals()['A%d' % (x)] = val
    return values
data = userinput()

3 个答案:

答案 0 :(得分:0)

使用清单?

def getUserInput():
  values = []
  while True:
    val = input("Enter a value (press enter to finish):")
    if not val:
      break
    values.append(val)
  return values

data = getUserInput()

答案 1 :(得分:0)

而不是while循环,将while循环包含在while循环中,如下所示:

def userinput():
n = 0
while n >= 0:
    for x in range(100):
        v = 'A'+x+':'
        v = input(v)
        if v != '':
            n += 1
        else:
            while v == '':
                break
            break
userinput()

答案 2 :(得分:0)

再一次,这是答案:

def userinput():
    n = 0
    values = []
    while True:
        c = str(n)
        v = 'A'+c+':'
        v = input(v)
        values.append(v)
        if v != '':
            n += 1
        else:
            while v == '':
                values.remove(v)
                break
            break
    for x, val in enumerate(values):
        globals()['A%d' % (x)] = val
    return values
data = userinput()