Во-первых, почему вы обращаетесь к каждому символу входной строки, затем снова соединяете их, а затем сравниваете с целевой строкой («if», «else», «do»)?
Во-вторых, почемуВы используете if
операторы несколько раз, если совпадение с любым из них приведет к одному и тому же результату (print("accepted")
?
Попробуйте это:
def checker():
q0 = input("enter word:")
if q0 in ["if", "else", "do"]:
print("accepted")
else:
print("rejected")
checker()
Теперь вы просто сравниваете строкуq0
к другому (каждый элемент списка ["if", "else", "do"]). Кроме того, первое попадание в списке перестанет сравнивать и продолжит печатать "принято".
++ Просто чтобы вы знали, почему вы видите «ошибка индекса вне диапазона», вы обращаетесь к каждому символу q0
, не зная, сколько их. Поэтому, если пользователь вводит строку типа a
, нет q0[1]
или q0[2]
, но вы запрашиваете у вашей программы доступ к нему. Таким образом, индекс выходит за пределы диапазона.