How to accept input without the need to press enter Python 3

12,256

If you are using windows, msvcrt is the answer:

import msvcrt

print ("Please enter a value.")
char = msvcrt.getch()
print char

If you are not using windows, take a look at the following snippet at this source:

getch = _Getch()
print ("Please enter something: ")
x = getch()
print x
Share:
12,256
amin
Author by

amin

just trying to learn little things from a lot of people... interests: html, css, java, python , visual basic, c++;

Updated on June 28, 2022

Comments

  • amin
    amin almost 2 years

    i'm wondering how to accept input without the need to press enter. i searched online, and i get something regarding raw_input, but i think that became obsolete after the arrival of python 3.0. sometimes, i run a while loop on a whole program since i want to ask the user: continue? (y/n):

    for instance consider the code:

    import random
    
    d = input('Toss coin? (y/n): ')
    
    while d != 'n' and d!= 'N':
        c = random.randint(1,2)
        if c == 1:
            print('HEADS!')
        else:
            print('TAILS!')
    
        d = input('Toss coin? (y/n): ')
    

    but i just want to add more flare to my program by just not having the user press enter everytime. just press y or n and the program loops or breaks accordingly.

    ok so this is the new code:

    import random
    import msvcrt
    
    d = input('Toss coin? (y/n): ')
    
    while d != 'n' and d!= 'N':
        c = random.randint(1,2)
        if c == 1:
            print('HEADS!')
        else:
            print('TAILS!')
    
        print('Toss coin? (y/n): ')
        d = msvcrt.getwch()
    

    but msvcrt still doesn't work