Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2018 09:57:43

Nayomnik
Зарегистрирован: 2018-02-26
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

Обучаюсь по книге, вот какое задание мне необходимо сделать:
УПРАЖНЕНИЯ
8-9. Фокусники: создайте список с именами фокусников. Передайте список функции show_magicians(), которая выводит имя каждого фокусника в списке.

Решил я его следующим способом:

"fokuses = "
def show_magicians(fokuses):
for name in fokuses:
print(name + ‘ Hello’)
show_magicians(fokuses)

Но к сожалению не как не могу понять, как решить это задание, помогите пожалуйста понять:
8-10. Великие фокусники: начните с копии вашей программы из упражнения 8-9. Напишите функцию make_great(), которая изменяет список фокусников, добавляя к имени каждого фокусника приставку «Great». Вызовите функцию show_magicians() и убедитесь в том, что список был успешно изменен.

Буду очень благодарен ибо зашел в тупик(((

Отредактировано Nayomnik (Фев. 26, 2018 09:58:11)

Офлайн

#2 Фев. 26, 2018 10:55:28

passant
Зарегистрирован: 2018-02-17
Сообщения: 43
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачу

Попробую помочь понять, как вы и просите.
Для начала покажите то место в вашей программе 8-9 , где вы создаете список (!!!) с именами фокусников.
Вообще, покажите хоть какой-нибудь список в ней.
Если не получиться - прочитайте в книжке, что такое список в языке Python и как он (список) создается.
Когда ответите на эти вопросы- сможем (помогать) разбираться дальше.

Офлайн

#3 Фев. 26, 2018 13:13:36

Nayomnik
Зарегистрирован: 2018-02-26
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

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

Прикреплённый файлы:
attachment 1111.jpg (45,9 KБ)

Офлайн

#4 Фев. 26, 2018 13:45:22

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Помогите решить задачу

 def make_great():
    global fokuses
    fokuses = list(map(lambda x: 'Greate ' + x, fokuses))
    print(fokuses)
make_great()

Офлайн

#5 Фев. 26, 2018 13:50:06

passant
Зарегистрирован: 2018-02-17
Сообщения: 43
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачу

ОК, уже хорошо.

 fokuses = ["Петя","Вася","Дима"]
def show_magicians(fokuses):
    for name in fokuses:
        print(name + "  Hello")
show_magicians(fokuses)
Работает:
 Петя  Hello
Вася  Hello
Дима  Hello
Т.е. уже научились читать последовательно элементы списка. Это хорошо.
Теперь следующее задание - как последовательно изменить каждый элемент существующего списка.
Подсказка - существует целый ряд методов, которые позволяют это сделать. Я не знаю, какие конструкции Python вы уже изучили, а какие -нет. Делать можно циклом и перезаписью в промежуточный спискок. Делать можно используя функцию enumerate. Делать можно используя генератор списков. И еще использовать ряд других методов. Все они отличаются временем выполнения и объемом дополнительной памяти, которые при этом используются (или не используется). Поскольку на данном этапе эти вопросы для вас не важны - попробуйте запрограммировать любой (первый попавшийся) из возможных методов.
Будут вопросы - задавайте.

Офлайн

#6 Фев. 26, 2018 13:52:46

Nayomnik
Зарегистрирован: 2018-02-26
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу

papuas
по ходу у Вас работа со строкой, а у меня в этой переменной список… там в jpeg есть изображения

Офлайн

#7 Фев. 26, 2018 14:15:34

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Помогите решить задачу

 fokuses = ['vasya', 'dima', 'petya']
def show_magicians(fokuses):
    for name in fokuses:
        print(name + 'Hello')
show_magicians(fokuses)
def make_great():
    global fokuses
    fokuses = list(map(lambda x: 'Greate ' + x, fokuses))
    print(fokuses)
make_great()
print(fokuses)

 vasyaHello
dimaHello
petyaHello
['Greate vasya', 'Greate dima', 'Greate petya']
['Greate vasya', 'Greate dima', 'Greate petya']
Process finished with exit code 0

Nayomnik
по ходу у Вас работа со строкой, а у меня в этой переменной список… там в jpeg есть изображения
может быть да, а может быть нет, а может - дело ваше.

Отредактировано papuas (Фев. 26, 2018 14:24:29)

Офлайн

#8 Фев. 26, 2018 14:26:35

Nayomnik
Зарегистрирован: 2018-02-26
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу


passant
Будут вопросы - задавайте.
я так понимаю по книге хотят, что бы я создал функцию, а в ней цикл.
Вот что я проходил
.pop() - в Цикле
.append() - в цикле
return - без цикла в функции

по идее я должен в одной функции запустить цикл, перебрать и заменить в списке данные , после чего второй функцией вывести их

Офлайн

#9 Фев. 26, 2018 14:39:23

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Помогите решить задачу

ясно,понятно..
t-90 еще раздают на халяву.

Офлайн

#10 Фев. 26, 2018 16:11:41

passant
Зарегистрирован: 2018-02-17
Сообщения: 43
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачу

Ну, вот самые просты способы:

for i in range(len(fokuses)):
fokuses[i] = "Great "+fokuses[i]

 for i, name in enumerate(fokuses):
    fokuses[i] = "Great "+name

 fokuses = ["Great "+name for name in fokuses]

Выбирайте, какой вам понятнее, оборачивайте в функцию и наслаждайтесь оценкой результатом.

Отредактировано passant (Фев. 26, 2018 16:13:19)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version