Exit while loop by user hitting ENTER key

前端 未结 14 1847
难免孤独
难免孤独 2020-12-08 23:01

I am a python newbie and have been asked to carry out some exercises using while and for loops. I have been asked to make a program loop until exit is requested by the user

相关标签:
14条回答
  • 2020-12-08 23:41

    The following works from me:

    i = '0'
    while len(i) != 0:
        i = list(map(int, input(),split()))
    
    0 讨论(0)
  • 2020-12-08 23:42

    a very simple solution would be, and I see you have said that you would like to see the simplest solution possible. A prompt for the user to continue after halting a loop Etc.

    raw_input("Press<enter> to continue")
    
    0 讨论(0)
  • 2020-12-08 23:50

    If you want your user to press enter, then the raw_input() will return "", so compare the User with "":

    User = raw_input('Press enter to exit...')
    running = 1
    while running == 1:
        Run your program
    if User == "":
        break
    else
        running == 1
    
    0 讨论(0)
  • 2020-12-08 23:51

    The exact thing you want ;)

    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
    
    0 讨论(0)
  • 2020-12-08 23:55

    This works for python 3.5 using parallel threading. You could easily adapt this to be sensitive to only a specific keystroke.

    import time
    import threading
    
    
    # set global variable flag
    flag = 1
    
    def normal():
        global flag
        while flag==1:
            print('normal stuff')
            time.sleep(2)
            if flag==False:
                print('The while loop is now closing')
    
    def get_input():
        global flag
        keystrk=input('Press a key \n')
        # thread doesn't continue until key is pressed
        print('You pressed: ', keystrk)
        flag=False
        print('flag is now:', flag)
    
    n=threading.Thread(target=normal)
    i=threading.Thread(target=get_input)
    n.start()
    i.start()
    
    0 讨论(0)
  • 2020-12-08 23:55

    You need to find out what the variable User would look like when you just press Enter. I won't give you the full answer, but a tip: Fire an interpreter and try it out. It's not that hard ;) Notice that print's sep is '\n' by default (was that too much :o)

    0 讨论(0)
提交回复
热议问题