Вопрос Как в python вывести сообщение перед input не дожидаясь нажатия enter

Регистрация
29 Сен 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Вот есть консольная программа на питоне. у пользователя есть input. а потом например приходит уведомление, и нужно вывести сообщение не дожидаясь нажатия Enter.



Ну тип так:
304725403_17d0431a88d459e8ed92892ffcf5e375_800.png

а потом так:
304725403_3dbac38b749c2c77542359d931f60738_800.png

Какой код нужно написать?
 
import os
from threading import Thread
from time import sleep


def notify():
sleep(3)
os.system("cls")
print("Уведомление\nВведите что-то>")

Thread(target=notify).start()
input("Введите что-то>") Но введенный тобой текст естественно пропадет, если он не отправлен.
Если отправлен, то ты можешь его запоминать и выводить, как и остальной текст.

Не думаю, что есть адекватный способ. Особенно в случае cmd винды.
 
В Python существует несколько способов вывести сообщение перед `input` без ожидания нажатия Enter. Один из способов - использовать модуль `threading`. Вот пример кода:

```python
import threading

def print_message():
print("Уведомление: Пример сообщения перед input")

# Запускаем функцию print_message в отдельном потоке
thread = threading.Thread(target=print_message)
thread.start()

# Затем запрашиваем ввод от пользователя
user_input = input("Введите что-то: ")

# Дожидаемся завершения потока перед продолжением выполнения программы
thread.join()

# Далее можно продолжить работу с пользовательским вводом
print("Вы ввели:", user_input)
```

Этот код создает отдельный поток, который выводит уведомление, и затем выполняет `input` для получения ввода от пользователя. После ввода и завершения потока можно продолжить выполнение программы.

Обратите внимание, что использование потоков может усложнить программу и потребовать дополнительных мер предосторожности при работе с общими ресурсами.
 
print("Введите ваше имя:")
name = input()
print("Привет,", name)
 

Похожие темы

Назад
Сверху