鱼C论坛

 找回密码
 立即注册
查看: 1903|回复: 5

[已解决]求一个函数

[复制链接]
发表于 2021-1-14 16:45:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求一个函数
运行程序时
让一个循环通过外界操作停止
最佳答案
2021-1-14 17:44:14



你想用 Python 这样搞,如果用 GUI 可以直接弄个按钮

如果不用 GUI 编程可以像下面代码这样,只要你外部输入任何值回车就会终止函数循环:
from threading import Thread
from time import sleep

def test():
    number = 0
    while FLAG == True:
        number += 1
        sleep(0.5)
    print(number)

FLAG = True
t = Thread(target=test)
t.start()

FLAG = input('>>>')

想达到你的需求应该不管用不用 GUI 都需要用到多线程,否则就像楼上那样直接强制 Ctrl + c 终止运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-14 17:00:44 | 显示全部楼层
try:
    while 1:
        print('循环')
except:
    exit()
ctrl+c停止
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-14 17:01:02 | 显示全部楼层


GUI 多线程?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-14 17:02:57 | 显示全部楼层

我表示我不会多线程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-14 17:44:14 | 显示全部楼层    本楼为最佳答案   



你想用 Python 这样搞,如果用 GUI 可以直接弄个按钮

如果不用 GUI 编程可以像下面代码这样,只要你外部输入任何值回车就会终止函数循环:
from threading import Thread
from time import sleep

def test():
    number = 0
    while FLAG == True:
        number += 1
        sleep(0.5)
    print(number)

FLAG = True
t = Thread(target=test)
t.start()

FLAG = input('>>>')

想达到你的需求应该不管用不用 GUI 都需要用到多线程,否则就像楼上那样直接强制 Ctrl + c 终止运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-14 17:45:47 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-1-14 17:54 编辑

不知道你想要的是不是我写的这样
import time
switch = [1]

def setswitch(switch):
    if switch[0] ==1:
        switch[0] = 0
    else:
        switch[0] = 1

        #设置一个控制开关
        #循环中是 n == 5 时后执行此函数
        #由该函数控制循环是否继续
n = 0
while switch[0]:
    print(n)
    time.sleep(2)
    if n == 5:
        setswitch(switch)
        print('退出')
        
    n += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表