所以,我正在制作一个要求用户输入定义变量的程序。我想要它做的是继续提示他们定义变量,直到他们终止程序。 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()
答案 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()