Как сделать так, чтобы питон не выводил значение из input()?
У меня есть скрипт, который спрашивает у пользователя его имя, вроде:
print(input('What\'s your name? '))
И в ответ я получаю:
What's your name? Boris
Boris
Есть ли какой-то способ сделать так, чтобы вывод выглядел так же, но без первой строки? (What's your name? Boris). Или другими словами - как сделать так, чтобы метод input() после ввода - ничего не выводил?
Нашёл способ решения в этом вопросе, но как сказано в комментариях - при использовании того метода - пользователь не видит собственный ввод в терминале. А потому это решение не валидно, так как в моём случае пользователь должен видеть собственный ввод, но как только он нажал клавишу Enter - этот ввод не должен выводиться в окно терминала, пока переменная, использующая этот ввод не будет выведена через print().
Пример желаемого вывода в терминале:
Boris
Без строки What's your name? Boris
Ответы (3 шт):
Можно стереть введённое пользователем слово с помощью Escape последовательностей для управления терминалом, в частности положением курсора. Лучше использовать библиотеки, чем непосредственно коды - для независимости от конкретного терминала, но я библиотеками не пользовался, поэтому сказать ничего не могу. В Linux для этих целей есть tput утилита.
На Ubuntu я сделал так:
print('What\'s your name? ', end='')
print("\033[s", end='') # Сохраняем положение курсора
name = input()
print("\033[u", end='') # Восстанавливаем положение курсора
print("\033[K") # Очищаем строку начиная с текущего
# положения курсора до конца
У тебя input задает вопрос, а ты выводишь его с print. Otvet: name = input("Whats ur name ?\n")
По факту ты только вводишь значение.
