我如何 运行 条件语句 "only once" 以及每次更改时?
How do I run a conditional statement "only once" and every time it changes?
我可能会问一个简单的问题。我有一个 python 程序,每分钟 运行s。但是我想要一段代码只在条件改变时 运行 吗?我的代码如下所示:
# def shortIndicator():
a = int(indicate_5min.value5)
b = int(indicate_10min.value10)
c = int(indicate_15min.value15)
if a + b + c == 3:
print("Trade posible!")
else:
print("Trade NOT posible!")
# This lets the processor work more than it should.
"""run_once = 0 # This lets the processor work more than it should.
while 1:
if run_once == 0:
shortIndicator()
run_once = 1"""
我 运行 它没有使用函数。但后来我每分钟都会得到一个输出。我试过 运行 它作为一个函数,当我启用注释代码时它有点像 运行s,而且处理使用更多。是否有更聪明的方法来做到这一点?
如果我理解正确的话,你可以将之前的输出保存到一个文件中,然后在程序开始时读取它,并且仅当之前的输出不同时才打印输出。
确实不清楚你的意思,但如果你只想在结果改变时打印通知,添加另一个变量以记住之前的结果。
def shortIndicator():
return indicate_5min.value5 and indicate_10min.value10 and indicate_15min.value15
previous = None
while True:
indicator = shortIndicator()
if previous is None or indicator != previous:
if indicator:
print("Trade possible!")
else:
print("Trade NOT possible!")
previous = indicator
# take a break so as not to query too often
time.sleep(60)
将 provious
初始化为 None
创建第三个状态,该状态仅在 while
循环第一次执行时为真;根据定义,结果不能与之前的结果相同,因为第一次确实没有之前的结果。
也许还注意到函数内部的布尔值 shorthand,这比将每个值转换为 int
并检查它们的总和更简单、更惯用。
我猜 time.sleep
是您一直在寻找的,以减少 运行 这段代码的负载,尽管问题的那部分仍然不清楚。
最后,检查可能的拼写。
我可能会问一个简单的问题。我有一个 python 程序,每分钟 运行s。但是我想要一段代码只在条件改变时 运行 吗?我的代码如下所示:
# def shortIndicator():
a = int(indicate_5min.value5)
b = int(indicate_10min.value10)
c = int(indicate_15min.value15)
if a + b + c == 3:
print("Trade posible!")
else:
print("Trade NOT posible!")
# This lets the processor work more than it should.
"""run_once = 0 # This lets the processor work more than it should.
while 1:
if run_once == 0:
shortIndicator()
run_once = 1"""
我 运行 它没有使用函数。但后来我每分钟都会得到一个输出。我试过 运行 它作为一个函数,当我启用注释代码时它有点像 运行s,而且处理使用更多。是否有更聪明的方法来做到这一点?
如果我理解正确的话,你可以将之前的输出保存到一个文件中,然后在程序开始时读取它,并且仅当之前的输出不同时才打印输出。
确实不清楚你的意思,但如果你只想在结果改变时打印通知,添加另一个变量以记住之前的结果。
def shortIndicator():
return indicate_5min.value5 and indicate_10min.value10 and indicate_15min.value15
previous = None
while True:
indicator = shortIndicator()
if previous is None or indicator != previous:
if indicator:
print("Trade possible!")
else:
print("Trade NOT possible!")
previous = indicator
# take a break so as not to query too often
time.sleep(60)
将 provious
初始化为 None
创建第三个状态,该状态仅在 while
循环第一次执行时为真;根据定义,结果不能与之前的结果相同,因为第一次确实没有之前的结果。
也许还注意到函数内部的布尔值 shorthand,这比将每个值转换为 int
并检查它们的总和更简单、更惯用。
我猜 time.sleep
是您一直在寻找的,以减少 运行 这段代码的负载,尽管问题的那部分仍然不清楚。
最后,检查可能的拼写。