yc0526vip 发表于 2023-12-31 11:40:59

python 循环问题

@fishc

python 一直输出"hello world"的同时可以输入字符,在检测到输入"ting"时才会停止

FishC 发表于 2023-12-31 11:41:14

你可以使用一个无限循环,然后通过条件判断来控制循环的停止。以下是一个示例代码:

while True:
    print("hello world")
    user_input = input("请输入字符:")
    if user_input == "ting":
      break

这个代码会一直输出"hello world",同时等待用户输入字符。如果用户输入的字符是"ting",则循环会被打破,程序停止运行。否则,循环会继续执行。

注意,在循环内部使用了`input()`函数来获取用户输入,并将结果保存在`user_input`变量中。你可以根据需要对用户输入进行处理。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

yc0526vip 发表于 2023-12-31 11:42:34

FishC 发表于 2023-12-31 11:41
你可以使用一个无限循环,然后通过条件判断来控制循环的停止。以下是一个示例代码:




程序等待输入期间会停止,要写成不会停止循环

FishC 发表于 2023-12-31 11:42:50

yc0526vip 发表于 2023-12-31 11:42
程序等待输入期间会停止,要写成不会停止循环

非常抱歉,我之前理解错了你的问题。如果你希望程序在等待用户输入时不停止循环,可以使用多线程来实现。以下是一个示例代码:

import threading

def hello_world():
    while True:
      print("hello world")

def user_input():
    while True:
      user_input = input("请输入字符:")
      if user_input == "ting":
            break

# 创建两个线程
t1 = threading.Thread(target=hello_world)
t2 = threading.Thread(target=user_input)

# 启动两个线程
t1.start()
t2.start()

# 等待两个线程执行完毕
t1.join()
t2.join()

在这个代码中,我们创建了两个线程,一个用于输出"hello world",另一个用于等待用户输入。通过使用多线程,虽然用户输入会阻塞主线程,但"hello world"的输出线程仍然会继续执行。这样就实现了在等待用户输入期间不停止循环的效果。

需要注意的是,由于在两个线程中存在无限循环,因此可能需要使用其他方式(例如键盘中断)来终止程序的运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2023-12-31 12:30:39

本帖最后由 jackz007 于 2023-12-31 12:34 编辑

import threading

'''
   此代码不停地打印 'hello world',但是,同时可以接受键盘输入,
   当输入 'ting' 时,立即退出程序
'''

def user_input() :
    global s
    while True :
      s = input() . strip()
      if s == 'ting' :
            break

s = ''
t = threading . Thread(target = user_input)
t . start()
while s != 'ting' :
    print('helo world')
页: [1]
查看完整版本: python 循环问题