Яндекс.практикум Python Урок16. почему не пропускает задачу?
Здравствуйте! Я только начала изучение Python. Не могу понять в чем ошибка, на что не обратила внимание.
Задание : Допишите код так, чтобы ваша программа напечатала фразу Привет, Алина, я Анфиса! Подсказка:
Всё, что требуется — присвоить переменной index такое значение, чтобы из списка была выбрана Алина. Какое по счёту место в списке она занимает? С какого индекса начинается отсчёт в списках?
Строку с вызовом print() не изменяйте.
Результат : Привет, Алина, я Анфиса! —- Как бы все получилось, но вышло сист.оповещение : -Переменная index должна быть целым числом.
Почему при изменении значения friends[index] на friends[3] в результате программа напечатала имя Алиса, а при соблюдении условия — Строку с вызовом print() не изменяйте. — ничего не вышло? И как переменную index сделать целым числом?
- Вопрос задан более двух лет назад
- 7939 просмотров
- Вконтакте

Для чего?
index =(friends[3])
Вот есть у вас переменная friends , содержащая в себе список имен.
У каждого имени есть свой индекс в списке, начиная с нуля
Все, что вам нужно сделать — это получить нужный элемент из списка friends , использовав индекс.
Вам нужна Алина, ее индекс — 3. Индекс — это просто число, не нужно усложнять, добавляя разные скобки и прочее.
Все, что вам нужно сделать — это
index = 3
Научите анфису отвечать на вопрос анфиса как дела случайным образом
Анфиса научилась отличать своё имя от других. Теперь надо научить её извлекать суть запроса.
Перепишите функцию check_query() так, чтобы при любом запросе она «отрезала» от строки имя и возвращала только запрос, без имени.
Например, если Анфисе пришёл запрос «Толя, что это за ерунда?» — функция check_query() должна вернуть строку ‘что это за ерунда?’.
подсказка: Верните из функции check_query() второй элемент списка elements
не могу решить задачу check_query()
Анфиса научилась отличать своё имя от других. Теперь надо научить её извлекать суть запроса.
Перепишите функцию check_query() так, чтобы при любом запросе она «отрезала» от строки имя и возвращала только запрос, без имени.
Например, если Анфисе пришёл запрос «Толя, что это за ерунда?» — функция check_query() должна вернуть строку ‘что это за ерунда?’.
подсказка: Верните из функции check_query() второй элемент списка elements
Ответ на вопрос «как дела?» (95 вариантов)
У нас есть три традиционных ответа на вопрос «Как дела?». Если все хорошо — тогда «Хорошо!». Если все не очень хорошо, тогда — «Хорошо». Если все откровенно плохо — то «Хорошо…».
Предлагается еще 95 вариантов, как можно ответить на этот вопрос. Итак, как дела?
Лучше всех!
По тихой грусти
Всё ок!
Нормально.
Спасибо-все хорошо-а у вас? — очень приятно-до свидания
Ничего
Чего только ни…
Эх, какие у нас дела? У нас делишки, а ДЕЛА у прокурора
Да пока живу, и вроде умирать не собираюсь
Пенсия хорошая. повысили.
Зарплата хорошая. Маленькая, но хорошая.
Потому что
Что потому?
Просто так
Что, так просто?
Все пучком
Как в «Брат 2»
Отлично! Чего и вам желаю
А у вас?
Все хорошо, а будет еще лучше!
Лучше всех. Хорошо, что никто не завидует.
Отлично, не дождётесь.
Хорошо — не поверишь, плохо — не поможешь
Поцелуй меня сперва!
Вчера сломал два ребра…
Как сажа бела
Как в сказке
Как всегда, то есть хорошо
Как всегда, то есть плохо
C точки зрения банальной эрудиции игнорирую критерии утопического субъективизма, концептуально интерпретируя общепринятые дефанизирующие поляризаторы, поэтому консенсус, достигнутый диалектической материальной классификацией всеобщих мотиваций в парадогматических связях предикатов, решает проблему усовершенствования формирующих геотрансплантационных квазипузлистатов всех кинетически коррелирующих аспектов, а так нормально.
Хорово
Регулярно!
Как у тебя?
Как у тебя.
Как у тебя?!
Как в Польше: у кого телега тот и пан
Какие, собственно, дела?
Как всегда
Как видишь
Ещё жива.
Окей
Не умер и не женился
А как в самом деле дела?
А дела ли это?
А что такое?
Нет никаких дел
Какие дела? Я не при делах нынче!
Ах я бедный-несчастный, так устал, мне каждый день приходится придумывать ответ на вопрос «Как дела?»
Старушенция Агата Кристи однажды сказала замечательную фразу: «Не обязательно что-то говорить, если нечего сказать».
Есть два способа поставить человека в тупик: спросить у него «Как дела» и попросить рассказать что-нибудь
Не знаю
Затрудняюсь ответить
Амбивалентно
Вялотекуще
Дела идут, контора пишет
А вы не торопитесь?
Вы хотите об этом поговорить?
День на карете, два пешком!
Как у попугая, которого кошка тянет за лапу по полу, а он радостно кричит «Поехали!»
Как у зебры
Как в такси. Чем дальше, тем дороже.
Как у колобка — слева и справа одинаково.
Как сосиска в тесте, весело и сердито
По сравнению с Бубликовым неплохо
Так же как у Майкла Джексона 15 лет назад.
Лучше чем вчера, но хуже чем завтра…
Какие дела с такими делами!
Дела? ?? Нет их, не деловой я…
Также, как и пять минут назад…
Тебе все сразу или частями?
Я от природы бездельник.
Столько не сделано, столько не сделано! А сколько еще предстоит не сделать!
Дел много
Ногсшибательно
Женщинам можно отвечать так-скосив кокетливо глаза — «А что?»
Хорошо! И у тебя?
Регулярно!
Терпимо.
Безусловно.
В Анголе дети голодают, а так все в порядке
Всё в шоколаде, даже клавиатура!
Расту, цвету, старею…Всё как обычно
Да ты меня прям до экстаза доводишь своими вопросами… Спроси ещё чем я занимаюсь и я твоя на веки…
Вы несравненно оригинальны в своих вопросах
Да нормально, вчера нобелевскую премию получила за вклад в развитие экоструктурных подразделений в области китообразных инфузорий туфелек и тапочек и за открытие нано-технологий, которые помогут пингвинам преодолеть ледниковый период в африканских борах и гавайских пустынях в штате Масса Чуссетс округ Вашингтон.
Как Скрудж Макдак
Тяжела жизнь без Ново-Пассита…
Мне тоже всё равно, как у тебя дела, но так как мы с тобой давно не виделись, из приличия надо что-то спросить.
Вашими молитвами
Дела мои отлично! Жду дальнейших расспросов о своей личной жизни!
Задай другой вопрос пожалуйста
Завидуйте молча
Пока еще никого не загрызла
В среднем по району
Относительно. Если сравнивать с Лениным — то хорошо, если с миллионером — то не очень.
Задача по питону
Научите Анфису отвечать на вопрос «Анфиса, как дела?» случайным образом.
Напишите функцию how_are_you(), она должна вернуть случайный элемент из списка answers. Добавьте в список свои варианты ответов: ничего не сломается, а работать станет интереснее.
# Подключите библиотеку random и дайте ей краткое имя
answers = ['Норм.', 'Лучше всех :)', 'Ну так', 'Отличненько!', 'Ничего, жить буду']
# Напишите ваш код здесь
Я вот так сделала:
А вот какой получается дурацкий диалог (Алиса, наверное, думала, что она разговаривает с мужчиной):
Получилось так)
или так.. )
import random as r
answers = ['Норм.', 'Лучше всех :)', 'Ну так', 'Отличненько!', 'Ничего, жить буду']
def how_are_you():
return r.choice(answers)
print(how_are_you())
Вот как у меня получилось
# Строки и форматирование
Вы уже умеете выводить на экран текст, складывая строки. А вот как напечатать без этого? Нужно в скобках функции print() перечислить через запятую аргументы, которые она печатает:
Запятая между аргументами по умолчанию заменяется на пробел.
Это значит, что в сообщения можно не добавлять пробелы, когда составляете сложную фразу. Достаточно разделить аргументы функции print() запятой. И, что приятно, количество этих аргументов не ограничено:
# Упражнения
- Продолжим учить Виту вести беседы о погоде. Напечатайте на экран данные из списка weather_today в формате 'Сегодня гроза и на градуснике 21' . Вместо сложения строк и приведения чисел к строкам просто перечислите аргументы в скобках функции print() .
# Метод split()
Разбить фразу на слова, и вообще разделить строку по определённому символу можно методом split() (англ. «разделить»). В результате получится список строк. Метод split() принимает аргумент, указывающий, какой разделитель использовать.
Замечание. Да, Python позволяет использовать отрицательные индексы для обращения к элементам списка. При этом -1 соответствует последнему элементу, -2 — предпоследнему, и т.д. В общем случае, blok_list[-k] — это то же самое, что blok_list[len(blok_list) — k] , только короче. Например, если нужен пятый символ с конца списка s , можно написать s[len(s) — 5] или, короче, s[-5] . Если в вызове split() не указывать разделитель, то строка разобьётся по пробелам:
Тогда появятся лишние точки на концах слов. Их удобнее всего убирать методом strip() — он убирает указанные символы в начале и в конце.
# Упражнения
- Имеется список запросов queries . Необходимо определить, какие из них адресованы Вите, а какие — другим людям. Напишите функцию check_query() , которая принимает запрос как параметр, анализирует его и возвращает один из двух вердиктов:
- строку 'запрос к Вите', если запрос начинается с обращения к Вите,
- строку 'запрос к кому-то ещё', если нет.
Код вывода результатов на экран уже написан в основном теле программы.
- Вы умеете звать Виту. Теперь надо научить её распознавать суть запроса. Отделите обращения — перепишите функцию check_query() так, чтобы она возвращала: Например, для запроса 'Вита, сколько у меня друзей?' верните строку 'сколько у меня друзей?'. Для запроса 'Серёга, ты где?' — строку 'ты где?'. У строки, которую она возвращает, не должно быть пробелов в начале и конце.
# Форматирование строк
До сих пор для вывода текста на экран вам приходилось собирать его из нескольких частей. Но есть и другой способ. Для сборки текста из разных элементов удобны f-строки (от англ. formatted string, «форматированные строки»). Эти f-строки включают имена переменных внутри фигурных скобок. Значения переменных подставляются в строку автоматически. В коде f-строки выглядят как обычные, только начинаются с символа f перед кавычками:
Преобразование типов из числа в строку f-строки проделывают автоматически:
# Упражнения
- Замените объединение строк на f-строку.
- В коде финальной задачи из темы «Циклы и ветвления» замените все объединения строк на f-строки.
# Подробнее о форматировании
В f-строки можно подставлять не только переменные, но и результаты вычислений. Например, арифметические операции:
И обращение к элементам списка:
А также к элементам словаря по ключу:
Хоть Python и позволяет вставлять очень сложные выражения внутрь f-строк , не злоупотребляйте этой возможностью. Иначе получится перегруженный код, в котором будет сложно разобраться. Сравните два эквивалентных примера:
Второй намного понятнее, хотя строк стало в четыре раза больше. Не так ли? Лучше придерживаться общего правила: f-строки используются только для форматирования вывода, а вычислять все выражения надо вне их. И вообще, не стоит экономить на количестве строчек кода, принося в жертву его читаемость.
# Упражнения
- Научите Виту сообщать время в формате ЧЧ:ММ:СС (часы, минуты, секунды). Например На часах 19:28:06 .
- Вите передали список listened (англ. listen, "слушать") с хронометражем прослушанных песен в секундах. Выведите на экран суммарную статистику: 'Вы прослушали N песен.', где N — длина списка listened .
- Вите передали список listened (англ. listen, "слушать") с хронометражем прослушанных песен в секундах. Выведите на экран суммарную статистику:
'Вы прослушали N песен, общей продолжительностью M минут и S секунд.'
- N — длина списка listened ;
- M — количество целых минут общей продолжительности прослушанного;
- S — остаток от целых минут.
# Запросы к друзьям
В предыдущей теме «Словари и множества» вы добавили в код персонального ассистента Виты данные о том, где живут ваши друзья. И она уже умеет отвечать на следующие запросы:
- Сколько у меня друзей?
- Кто все мои друзья?
- Где все мои друзья?
Сейчас вам предстоит расширить возможности Виты. Научить её отвечать на вопросы про отдельных друзей. Начнём с самого простого вопроса «ты где?» — внутри Виты уже хранятся данные о местоположении. Если, например, Коля и Соня находятся в списке друзей, то запросы о них будет выглядеть следующим образом:
- Коля, ты где?
- Соня, ты где?
Чтобы различать вопросы про отдельных друзей от общих вопросов к Вите, будем начинать общие вопросы с прямого обращения, вот так:
- Вита, сколько у меня друзей?
- Вита, кто все мои друзья?
- Вита, где все мои друзья?
Тогда различать просто. Если вопрос начинается с имени "Вита", то это общий вопрос. А если с другого имени, то это вопрос про конкретного друга. Полагаем, правда, что у нас нет друзей по имени Вита.
# Упражнения
- Это код Виты, который вы последовательно писали на протяжении нескольких тем. Можете запустить его, вспомнить как выполняются запросы из списка queries .
А. Отредактируйте список запросов queries. Все запросы должны начинаться с обращения Вита:
- Вита, сколько у меня друзей?
- .
Б. Напишите функцию process_query(query) . Значение параметра query должно быть обработано методом split() . Отделите имя в начале от тела запроса (т.е., от оставшейся части).
Если запрос начинается с имени "Вита", то вызовите функцию process_anfisa() , передав в неё тело запроса как параметр. И верните результат выполнения этой функции. Если запрос начинается с другого имени, то пока ничего не делайте — это отложим до следующей задачи.
В. Измените в функции runner() вызов process_anfisa() на вызов process_query() .
- А. Напишите функцию process_friend(name, query) (англ. friend, "друг"), принимающую имя друга name и запрос query .
- Если друга с указанным именем Н нет в списке, то функция должна вернуть сообщение об ошибке У тебя нет друга по имени Н .
- Если запрос — "ты где?", то функция должна вернуть сообщения 'Н в городе Г', где Г определяется по данным словаря DATABASE .
- Если запрос не "ты где?", а какой-то другой, то функция должна вернуть сообщение об ошибке <неизвестный запрос>.
Б. Допишите функцию process_query() . Если запрос начинается не с "Вита", а с другого имени, то вызовите функцию process_friend(name, query) , передав в неё имя друга и тело запроса. И верните результат выполнения этой функции.