用户按ENTER键退出while循环

13 投票
15 回答
136527 浏览
提问于 2025-04-17 00:52

我是一名Python新手,最近被要求做一些练习,主要是使用while和for循环。我被要求写一个程序,让它一直循环,直到用户按下<Return>键来请求退出。到目前为止,我写了:

User = raw_input('Enter <Carriage return> only to exit: ')
running = 1
while running == 1:
    Run my program
if User == # Not sure what to put here
    Break
else
    running == 1

我尝试过:(按照练习的要求)

if User == <Carriage return>

还有

if User == <Return>

但这些都导致了语法错误。请问你能告诉我怎么用最简单的方法做到这一点吗?谢谢!

15 个回答

5

其实,我想你是在找一个代码,让它在按下键盘的某个键之前一直循环运行。当然,程序不应该一直等着用户输入。

  1. 如果你在使用 Python 2.7 的话,可以用 raw_input(),在 Python 3.0 中可以用 input(),这样程序就会等着用户按键。
  2. 如果你不想让程序一直等着用户按键,但又想让代码继续运行,那就需要做一些稍微复杂的事情,你需要用到 kbhit() 函数,这个函数在 msvcrt 模块里。

其实,ActiveState 有一个解决方案讨论了这个问题。请查看这个 链接

我觉得以下这些链接也会帮助你更好地理解这个问题。

  1. Python 跨平台监听按键

  2. 如何一次获取一个按键

  3. MS VC++ 运行时的有用例程

希望这些能帮助你完成你的工作。

17

你想要的东西就在这里;)

https://stackoverflow.com/a/22391379/3394391

import sys, select, os

i = 0
while True:
    os.system('cls' if os.name == 'nt' else 'clear')
    print "I'm doing stuff. Press Enter to stop me!"
    print i
    if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        line = raw_input()
        break
    i += 1
22

我在找其他东西的时候偶然发现了这个页面。这里是我使用的内容:

while True:
    i = input("Enter text (or Enter to quit): ")
    if not i:
        break
    print("Your input:", i)
print("While loop has exited")

撰写回答