【发布时间】:2012-06-17 14:20:52
【问题描述】:
我正在编写一个 Python 脚本来从特定端口获取数据。
因此,只要端口打开,我就有一个 while 循环来获取我的数据。
在这个while循环中,我添加了一个变量,我们称之为foo1。
时间到了,我不想再获取任何数据了。
所以伪代码如下所示:
foo1 = 0
try:
while True:
fetch data
foo1 = foo1 + 500
if time up:
break
finally:
close socket
print foo1
在我的 while 循环内 foo1 正确加起来。但在循环之外
foo1 始终为零。你有什么想法吗?
只需用 coh0 交换 foo1 编辑:
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。
-
是的,我更正了。不知道 SSCE 是什么,抱歉 :)
-
这还是太多了。您需要创建最简单的代码来显示您的问题。请阅读我提供的链接,然后更新您的问题。
标签: python sockets variables loops while-loop