def make_great(magicans): for magican in magicans: magican = "the Great " + magican def show_magicans(magicans): for magican in magicans: print(magican) magicans = ['valery', 'alice'] make_great(magicans) show_magicans(magicans)
Есть список имен. Функция ‘ make_great() ‘ должна модифицировать каждое имя. На выходе список остается преждним.
Помогите, пожалуйста, найти ошибку.
Анонимный пользователь Изменен статус публикации
Можно и так:
def make_great(magicans): magicans[:] = ['the Great {}'.format(x) for x in magicans]
Пример:
In [174]: l = ['A','B','C'] In [175]: make_great(l) In [176]: l Out[176]: ['the Great A', 'the Great B', 'the Great C']
Если вы хотели только «напечатать» строку + имя из списка, то можно поместить print в функцию, где формируется этот объект.
def make_great(magicans): for magican in magicans: magican = "the Great " + magican print(magican)
Иначе вам необходимо задать новую переменную, в которую поместить результат сложения строк и вернуть эту переменную в функции (далее этот результат можно будет напечатать).
def make_great(magicans): result = [] for magican in magicans: magican = "the Great " + magican result.append(magican) return result def show_magicans(magicans): for magican in magicans: print(magican) show_magicans(make_great(magicans))