Найти - Пользователи
Полная версия: Помогите решить задачу
Начало » Python для новичков » Помогите решить задачу
1 2 3
Nayomnik
Обучаюсь по книге, вот какое задание мне необходимо сделать:
УПРАЖНЕНИЯ
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() и убедитесь в том, что список был успешно изменен.

Буду очень благодарен ибо зашел в тупик(((
passant
Попробую помочь понять, как вы и просите.
Для начала покажите то место в вашей программе 8-9 , где вы создаете список (!!!) с именами фокусников.
Вообще, покажите хоть какой-нибудь список в ней.
Если не получиться - прочитайте в книжке, что такое список в языке Python и как он (список) создается.
Когда ответите на эти вопросы- сможем (помогать) разбираться дальше.
Nayomnik
почему то здесь не хочет показывать строку, сделал снимок экрана, что бы показать, снимок во вложении.
papuas
 def make_great():
    global fokuses
    fokuses = list(map(lambda x: 'Greate ' + x, fokuses))
    print(fokuses)
make_great()
passant
ОК, уже хорошо.
 fokuses = ["Петя","Вася","Дима"]
def show_magicians(fokuses):
    for name in fokuses:
        print(name + "  Hello")
show_magicians(fokuses)
Работает:
 Петя  Hello
Вася  Hello
Дима  Hello
Т.е. уже научились читать последовательно элементы списка. Это хорошо.
Теперь следующее задание - как последовательно изменить каждый элемент существующего списка.
Подсказка - существует целый ряд методов, которые позволяют это сделать. Я не знаю, какие конструкции Python вы уже изучили, а какие -нет. Делать можно циклом и перезаписью в промежуточный спискок. Делать можно используя функцию enumerate. Делать можно используя генератор списков. И еще использовать ряд других методов. Все они отличаются временем выполнения и объемом дополнительной памяти, которые при этом используются (или не используется). Поскольку на данном этапе эти вопросы для вас не важны - попробуйте запрограммировать любой (первый попавшийся) из возможных методов.
Будут вопросы - задавайте.
Nayomnik
papuas
по ходу у Вас работа со строкой, а у меня в этой переменной список… там в jpeg есть изображения
papuas
 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 есть изображения
может быть да, а может быть нет, а может - дело ваше.
Nayomnik

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

по идее я должен в одной функции запустить цикл, перебрать и заменить в списке данные , после чего второй функцией вывести их
papuas
ясно,понятно..
t-90 еще раздают на халяву.
passant
Ну, вот самые просты способы:
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]

Выбирайте, какой вам понятнее, оборачивайте в функцию и наслаждайтесь оценкой результатом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB