#python
#python
Вопрос:
Сегодня я получил задание посчитать слово «земля» в тексте с использованием python-3. Я точно знаю, что я должен использовать s.count
, но в тексте слово записывается как в верхнем, так и в нижнем регистрах. Я узнал, что s.lower().count("earth")
это то, что мне нужно, но я не понимаю, почему s.upper().count("earth")
или s.lower().count("Earth")
или s.upper().count("Earth")
нет? Мне просто нужно объяснение. Вот текст:
s = "In a distant, but not so unrealistic, future
where mankind has abandoned earth because it has
become covered with trash from products sold by
the powerful multi-national Buy N Large corporation,
WALLE, a garbage collecting robot has been left to
clean up the mess. Mesmerized with trinkets of Earth's
history and show tunes, WALLE is alone on Earth except
for a sprightly pet cockroach. One day, EVE, a sleek
(and dangerous) reconnaissance robot, is sent to Earth to
find proof that life is once again sustainable."
Комментарии:
1. Все, кроме s.lower().count(«земля»), в результате дает 0 (ноль) вместо 4 (в тексте четыре слова «Земля»).
2. Что вы думаете
s.lower()
иs.upper()
делаете? Как вы могли найти «earth» в тексте, содержащем только символы верхнего регистра. Попробуйтеs.upper().count("EARTH")
.3. Конечно, я могу ошибаться, потому что я новичок, но, насколько я знаю, s.lower() означает нижний регистр, а s.upper() верхний. Когда я пытаюсь s.count («Земля»), в результате я получаю 3 (количество слов «Земля», начинающихся только с символа верхнего регистра). Это то, о чем я спрашиваю. В чем разница между s.lower().count(«земля») и просто s.count («Земля»)
4. Что касается «Мне нужно объяснение»: вы можете найти
count
lower
иupper
в документации.5. Вы также можете использовать синтаксис многострочного строкового литерала.
"""string goes here"""
.
Ответ №1:
когда вы используете s.lower()
свою строку, она становится :
в далеком, но не таком уж нереальном будущем, когда человечество покинет землю, потому что она покрылась мусором от продуктов, продаваемых могущественной многонациональной корпорацией buy n large, walle, робот-сборщик мусора был оставлен для уборки беспорядка. загипнотизированный безделушками из истории земли и мелодиями шоу, Уолле один на земле, если не считать веселого домашнего таракана. однажды еву, изящного (и опасного) робота-разведчика, отправляют на землю, чтобы найти доказательства того, что жизнь снова устойчива.
в этом тексте не существует ЗЕМЛИ, потому что все символы в нижнем регистре
также, когда вы используете s.uper()
:
В ДАЛЕКОМ, НО НЕ ТАКОМ УЖ НЕРЕАЛЬНОМ БУДУЩЕМ, КОГДА ЧЕЛОВЕЧЕСТВО ПОКИНЕТ ЗЕМЛЮ, ПОТОМУ ЧТО ОНА ПОКРЫЛАСЬ МУСОРОМ ОТ ПРОДУКТОВ, ПРОДАВАЕМЫХ МОГУЩЕСТВЕННОЙ МНОГОНАЦИОНАЛЬНОЙ КОРПОРАЦИЕЙ BUY N LARGE, WALLE, РОБОТ-СБОРЩИК МУСОРА БЫЛ ОСТАВЛЕН ДЛЯ УБОРКИ БЕСПОРЯДКА. ЗАГИПНОТИЗИРОВАННЫЙ БЕЗДЕЛУШКАМИ ИЗ ИСТОРИИ ЗЕМЛИ И МЕЛОДИЯМИ ШОУ, УОЛЛЕ ОДИН НА ЗЕМЛЕ, ЕСЛИ НЕ СЧИТАТЬ ВЕСЕЛОГО ДОМАШНЕГО ТАРАКАНА. ОДНАЖДЫ ЕВУ, ИЗЯЩНОГО (И ОПАСНОГО) РОБОТА-РАЗВЕДЧИКА, ОТПРАВЛЯЮТ НА ЗЕМЛЮ, ЧТОБЫ НАЙТИ ДОКАЗАТЕЛЬСТВА ТОГО, ЧТО ЖИЗНЬ СНОВА УСТОЙЧИВА.
все символы являются верхними и не являются Землей
Ответ №2:
Вызов s.lower()
сделает вашу строку s строчными буквами. Затем вы вызываете строку из всех маленьких букв count("earth")
, потому что в вашей строке не осталось заглавных букв.