Estoy tratando de ingresar un número en una lista donde cada elemento tiene un solo dígito, y tengo el dígito ingresado previamente para mostrar en la misma línea. Me gusta esto;

Salida

Enter any 4-digit number
>1234

El problema es que, en tiempo real , el programa no imprime el dígito justo después de escribirlo.

Solo después de que todo el programa haya terminado, imprime la lista completa.

import msvcrt

digit = []

print("Enter any 4-digit number\n>", end = "")
for i in range(4):
    n = int(msvcrt.getch()) #input 1234
    digit.append(n)
    print(n, end = "")

Editar

print(n, end = "")
print(n, end = "", flush = True)
0
Narko 20 feb. 2020 a las 19:42

2 respuestas

La mejor respuesta

Agregando flush = True a la última función print ().

print(n, end = "")
print(n, end = "", flush = True)
0
Narko 20 feb. 2020 a las 17:35

Puedes hacer esto con este código:

digits = input()
if (len(digits) == 4 and digits.isdigit()):
    print(digits)
    listOfDigits = list(digits) # if you need the array for future use
else:
    print("Invalid input") 
0
shu 20 feb. 2020 a las 17:25