Проблема, которую я обнаружил, заключается в том, что место для сна (3) заставляло ваш ввод отображаться раньше, чем вы хотели, поскольку вы хотели подождать сам ввод.
Следующая проблема заключается в том, что если вы сделайте так, ваш вклад будет в конце, но он также покажет вам что-то вроде "[Ваше сообщение] >> [*] Я говорю ........". Я думаю, это потому, что вы выполняете ввод и l oop почти одновременно, и это как бы «сводит с ума», поэтому я добавил этот простой триггер opt, чтобы предотвратить работу печати и, наконец, получить ввод для нижняя часть без какого-либо странного исхода.
Это простое и грубое решение вашей проблемы.
Я не считаю его идеальным, и я уверен, что есть лучший способ решить эту проблему. Я тоже новичок ie в кодировании, но я надеюсь, что мое решение вам пригодится!
from time import sleep
from threading import Thread
def speaker():
while True:
if opt is not None:
print ("[*]I'm speaking........")
global opt
opt = 1
if __name__ == "__main__":
my_speaker = Thread(target=speaker)
my_speaker.start()
while True:
sleep(3)
opt = None
msg = input("[Your message]>> ")
print("Your message: " + msg)