Вопрос №689 от пользователя Ra в уроке «Основы синтаксиса», курс «Введение в Python»

Ra

Уже на 4-ом занятии застрял в продвижении. Вместо круса пошел читать книгу, что оказалось намного полезниее и интерестнее! А знаете почему ? Потому что давать к такому красивому, лаконичному языку задание на алгоритмы, на сложные конструкции языка сразу же - нельзя. Это не правильное 'Введение в Python'.

8 0

Ivan Grishaev

Антон! Очень странно слышать, что к красивым языкам нельзя давать задания на алгоритмы. Значит, к некрасивым можно? Какие языки, по-вашему, некрасивы? В работе питонщика не бывает алгоритмов? Второе: если вы застряли, то почему молча страдали? Так сложно спросить? В курсе нет ни одного топика, в котором бы я не отписал. Для вас же стараюсь. Вместо этого топика о том, как все плохо, должен быть конкретный вопрос, как сделать то или иное задание.

1

Ra

Это хорошо, что вы отвечаете. И спасибо за старания. В работе алгоритмы встречаются часто, но я вот решил выучить еще один язык, и мне не хочется сильно задерживатся на задачках. Вот взять вторую задачу по функциям. Сейчас потратил минут 30 на решение второй таски с раздела 'Python functions' и не решил. Да, я лучше разобрался с синтаксисом python исправляя ошибки, но все же задание не решено.

def task(func, *seq):
    res = []
    func_arg_amount = len(seq)
    for arg_number in range(func_arg_amount):
      values = []
      for sub_seq in seq:    
        if isinstance(sub_seq, list):   
          values.append(sub_seq[arg_number])
        else:
          values.append(sub_seq)
      res.append(func(*values))

    return res

Укажите чего я недопонимаю пожалуйста, что сделал не так.

0

Ivan Grishaev

Ну смотрите, вам на вход подали несколько списков, фактически, это матрица. Вам надо ее транспонировать, т.е. пройтись не по рядам, а по столбцам. Каждый столбец будет аргументами для функции. На уровне кода это так:

  • zip(*seq) вернет вам список кортежей N-ых элементов
  • каждый такой кортеж подать в func через *args
  • результаты накапливать в список и вернуть его

Такие задачи мы все решали в школе/первых курсах на паскале, фортране и тд. Тем не менее, подумаю над тем, что можно улучшить в этом задании.

0

Ra

Да, решение и в правду выглядит просто. Но использования zip ой как не очевидно. Если еще добавить не понятные звездочки перед переменными, совсем можно запутаться. Но спасибо за ответ.

0

Тимофей

Заметил закономерность, что многие ноют по поводу сложности заданий. Например, про себя могу сказать. Заплатив 9$ Я не почувствую себя властелином мира и внутренне это не даст мне право спрашивать всякие пустяшные вопросы. Не все пришли из другого языка может быть, кто то осваивает с азов, и пришли надо сказать не зря ведь материал даете отличный. Да отвечаете! Но не могу я, по каждому пустяку писать вам, мне просто стыдно. Неужели вам не жалко своего времени. Может быть что то придумать для таких ноющих вроде меня, подсказки или что то вроде этого и вам время сэкономит. Да все равно будут писать, но меньше.

0

Ra

Я думаю неплохо было бы переработать курс. Разбить его из одного 30-минутного сделать 3 10-ти минутных по одной задачке, решение которой можно легко предугадать из только что пройденного материала. И суть задачек на hexlet не в том, как получше загрузить студента, а дать ему реально практический опыт в web ide. Я продолжаю курс, и мне он нравится, я не скажу что много потерял переделывая по 10 раз решения задач. Но осадочек остался.

0

Ivan Grishaev

Неужели вам не жалко своего времени.

Ответить на вопрос отнимает минут пять. Ответ потом прочтут другие, поэтому чем больше вопросов, тем лучше, я считаю.

...неплохо было бы переработать курс. Разбить его из одного 30-минутного сделать 3 10-ти минутных

У меня есть планы упростить некоторые задания. Насчет сокращения до 10 минут -- не уверен, что пойдет на пользу.

0

Kirill Mokevnin

Иван, еще как пойдет ;)

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев