Python 有没有办法访问从未分配的结果?

Python 有没有办法访问从未分配的结果?,python,python-3.x,Python,Python 3.x,假设我想看看输入了什么数字。有没有一种间接的方法可以做到这一点 编辑我可能不是很清楚lol。我知道在调试器中,您可以单步执行并查看输入的数字。是否有内存黑客或类似的东西可以让你在事后获取“旧”数据?没有-你必须分配它。。。您的示例可以使用双参数样式iter编写,不过: while int(input("choose a number")) != 5 : 不,没有办法以您的方式访问该输入,您必须存储它。下面是一个“hello world”级别的示例 for number in iter(lamb

假设我想看看输入了什么数字。有没有一种间接的方法可以做到这一点


编辑我可能不是很清楚lol。我知道在调试器中,您可以单步执行并查看输入的数字。是否有内存黑客或类似的东西可以让你在事后获取“旧”数据?

没有-你必须分配它。。。您的示例可以使用双参数样式
iter
编写,不过:

while int(input("choose a number")) != 5 :

不,没有办法以您的方式访问该输入,您必须存储它。下面是一个“hello world”级别的示例

for number in iter(lambda: int(input('Choose a number: ')), 5):
    print number # prints it if it wasn't 5...

像这样做。您不必指定,只需编写一个附加函数,并在每次需要时使用它即可。希望这有帮助

val = int(input("choose a number"))
while val != 5 :
  val = int(input("choose a number"))

半相关的黑客解决方案,从技术上回答了您的问题,但实际上没有:

如果您在交互式python环境中运行它(使用
),您就可以做到这一点

def printAndReturn(x): print(x); return(x)

while printAndReturn(int(input("choose a number"))) != 5 :
      # do your stuff

如果您没有将其分配给任何对象,则无法引用它。它肯定不是
5
;)所以,如果我理解你的问题,你想在while循环之后引用
输入
?是的,如果可能的话,就用咖喱吧。不担心它是否正确或是一个好方法,只要它是可能的。@jason提供的两个答案都是正确的,并且确实有效,但Jon Clements的答案更有效,代码更少。但斯蒂芬斯的答案更容易阅读。很好!这很快。标记为答案,因为它回答了这个问题,并迫使我研究一个lambda是什么。
>>>while int(input("choose a number: ")) != 5 :
...  print _
...
choose a number: 2
2
choose a number: 5
>>>