Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по Python!

Степан Палютин Ученик (122), на голосовании 5 дней назад
Опишу что я хочу вообразить.Хочу сделать так , чтобы допустим после того как вы выбрали кого-то (Мию,Лолу,Соню), после цикла while True в зависимости кого вы выбрали , начинались определённый код.Если по проще , я в коде хочу изобразить нечто подобное:если вы выбрали мию , то пишем привет я мия! Как тебя зовут, и т.д...... Если вы выбрали соню , то пишем то-то то то и т.д Думаю вы уловили мою мысль.Если что-то бует не понятно , задавайте вопросы, и я потом дополню этот вопрос всякими другими дополнениями!
Вот код , который я пока-что успел налопатить(Если что я не прошу исправлять мой код, я просто хочу чтобы вы мне помогли с моим желание и сказали как надо правильно писать далее чтобы воплотить то что я хочу):
print("Добро пожаловать на RolePlay игры!")
while True:
choose_your_woman = int(input("Выберите себе женщину:\n 1-Мия \n 2-Лола \n 3-Соня \n 4-Посмотреть характер девушек \n Ответ введите здесь:"))
if choose_your_woman == 4:
print("Мия - очень застенчивая, \n Лола - одинокая женщина, которую недавно бросил мужчина,теперь ищет себе пару.\n Соня - робкая женщина,целеустремленная")
back = input("Вернуться назад? Да / Нет \n ")
if back == "Да":
print("Возвращаемся...")
elif back == "Нет":
print("Короче , я зыкрываю процесс")
break
elif choose_your_woman == 2:
print("Вы выбрали Лолу!")
break
elif choose_your_woman == 1:
print("Вы выбрали Мию!")
break
elif choose_your_woman == 3:
print("Вы выбрали соню!")
break
Голосование за лучший ответ
Вадик Новиков Знаток (433) 1 месяц назад
Можно создать список с именами в коде обращаться к каждому имени по индексу.
Ниже представлю пример.




 # По имени персонажа можно обращаться также через f-строку.
print(f'Привет {names[0]}')




 print("Добро пожаловать на RolePlay игры!") 

names = ['Мия', 'Лола', 'Соня']


while True:
choose_your_woman = int(input(f"Выберите себе женщину:\n 1-{names[0]} \n 2-{names[1]} \n 3-{names[2]}\n 4-Посмотреть характер девушек \n Ответ введите здесь:"))
if choose_your_woman == 4:
print(f"{names[0]} - очень застенчивая, \n {names[1]} - одинокая женщина, которую недавно бросил мужчина,теперь ищет себе пару.\n {names[2]} - робкая женщина,целеустремленная")
back = input("Вернуться назад? Да / Нет \n ")
if back == "Да":
print("Возвращаемся...")
elif back == "Нет":
print("Короче , я зыкрываю процесс")
break
elif choose_your_woman == 2:
print(f"Вы выбрали персонажа {names[1]}!")
break
elif choose_your_woman == 1:
print(f"Вы выбрали {names[0]}!")
break
elif choose_your_woman == 3:
print(f"Вы выбрали персонажа {names[2]}!")
break
Avis Оракул (90856) 1 месяц назад
Начать придётся с того, что ваших текущих знаний языка определенно недостаточно для поставленной задачи. "Утонете" во вложенных if-ах и циклах уже очень скоро, а игра ещё даже не началась.
Для таких вещей уже надо использовать классы и работать с объектами классов. Как раз один из первых уроков в ООП - создать класс Person. Не говоря уже о том, что корректной работы переходов с этим вот "Вернуться назад" вам нужна реализация конечного автомата (машины состояний).

Но даже без этого разумнее делать всё это через хотя бы словари и функции (через которые, кстати, можно и КА сделать).
Т.е. очень примитивный и совсем не правильный (с точки зрения нормального программиста) вариант это как-то так:
 def show_npcs(): 
print(*NPC.keys(),sep='\n')

def show_info():
pers = input('О ком вы хотите узнать: ')
if pers in NPC.keys():
print(NPC[pers]['descr'])
else:
print('Такого персонажа нет')

def hlp():
for k,v in actions.items():
print(f'ID:{k} - {v["name"]}')

def check_age():
#Какая-то функция проверяющая соответствие возраста
pass

def check_pers():
#Некоторая функция проверяющая, например, наличие ключевых слов в описании игрока
pass

#Параметры NPC
NPC = {'Мия':{'age':19,'spec':'90x60x90','descr':'Описание'},
'Лола':{'age':20,'spec':'120x120x120','descr':'Описание-2'},
'Соня':{'age':14,'spec':'70x60x80','descr':'Даже не думай!'}}
#Параметры игрока
player = {'name':'','age':0,'descr':''}
#словарь активностей
actions = {0:{'name':'Посмотреть список людей','cost':-1,'act':show_npcs},
1:{'name':'Посмотреть информация о человеке','cost':-1,'act':show_info},
2:{'name':'Выход','cost':0,'act':exit}}

# player['name'] = input('Введите своё имя: ')
# player['age'] = int(input('Введите свой возраст: '))
# player['descr'] = input('Опишите себя: ')

while True:
ans = input('Выберите команду: ')
try:
actions[int(ans)]['act']()
except KeyError:
print('Нет такой команды')
hlp()
Похожие вопросы