2015-11-07 6 views
1
time=0 
stop=input() 

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

Это программа для камеры средней скорости. Мне было интересно, возможно ли остановить цикл while, когда пользователь вводит «999». Тогда значение, при котором будет нарушено код, будет новым содержимым временной переменной.Возможно ли реализовать оператор break с использованием пользовательского ввода в python

+0

Вы можете искать что-то вроде http://stackoverflow.com/questions/20576960/python-infinite-while-loop- break-on-user-input –

ответ

1

Немного непонятно, что вы пытаетесь выполнить, но на основе кода, который вы предоставили, и вашего вопроса, это звучит как вы хотите измерить, сколько времени потребуется кому-то, чтобы ввести конкретное значение. Вы можете изменить: Python - Infinite while loop, break on user input:

#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 
+0

спасибо Брок, именно этого я и пытался добиться. когда я запускаю код на моем простоя, он придумал ошибку синтаксиса. У меня есть python 3.5 – HELP

+0

. Не волнуйся, теперь все в порядке спасибо большое. – HELP

0

EDIT: PO хотел сделать что-то совершенно другое. Я имею в виду ответ Марка.

Вы испортили его немного;)

Do:

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

Пояснение: - вход() возвращает строку, что пользователь ввел в консоль. То, что вы пишете в скобках, - это то, что будет написано на линии, когда вас попросят ввести что-то. Обычно это вопрос типа «как тебя зовут?». - если ответ «999», будет выполнен прерывание команды => остановки цикла

+0

спасибо xXliolauXx, однако, когда я включил ваш ответ в свой код, цикл повторялся каждый раз, когда я вводил что-то, где, когда я хотел, чтобы цикл выполнял время + 1, пока не было введено значение «999» – HELP

+0

@ ПОМОЩЬ О, я вижу, что вы хотели сделать сейчас из ответа Брок ... Я думаю, что ваше описание могло бы быть немного яснее;) – xXliolauXx

 Смежные вопросы

  • Нет связанных вопросов^_^