Форум сайта python.su
0
Нужно построить словарь, где вводится имя музыканта, название альбома и кол-во дорожек.
Написать нужно с помощью функции.
Написал программу, но она сохраняет в словарь только последние введенные значения. Как сделать так, что бы сохранялись и прошлые значения.
def make_album(name_musican, name_album, quantity=''): album={'Name':name_musican,'Name album': name_album} if quantity: album['Quantity']=quantity return album my_album={} polling_active = True while polling_active: name=input("Enter n_m ") alb=input("Enter n_a ") qty=input("Enter qty track ") isit = make_album(name,alb,qty) repeat=input("Again?(yes/no)") if repeat == 'no': polling_active = False print(my_album)
Отредактировано NiG (Авг. 3, 2019 18:52:20)
Офлайн
294
NiGкуда эти прошлые значения должны сохраняться? в список? в словарь? если в словарь то по какому ключу?
Как сделать так, что бы сохранялись и прошлые значения.
[code python][/code]
Офлайн
44
очевидно в my_album={} ключ генирировать по количеству циклов while, например или qty. значение ключа - isit, как то так, наверное.
и вставьте ссылку на его url Отредактировано AD0DE412 (Авг. 3, 2019 20:52:21)
Офлайн
0
PEHDOMкуда эти прошлые значения должны сохраняться? в список? в словарь? если в словарь то по какому ключу?
Отредактировано NiG (Авг. 3, 2019 20:47:48)
Офлайн
44
имхо как то так
# python2.7 # coding: utf-8 def make_album(): name=raw_input("Enter n_m: ") alb=raw_input("Enter n_a: ") qty=raw_input("Enter qty track: ") return [qty, [alb, name]] my_album={} while True: isit = make_album() my_album[isit[0]] = isit[1] repeat=raw_input("Again?(y/n): ") if repeat == 'n': break print(my_album)
# python2.7 # coding: utf-8 def make_album(): name=raw_input("Enter n_m: ") alb=raw_input("Enter n_a: ") qty=raw_input("Enter qty track: ") return [qty, [alb, name]] my_album={} while True: isit = make_album() my_album[isit[0]] = isit[1] if raw_input("Again?(y/n): ") == 'n': break print(my_album)
# python2.7 # coding: utf-8 my_album={} while True: my_album[raw_input("Enter track: ")] = [raw_input("Enter name: "), raw_input("Enter albom: ")] if raw_input("Again?(y/n): ") == 'n': break print(my_album)
# python2.7 # coding: utf-8 def yieldfunk(): my_album={} while True: my_album[raw_input("Enter track: ")] = [raw_input("Enter name: "), raw_input("Enter albom: ")] yield my_album if raw_input("Again?(y/n): ") == 'n': break print ([i for i in yieldfunk()][0])
и вставьте ссылку на его url Отредактировано AD0DE412 (Авг. 3, 2019 23:59:27)
Офлайн