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
>>>