Python_code все работает просто не понимаю одну вещь
(я только начал изучать этот язык так что многое не понимаю)
по логике Tab перед return person не нужен но без него ошибка происходит, а и да функция должна добавлять в словарь новие елементы (от 3) создавая для них новые ключи
Не знаю почему так если кто-то имеет много свободного времени объясните пожалуйсто:)
def make_album(name,alb_name,age = None,*songs):
x = len(songs)
print(x)
person = {'name' : name , "name of album" : alb_name }
if age:
person['age'] = age
for i in range(x) :
for song in songs:
person[f"{'songs'}{i+1}"] = song
i = i+1
return person
album = make_album("Tom Odell","another love",23,"tgr","asd","sdfg","fgj0",)
print(album)
Ответы (1 шт):
for i in range(x) :
Фактически этот цикл у вас используется только для того, чтобы инициализировать переменную i нулём, а больше он ни для чего не нужен, переменную i вы и так внутри вложенного цикла вручную перебираете i = i+1, и songs внутренним же циклом перебираете. Поэтому return так странно и стоит, что выйти из функции нужно уже после первой итерации этого бесполезного цикла по i.
Более оптимальный код цикла (только одного, два вложенных цикла не нужны) должен выглядеть так:
for i,song in enumerate(songs):
person[f"{'songs'}{i+1}"] = song
return person