Найти - Пользователи
Полная версия: Не понятный порядок выполнения кода!
Начало » Python для новичков » Не понятный порядок выполнения кода!
1
|R|U|D|E|N|
Решил попробовать Python 3 и столкнулся с мистическим порядком выполнения кода.

Вот код простейшей функции:
def AUTO_DEL_VIRUSES(log_file):
global LOG
log = open(LOG, "r")
i = 0
for line in log.readlines():
i += 1
if "/" in line and i > 4:
raw_infect_file = line.split()
infect_file = raw_infect_file[0]
infect = raw_infect_file[1:]
print(line) #До этого места все ок
print("Удалить инфицированный файл? |", infect_file) #Вместо этой строки, дважды выполняется следующая строка и лишь потом эта строка.
yes_no = input("Enter=ok|n=not|exit=exit") #Эта строка выполняется первее предыдущей. Что за дела?
.....
Предполагаю что строки выполняются параллельно(CPU i3) или косяк в интерпретаторе…. Чего скажете?

OS: Mandriva Linux
PYTHON: 3.1
IDE: WingIDE 101
CPU: Intel i3
truporez
поставит все на свои места:
sys.stdout.flush()
|R|U|D|E|N|
truporez спасибо большое!
Еще бы понять почему так происходит?
truporez
потому что stdout имеет буфер, который очищается посредством flush.
|R|U|D|E|N|
truporez, помоги так как нечего не понемаю и принципиально хочу разобраться!
твой код к сожалению не помог.

Попрежнему сначало выполняется:

 yes_no = input("Enter=ok|n=not|exit=exit")
причем 2-а раза, подряд!! вообще бред какой то…

и лишь потом выполняется:

print(line)                                                                                          
print("Удалить инфицированный файл? |", infect_file)
|R|U|D|E|N|
Все, разобрался! Был не правильный алгоритм) так, что все выполнялось как и должно….
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB