Я хочу читать данные с клавиатуры на python
Я пробую это:
nb = input('Choose a number')
print ('Number%s \n' % (nb))
Но это не работает, ни с eclipse, ни в терминале, это всегда вопрос остановки. Я могу набрать номер, но ничего не происходит.
Ты знаешь почему?
Ответы:
пытаться
и если вы хотите получить числовое значение, просто преобразуйте его:
источник
Похоже, вы смешиваете здесь разные питоны (Python 2.x против Python 3.x) ... Это в основном правильно:
Проблема в том, что он поддерживается только в Python 3. Как ответил @sharpner, для более старых версий Python (2.x) вы должны использовать функцию
raw_input
:Если вы хотите преобразовать это в число, попробуйте:
... хотя вы должны учитывать, что это может вызвать исключение:
И если вы хотите распечатать число с помощью форматирования, в Python 3
str.format()
рекомендуется:Вместо того:
Но оба варианта (
str.format()
и%
) работают как в Python 2.7, так и в Python 3.источник
space
после строки, чтобы пользователь мог ввести свой ввод, если мир.Enter Tel12340404
противEnter Tel: 12340404
. видеть! : PНеблокирующий, многопоточный пример:
Поскольку блокировка ввода с клавиатуры (поскольку
input()
функциональные блоки) часто не то, что мы хотим делать (мы часто хотели бы продолжать делать другие вещи), вот очень урезанный многопоточный пример, чтобы продемонстрировать, как продолжать работу вашего основное приложение, продолжая читать ввод с клавиатуры всякий раз, когда они поступают .Это работает путем создания одного потока для работы в фоновом режиме, постоянно вызывающего
input()
и передачи любых данных, которые он получает, в очередь.Таким образом, вашему основному потоку остается делать все, что он хочет, получая данные ввода с клавиатуры из первого потока всякий раз, когда что-то есть в очереди.
1. Пример кода на голом Python 3 (без комментариев):
2. Тот же код Python 3, что и выше, но с подробными пояснительными комментариями:
Пример вывода:
Ссылки:
Связанные / Cross-Linked:
источник
input([prompt])
эквивалентенeval(raw_input(prompt))
и доступен начиная с python 2.6Поскольку это небезопасно (из-за eval), raw_input следует использовать для критически важных приложений.
источник
raw_input
был переименован вinput
и НЕ eval.Это должно работать
источник
input()
?