【问题标题】:Accessing user input taken in while loop (Python)访问在while循环中获取的用户输入(Python)
【发布时间】:2013-02-10 06:17:43
【问题描述】:

我希望用户输入随机数。 我运行一个while循环,直到用户输入0。

while input()!=0:
    print "Your number is:...??"

我的问题是: 是否有任何特殊变量(如 Perl 中的 $_)可以访问用户输入? 例如(在上述情况下)我想打印用户输入的内容。

【问题讨论】:

    标签: python


    【解决方案1】:

    另一种方法是使用iter 并提供一个可调用对象:

    for num in iter(lambda: int(raw_input('Your number is: ')), 0):
        print 'You entered', num
    

    【讨论】:

    • 这很好。根据the docs,除非是引发 StopIteration 的哨兵,否则将返回可调用的值。
    • @Jon 这是一个不错的方法。谢谢你。但我从来没有清楚地理解 lambda 究竟做了什么。任何帮助表示赞赏。
    • @Holmes lambda 创建一个可调用的...您可以将其视为不太灵活的def... 所以上面可以定义def somefunc(): raw_input('Your number is: '),而不是lambda,使用@ 987654328@.... - 见docs.python.org/2/reference/expressions.html#lambda
    • @Holmes 公平地说,我应该指出,虽然我更喜欢这种方法 - 它不是该语言的常用语法,所以并非所有 Python 程序员都会立即理解它 - 而每个人都会理解 @ 987654329@和break系统...
    【解决方案2】:

    您需要将结果分配给一个变量:

    s = None
    while s != 0:
      s = int(input("Enter number: "))
      print("Your number is: {}".format(s))
    

    这是一个 python3 示例。对于 python 2.x,您应该改用 raw_input

    【讨论】:

    • 嗯.. 看来我们不能在不创建变量的情况下运行这个循环。谢谢。
    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 2013-11-16
    • 2020-02-15
    • 2021-08-13
    • 2014-01-01
    • 1970-01-01
    • 2021-10-14
    • 2020-07-07
    相关资源
    最近更新 更多