我希望我在 Python 的 shell 中无限闪烁/闪烁的文本不会阻止代码运行过度

问题描述 投票:0回答:1

这是我第一次在这里提问,如果有点愚蠢,我很抱歉,但我是编码新手。

我正在制作一个基于文本的锻炼游戏,我想告诉用户当出现无限闪烁的文本时,他可以输入一些东西

from time import sleep

    print("When this signs happear: ")
    user_answer() 

    sleep(2.3)
    print("it means you can input something.")
    user_input = input()

def user_answer():
    while 1:
        print("\r< ", end=""), sleep(1.1)
        print("\r> ", end=""), sleep(1.1)
        continue

我尝试使用“break”而不是“continue”,但错误仍然存在: 当显示闪烁的文本时,它无限但代码不会在它上面前进, 简单来说,print("这意味着你可以输入一些东西。") 并没有发生

提前tnx

python loops text infinite-loop flashing
1个回答
0
投票
def user_answer():
    while 1:
        print("\r< ", end=""), sleep(1.1)
        print("\r> ", end=""), sleep(1.1)
        continue

由于您使用无限循环,您的代码将陷入无限循环。 如果我理解正确的话,你希望循环是无限的,直到用户输入一些东西

为此,您想在所谓的线程内启动“无限循环功能”。

线程将启动您的功能,而主线程(您的应用程序)将继续。

一旦用户输入,你想要求线程打印停止

例子:

from time import sleep
import threading

def user_answer(stop_event):
    while not stop_event.is_set():
        print("\r< ", end=""), sleep(1.1)
        print("\r> ", end=""), sleep(1.1)

print("When this signs appear: ")

stop_event = threading.Event() # to tell when the thread stops
th = threading.Thread(target=user_answer, args=(stop_event,))
th.start()

print("it means you can input something.")
user_input = input()
if user_input:
    stop_event.set()
    th.join()  # Wait for the thread to stop

# continue your code
© www.soinside.com 2019 - 2024. All rights reserved.