Код «для» «в» «не в» не работает, как исправить, чтобы он учитывал ответы, предоставленные до команд?

#python #list #syntax #pycharm #syntax-error

#python #Список #синтаксис #pycharm #синтаксическая ошибка

Вопрос:

Я пытался создать небольшую и простую игру, в которой вы ходите и находите разные вещи, но по какой-то причине, когда я набираю команды for и in, они не учитывают, какой ответ был в b

 #
print('You may now begin your quest because I said so')
print('You must choose a number between 1 and 10, each number must be selected only once')
a = int(input('How many block do you wanna walk?'))
if a == 1:
    print('Really? 1 block? LUL')
if a == 2:
    b = str(input("You've found a hole, it is too dark too see what's on it though, do you wish to explore?"))
    hang = ("yes")
for b in hang:
    print('You fell and died.')
else:
    print('Ok then, keep going.')
  

Как вы можете видеть, это довольно просто, но он всегда отображает оба for b in hang: и else
Я попытался создать другой список fk = ("no") и изменить else for for b in fk: print('Ok then, keep going') , но он тоже не работает, я также пытался вставить for b not in hang: print('Ok then, keep going') , но лестница просто не работает

Комментарии:

1. вы ищете if ? for b в зависании перебирает каждую букву в слове.

Ответ №1:

Просто прочитав ваш код, похоже, что вы повторяете буквы y , e и s

Что именно вы пытаетесь сделать?

если hang предполагается, что это кортеж, попробуйте добавить , к нему a:

 hang = ('yes',) 

if b in hang:
    print('You fell and died.')
else:
    print('Ok then, keep going.')
  

Комментарии:

1. Моя цель состоит в том, что если ответы пользователя «да», они должны получить только первое сообщение «вы упали …»

Ответ №2:

вы могли бы попробовать:

 if b.startswith('y'):
    print('you fell and died')