Я пишу скрипт Python для извлечения данных из определенного порта. Итак, у меня есть цикл while, который извлекает мои данные, пока порт открыт. В этом цикле while я добавляю переменную, назову ее foo1
. Когда время заканчивается, я больше не хочу получать данные.Доступ к переменной за пределами цикла while, Python
Так псевдокод будет выглядеть следующим образом:
foo1 = 0
try:
while True:
fetch data
foo1 = foo1 + 500
if time up:
break
finally:
close socket
print foo1
Внутри моего время цикла foo1
добавляет правильно. Но вне цикла foo1
всегда равен нулю. Есть ли у вас какие-либо идеи?
Просто обмен foo1 с coh0 редактирования:
import re
coh = [0]
nachricht = ' S="0" '
coh0 = 0
time = 0
try:
while True:
time += 1
coh = re.findall(r'\bS="\d"', nachricht)
coh_value = re.findall(r'\d', coh[0])
if coh:
if int(coh_value[0]) == 0:
coh0 = int(coh0) + 500
print coh0
if time == 10:
coh0 = int((int(coh0)/500)/120)
print "Here coh0 is zero again",int(coh0)
break
finally:
pass
print "Here coh0 is zero again",int(coh0)
Ваш пример не работает, поскольку вы ссылаетесь на 'foo1' до его существования. Пожалуйста, дайте простой, автономный, ** рабочий пример. –
Если часть выборки и добавления находится внутри функции, убедитесь, что вы вернули свое значение после завершения. –
Не просто сбрасывайте свой код, дайте нам [Short, Self Contained, Correct, Example] (http://sscce.org/). –