【发布时间】:2016-01-12 15:56:44
【问题描述】:
我正在使用 Python 3.5。我正在使用 while 循环,并更改用户输入的变量(已由用户定义):
variable = eval(input("[...]"))
while [input isn't what the user is expected to enter]:
variable = eval(input("[Asking to enter a correct input]"))
所以当用户输入正确的值时循环结束。然而,由于“变量”是在 while 循环中定义的,当用户为“变量”分配一个正确的值时,循环结束,“变量”的第一个(和不正确的)值被考虑用于程序的其余部分。
我怎样才能让它记住的值是在 while 循环中定义的值?
【问题讨论】:
-
它已经可以按照您想要的方式工作了。如果变量是在 while 循环之外定义的,它将保留 while 循环最后一次迭代的值。
-
这已经发生了,
while和for循环不会在 Python 中创建新范围。 -
您知道将用户输入传递给
eval()是一个巨大 安全问题,对吗? -
你是对的,谢谢你的回复。不,我不是,但我只是将它用于学习目的,而且我是唯一使用该程序的人。
标签: python variables python-3.x while-loop