因此,我正在制作一个程序,要求用户输入以定义变量。我想让它一直提示他们定义变量,直到他们终止程序。也就是说,它提示A1:他们输入2,然后提示A2:他们输入6,以此类推,直到他们按下回车键而不输入任何内容。我遇到的问题是,每次它循环时,我都需要唯一的变量。我还希望这些变量能够访问函数外定义的变量,而不使用全局变量。
这是我得到的:
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()
使用列表?
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()
不要使用while循环,而是将for循环包装在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()
再次给出答案:
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()