Как вставить функцию с break в цикл while?
def enter_x():
x = input("*: ")
if x == 'quit':
break
while True:
print("> Вы проснулись в подземелье ")
print("> К вам идёт злобный троль")
v1 = int(
input("\t•1 Я его ударю!\n\t•2 Кто ты?\n\t•3 Мне нужно бежать!\n"))
if v1 == 1:
health -= 5
print("> Это была плохая идея. Троль отразил вашу атаку. Вы вмазали себе в морду...")
Как вставить рабочую функцию в цикл? Ожидается что при вводе quit, цикл останавливается.
Ответы (3 шт):
Автор решения: Zhihar
→ Ссылка
самое простое - вы принимаете текстовую команду, обрабатываете ее и лишь потом переводите в числа и т.д.
while True:
print("> Вы проснулись в подземелье ")
print("> К вам идёт злобный троль")
command = input("\t•1 Я его ударю!\n\t•2 Кто ты?\n\t•3 Мне нужно бежать!\n")
if command == 'quit':
break
v1 = int(command)
if v1 == 1:
health -= 5
print("> Это была плохая идея. Троль отразил вашу атаку. Вы вмазали себе в морду...")
P.S.
и "троль" пишется все таки с двумя л - тролль, если конечно вы не на украинском пишите :)
Автор решения: OPTIMUS PRIME
→ Ссылка
def inp(msg, data_type = str):
x = input(msg)
return inp.quit if (x == inp.quit) else data_type(x)
inp.quit = 'quit'
# сохранена в виде свойства, чтобы по коду не разбрасывать строки,
# значение 'quit' можно будет легко изменить.
###
while True:
print("> Вы проснулись в подземелье ")
print("> К вам идёт злобный троль")
v1 = inp("\t•1 Я его ударю!\n\t•2 Кто ты?\n\t•3 Мне нужно бежать!\n", int)
if v1 == inp.quit: # <-- функция вернула значение inp.quit, значит ввели 'quit'
break
elif v1 == 1:
health -= 5
print("> Это была плохая идея. Троль отразил вашу атаку. Вы вмазали себе в морду...")
Автор решения: Danis
→ Ссылка
можно так, используя iter
def enter_x():
return input("*: ")
for _ in iter(enter_x, "quit"):
print("> Вы проснулись в подземелье ")
print("> К вам идёт злобный троль")
v1 = int(
input("\t•1 Я его ударю!\n\t•2 Кто ты?\n\t•3 Мне нужно бежать!\n"))
if v1 == 1:
health -= 5
print("> Это была плохая идея. Троль отразил вашу атаку. Вы вмазали себе в морду...")