В чем разница между s.lower().count(«земля») и s.upper().count(«Земля»)?

#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") , потому что в вашей строке не осталось заглавных букв.