1
time=0
stop=input()

while time<1000000000000000000000000000000000000000000000000000:
    if stop==input("999"):
        break
    print (time)
    time= time+1
print("time taken is",time) 

这是一个用于平均速度相机的程序。我想知道当用户输入“999”时while循环是否可能停止。代码被破坏的值将是时间变量的新内容。

4

2 回答 2

1

有点不清楚您要完成什么,但根据您提供的代码和您的问题,听起来您想衡量某人输入特定值需要多长时间。您可以修改:Python - 无限 while 循环,用户输入中断

#guess_999.py
import sys
import os
import fcntl
import time

fl = fcntl.fcntl(sys.stdin.fileno(), fcntl.F_GETFL)
fcntl.fcntl(sys.stdin.fileno(), fcntl.F_SETFL, fl | os.O_NONBLOCK)

time_started = time.time()
while True:
    try:
        stdin = sys.stdin.read()
        if "999" in stdin:
            print "It took %f seconds" % (time.time() - time_started)
            break
    except IOError:
        pass

然后运行它:

$ python guess_999.py
$ 6
$ 999
$ It took 2.765054 seconds
于 2015-11-07T17:12:06.450 回答
0

编辑: PO 想做一些完全不同的事情。我参考马克的回答。

你搞砸了一点;)

做:

answer = input("type something")
if  answer == "999":
    break

说明: - input() 将返回用户在控制台中输入的字符串。你写在括号里的内容是当你被要求输入一些东西时将写在行上的内容。这通常是一个诸如“你叫什么名字?”之类的问题。- 如果答案是“999”,将执行命令中断 => 循环停止

于 2015-11-07T16:32:51.250 回答