2015-03-18 3 views
0

Как сделать вклад слова в Python Я хочу, чтобы иметь возможность иметь компьютер, чтобы задать вопрос пользователю какПринять вход как слово, а не целое число

test = int(input('This only takes a number as an answer')) 

Я хочу, чтобы иметь возможность иметь «тест» не число, а слово или букву.

+0

Может что помогает? [Python - как проверить, является ли ввод числом] (http://stackoverflow.com/questions/5424716/python-how-to-check-if-input-is-a-number-given-that-input-allways -returns-StrI). – mins

ответ

3

Просто снимите звонок int! То, что делает, принимает только целые числа.

т.е., используйте:

test = input('This takes any string as an answer') 
2

Снимите приведение типа к int

test = input('This only takes a word as an answer :') 

демонстрационную

>>> test = input('This only takes a word as an answer :') 
This only takes a word as an answer :word 
>>> test 
'word' 

Примечание - Из docs

Функция затем считывает строку из ввода, преобразует его в строку (отпарной заднюю новую строку), и возвращает, что

Поэтому input автоматически преобразует его в str и нет никакой необходимости в каком-либо явного гипсе.

0

Это должно работать:

test = str(input('This only takes a string as an answer: ')) 

НО

Поскольку Python работает с String, по умолчанию, на самом деле вам не нужна никакая отливки как int или str

Кроме того, если вы используете версии до 3.x, это будет raw_input вместо input. Поскольку ваше решение, похоже, принимало input, я могу быть уверен, что ваш Python в порядке. тест = вход («Это только принимает строку в качестве ответа»)

+3

Это работает, но вызов 'str' лишний. –

0
test = input("This only takes a number as an answer") 
test = raw_input("This only takes a number as an answer") 

Либо один должен работать

0

Если вы используете Python 2.7, просто используйте raw_input функцию.

test = raw_input('This only takes a string as an answer: ') 

Ie:

>>> test = raw_input('This only takes a string as an answer: ') 
This only takes a string as an answer: 2.5 
>>> type (test) 
<type 'str'> 

Если вы используете вход, вы можете иметь только номер: Правый вход:

>>> test = input('This only takes a number as an answer: ') 
This only takes a string as an answer: 2.5 
>>> type (test) 
<type 'float'> 

Неправильный вход:

>>> test = input('This only takes a number as an answer: ') 
This only takes a number as an answer: word 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<string>", line 1, in <module> 
NameError: name 'word' is not defined 
Смежные вопросы