2013-09-17 2 views
3

Я пишу программу, которая просит вас ввести 5 слов (по одному за раз), а затем распечатает их в обратном порядке. (Я использую Python 3.3.2) Вот что он должен выглядеть следующим образом: http://s11.postimg.org/rayd8m3oj/Untitled.pngAttributeError: объект 'str' не имеет атрибута 'toLowerCase'

Но вместо этого она дает мне это:

http://s10.postimg.org/c1p590vex/example.png

Вот мой код:

fifth_word = input("Please enter your 1st word: ") 
fifth_word = fifth_word.toLowerCase 
fourth_word = input("Please enter your 2nd word: ") 
fourth_word = fourth_word.toLowerCase 
third_word = input("Please enter your 3rd word: ") 
third_word = third_word.toLowerCase 
second_word = input("Please enter your 4th word: ") 
second_word = second_word.toLowerCase() 
first_word = input("Please enter your 5th word: ") 
first_word = first_word.capitalize() 
print("The sentence is: " + first_word + second_word + third_word + fourth_word + fifth_word) 

Заранее благодарен

+6

Что заставляет вас думать, что существует такая вещь, как 'toLowerCase'? Возможно, вы хотите ['lower'] (http://docs.python.org/2/library/string.html#string.lower). – BrenBarn

+0

Я задал вопрос на этом форуме: http://www.codecademy.com/forum_questions/5217cbf280ff33629400011d#comment-5225eaa880ff3315ef0072c3 – ComputerXplorer

+1

Этот код написан на JavaScript, а не на Python. – BrenBarn

ответ

3

Питон str класс не содержит метод с именем toLowerCase. Метод, который вы ищете, - lower.

Когда вы сталкиваетесь с таким сообщением об ошибке, первое, что вам нужно сделать, это посмотреть, что может сделать этот класс.

>>> s = 'some string' 
>>> dir(s) 
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__' 
, '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul_ 
_', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__' 
, '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_m 
ap', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'ist 
itle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition 
', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] 

Как вы можете видеть, toLowerCase здесь нет. Но вы также можете увидеть lower, который должен направлять вас в правильном направлении. И не бойтесь смотреть в документации, которая неизменно отличного качества.

+0

Это полезно - спасибо! Как вы получили все эти строковые значения? – ComputerXplorer

+0

Код в моем ответе был получен из интерактивного приглашения. Начните с себя, и введите то, что я сделал. И то, что я сделал, было использовать самую полезную функцию 'dir()': http://docs.python.org/3.3/library/functions.html#dir –

+1

Вы также можете найти 'help (s)' как полезную как 'dir'. – nofinator

4

Используйте вместо этого str.lower().

fifth_word = input("Please enter your 1st word: ") 
fifth_word = fifth_word.lower() 
fourth_word = input("Please enter your 2nd word: ") 
fourth_word = fourth_word.lower() 
third_word = input("Please enter your 3rd word: ") 
third_word = third_word.lower() 
second_word = input("Please enter your 4th word: ") 
second_word = second_word.lower() 
first_word = input("Please enter your 5th word: ") 
first_word = first_word.capitalize() 
print("The sentence is: " + first_word + second_word + third_word + fourth_word + fifth_word) 
+0

Спасибо, сейчас работает. Я добавлю несколько пробелов между словами, чтобы оно стало предложением – ComputerXplorer

Смежные вопросы