python脚本如何添加启动和停止按钮?
发布网友
发布时间:2022-04-20 08:05
我来回答
共3个回答
热心网友
时间:2023-07-04 08:05
可以使用一个标志变量来控制程序的启动和结束。
首先,在主程序中设置一个标志变量,例如 running,用于指示程序是否处于运行状态。在程序开始时,running 应设置为 False。
然后,在每次循环中检查 running 的值。如果 running 为 True,则执行 auto() 函数;如果 running 为 False,则等待用户输入命令。
当用户输入 qd 命令时,将 running 设置为 True,并执行 auto() 函数。当用户输入 tz 命令时,将 running 设置为 False,并执行 reset() 函数。
示例代码如下:
running
running = False
while True:
cmd = input("请输入命令:")
if cmd == 'qd':
running = True
elif cmd == 'tz':
running = False
if running:
auto()
else:
reset()
在这段代码中,我们使用了一个 while 循环来不断接收用户的命令。在每次循环中,我们会读入用户的命令,并根据命令的不同设置 running 的值。如果 running 为 True,则执行 auto() 函数;如果 running 为 False,则执行 reset() 函数。
这样,用户就可以随时输入 tz 命令来停止程序,也可以输入 qd 命令来重新启动程序。
希望这些信息能够帮助您。
热心网友
时间:2023-07-04 08:06
from time import sleep
def auto():
while True:
cd=input("请输入命令:")
if cd=='qd':
print("已启动")
return zidong()
if cd=='tz':
print("已重置")
return reset()
def reset():
return
def zidong():
while True:
sleep(0.05)
zt=side()
if zt=='BUY':
return sell()
elif zt=='SELL':
return buy()
else:
return
def side():
a=input(f"选择状态:输入BUY或SELL:")
print(f"选择的是:{a}\n当前进入:{a}模式")
return a
def sell():
tag="-"
print("操作中…")
print(f"本次操作完毕")
print(f"当前状态:SELL\n{tag*60}\n")
return auto()
def buy():
tag="-"
print("操作中…")
print(f"本次操作完毕")
print(f"当前状态:BUY\n{tag*60}\n")
return auto()
if __name__ == "__main__":
auto()
'''python运行效果
请输入命令:qd
已启动
选择状态:输入BUY或SELL:BUY
选择的是:BUY
当前进入:BUY模式
操作中…
本次操作完毕
当前状态:SELL
------------------------------------------------------------
请输入命令:qd
已启动
选择状态:输入BUY或SELL:SELL
选择的是:SELL
当前进入:SELL模式
操作中…
本次操作完毕
当前状态:BUY
------------------------------------------------------------
请输入命令:tz
已重置
'''
热心网友
时间:2023-07-04 08:06
您可以使用 Python 中的 threading 模块来实现这个功能。threading 模块提供了一个 Thread 类,允许您创建和管理多线程。
您可以把 auto() 函数放到一个新的线程中执行,然后在主线程中检查输入命令,如果检测到输入了 tz 命令,则可以通过调用 Thread 类的 stop() 方法来终止线程。代码大概长这样:
from threading import Thread
def auto():
# 自动运行流程
while True:
sleep(0.05) # 限速
if side() == 'BUY':
sell()
if side() == 'SELL':
buy()
auto_thread = Thread(target=auto)
while True:
cd = input("请输入命令:")
if cd == 'qd':
auto_thread.start()
if cd == 'tz':
auto_thread.stop()
reset() # 重置流程
这样就可以在自动运行流程进行的同时随时输入 tz 命令来终止流程了。追问非常感谢您的细致回答,尝试了一下,在输入tz停止auto_thread.stop()线程时,提示AttributeError: 'Thread' object has no attribute 'stop',请问如何解决?