Форум сайта python.su
Привет!
Помогите пожалуйста разобраться с функцией.
Если выбрать любой пункт, то потом, какой бы пункт не выбирал, все равно будет выполняться первый выбранный.
Поясните где не прав?
Denga = 100 print("правила игры:") print("вам нужно получить 10 алмазов и 20 изумрудов") print("на старте у вас 100 дененг") z = input("введите имя") price_izumrud = int(60) price_almaz = int(120) price_za_reklamu = int(5) tarif = 0 print("ваши деньги :",Denga) def qq_qq(): print('1-купить изумруд', price_izumrud, "денег") print('2-купить алмаз' , price_almaz, "денег") print('3-посмотреть рекламу +', price_za_reklamu, "денег") print('4-улучшить тариф-500 денег') print('5-выход') q = input('Ваш выбор:') return q q = qq_qq() while q != "5": #Покупка изумруда if q == "1": if Denga >= 60: Denga -= 60 print(z, ",вы приобрели изумруд, у вас осталось" ,Denga , "денег") print(1) qq_qq() else: print(z,",А денег то не хватает! У вас только",Denga,"А надо 60 денег") print(2) qq_qq() #Покупка алмаза elif q == "2": if Denga >= 120: Denga -= 120 print(z, ",вы приобрели алмаз, у вас осталось" ,Denga , "денег") print(3) qq_qq() else: print(z,",А денег то не хватает! У вас только",Denga,"А надо 120 денег") print(4) qq_qq() # Реклама elif q == "3": Denga += 5 print(z, ",вы посмотрели рекламу, у вас стало" ,Denga , "денег") print(5) qq_qq() #Тариф elif q == '4': if Denga >= 500: Denga -=500 print("вы улучшили свой тариф") tarif +=1 #Ошибка ввода else: print(z, ",вы ввели фигню") print(6) qq_qq()
Отредактировано virom (Янв. 14, 2024 15:17:20)
Офлайн
q = qq_qq() while q != "5": .... q = qq_qq()
Отредактировано Rodegast (Янв. 14, 2024 16:15:38)
Офлайн
Спасибо!
Добавил после каждого вызова функции q = qq_qq(), стало вести себя иначе:
Denga = 600 print("правила игры:") print("вам нужно получить 10 алмазов и 20 изумрудов") print("на старте у вас 100 дененг") print("на стандартном тарифе стоимость самая высокая") print("на каждом последующем цена будет уменьшаться на 30%") z = input("введите имя") price_izumrud = int(60) price_almaz = int(120) price_za_reklamu = int(5) tarif = 0 print("ваши деньги :",Denga) def qq_qq(): print('1-купить изумруд', price_izumrud, "денег") print('2-купить алмаз' , price_almaz, "денег") print('3-посмотреть рекламу +', price_za_reklamu, "денег") print('4-улучшить тариф-500 денег') print('5-выход') q = input('Ваш выбор:') return q print('отработали def') q = qq_qq() while q != "5": #Покупка изумруда if q == "1": if tarif == 0: if Denga >= price_izumrud: Denga -= price_izumrud print(z, ",вы приобрели изумруд, у вас осталось" ,Denga , "денег") qq_qq() q = qq_qq() else: print(z,",А денег то не хватает! У вас только",Denga,"А надо 60 денег") print(2) qq_qq() q = qq_qq() # if tarif == 1: # price_izumrud *=0.7 if Denga >= price_izumrud: Denga -= price_izumrud print(z, ",вы приобрели изумруд, у вас осталось" ,Denga , "денег") qq_qq() q = qq_qq() else: print(z,",А денег то не хватает! У вас только",Denga,"А надо", price_izumrud, "денег") print(2) qq_qq() q = qq_qq() #Покупка алмаза elif q == "2": if Denga >= 120: Denga -= 120 print(z, ",вы приобрели алмаз, у вас осталось" ,Denga , "денег") qq_qq() q = qq_qq() else: print(z,",А денег то не хватает! У вас только",Denga,"А надо 120 денег") print(4) qq_qq() q = qq_qq() # Реклама elif q == "3": Denga += price_za_reklamu print(z, ",вы посмотрели рекламу, у вас стало" ,Denga , "денег") qq_qq() q = qq_qq() #Тариф elif q == '4': if Denga >= 500: Denga -=500 print("вы улучшили свой тариф! Цены на драгоценности -30%") tarif +=1 print(tarif) qq_qq() q = qq_qq() #Ошибка ввода else: print(z, ",вы ввели фигню") qq_qq() q = qq_qq()
Офлайн
Не надо qq_qq 2 раза вызывать. Должно быть:
print(z,",А денег то не хватает! У вас только",Denga,"А надо", price_izumrud, "денег") print(2) q = qq_qq()
Офлайн