如何在循环中忽略输入

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

我正在尝试找出如何忽略 Python 循环中的输入。

下面的代码是一个简单的Python代码,它接受数字输入作为循环数,并在循环中打印一个字符。

import time
    
while (1):  # main loop
    x = 0
    inputValue = input("Input a number: ")

    while(x <  int(inputValue)):
        print(x)
        x = x + 1
        time.sleep(1)

但是,当您从键盘输入内容并在循环正在进行时按 Enter 键时,该值将成为下一个循环主循环的输入。

我的问题是如何避免这种情况或忽略循环中间的输入。

我尝试使用flush或使用键盘中断,但仍然是同样的问题。

python raspberry-pi
1个回答
2
投票

这可能是一个解决方案:

import time
import sys

def flush_input():
    try:
        import msvcrt
        while msvcrt.kbhit():
            msvcrt.getch()
    except ImportError:
        import sys, termios    #for linux/unix
        termios.tcflush(sys.stdin, termios.TCIOFLUSH)

while (1): # main loop
    x = 0
    flush_input()
    inputValue = input("Input a number: ")
    while(x <  int(inputValue)):
        print(x)
        x = x + 1
        time.sleep(1)

归属:罗塞塔代码

© www.soinside.com 2019 - 2024. All rights reserved.