The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"В цикле while не работает второе условие"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Python)
Изначальное сообщение [ Отслеживать ]

"В цикле while не работает второе условие"  +/
Сообщение от qazarus email on 30-Авг-15, 12:59 
Итак, есть железка, при подключении отображается дев, в который мне нужно отсылать команду, и слушать ответ. Для этого использую такой вот скрипт:


f = open("/dev/skynet", "r+")
data = ''
print >> f, "run\r\n"
while data[:8]!="doomsday":
    data=f.readline()
print data
f.close

Все работает, но за некоторых условий ответа не следует, в итоге скрипт зависает в ожидании долгожданного ответа. Вот эту проблему мне и надо решить.
Так как с питоном познакомился чуть ли не вчера, я не придумал ничего умнее, как добавить к циклу отсчет так сказать, и в случае 10 считывания строки отрубать цикл:


f = open("/dev/skynet", "r+")
data = ''
count = 10
print >> f, "run\r\n"
while (data[:8]!="doomsday") or (count != 0):
    data=f.readline()
    count = count - 1
print data
f.close

Ну так вот, не работает это. В итоге не работает второй аргумент, да еще и перестает работать первый.
Дайте совет как исправить это, или как сделать покрасивее.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "В цикле while не работает второе условие"  +/
Сообщение от asavah (ok) on 30-Авг-15, 15:52 
   if not data:
       time.sleep(1)
       continue


итд

книжки читай да ив гуголе примеров хоть завались

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "В цикле while не работает второе условие"  +/
Сообщение от qazarus email on 30-Авг-15, 16:03 
> книжки читай да ив гуголе примеров хоть завались

Эмм... Я что-то не понял, при чем тут if? Меня интересуют два правила в цикле. Я ему про Фому, он мне про Ерему... Не знаем - проходим мимо.
Я то уже сделал, но мне, все-же, интересно что еще мне тут насоветуют. Наверно дальше посоветуют железку перепаять...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "В цикле while не работает второе условие"  +/
Сообщение от pavlinux (ok) on 30-Авг-15, 17:52 
>> книжки читай да ив гуголе примеров хоть завались
> Эмм... Я что-то не понял, при чем тут if? Меня интересуют два
> правила в цикле.

Это же питонятина, там табы и пробелы важны  

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "В цикле while не работает второе условие"  +/
Сообщение от Аноним (??) on 30-Авг-15, 16:33 
>[оверквотинг удален]
> f = open("/dev/skynet", "r+")
> data = ''
> count = 10
> print >> f, "run\r\n"
> while (data[:8]!="doomsday") or (count != 0):
>     data=f.readline()
>     count = count - 1
> print data
> f.close
>

or на and смени, и будет щястье

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor