Python как узнать количество символов в пользовательском вводе - PullRequest
2 голосов
/ 07 мая 2011

я создаю своего рода игру-викторину на python, и один из вопросов - «введите слово, содержащее 5 букв».

так что я хочу, чтобы пользователь набрал все, что имеет 5 букв или символов. Затем Python проверяет наличие 5 букв и отправляет их на следующий вопрос, если он правильный.

Ответы [ 3 ]

3 голосов
/ 07 мая 2011

Для вашей игры, я предполагаю, что у вас есть цикл while, который заставляет все двигаться.

Сделайте это:

word = input("Give me a 5 letter word: ")

В строке выше у пользователя будет 5-буквенное слово иих ввод будет сохранен в переменном слове.Затем проверьте

if len(word) != 5:
    print "that's not 5 letters..."
1 голос
/ 07 мая 2011
answer = raw_input("What is a five letter word? ")

if len(answer) == 5:
    print "Correct!"
else:
    print "Wrong, that has", len(answer), "letters!"

Если вы используете Python 3, вам нужно заменить raw_input на input и поставить круглые скобки вокруг выражений печати (поскольку print становится функцией).

1 голос
/ 07 мая 2011

Вы можете попробовать это.

if len(word) is 5

РЕДАКТИРОВАТЬ
Видимо, это плохо.Я не знал на момент публикации.Во всяком случае, для тех, кто не знает и не любит, вот небольшой эксперимент

>>> a = "hello"
>>> len(a) is 5
True
>>> len(a) is 4
False
>>> len(a) is 5.0
False
>>> len(a) == 5
True
>>> len(a) == 4
False
>>> len(a) == 5.0
True

РЕДАКТИРОВАТЬ снова Основываясь на комментарии interjay, я также провел эксперимент.

>>> for i in range(1000):
...     a = 'x'*i
...     if len(a) is not i:
...             print(i)
...             break
... 
257

Если бы кто-то мог объяснить, почему он работает до 256, я бы хотел добавить его сюда

РЕДАКТИРОВАТЬ еще раз
Это, вероятно, объясняет поведение.Я цитирую interjay из комментариев.

Это оптимизация в CPython: объекты для целых чисел в диапазоне от -1 до 256 предварительно распределяются, и каждый раз, когда встречается одно из этих значений, ему даетсятот же объект.Для других целых чисел каждый раз создается новый объект.Конечно, это детали реализации и могут меняться между версиями Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...