Самый простой способ сделать это - использовать while True:
l oop, который всегда повторяется, и управлять им внутри l oop с помощью 'break', чтобы выйти из l oop и попасть в start
код, если они вводят start
, в противном случае continue
.
Например, это будет делать то, что вы хотите:
print("Welcome to MOLECULAR MASS CALCULATOR \n")
intro = input("Introduction.\n Type 'instructions'. Otherwise, "
"type 'start'. \n\n")
while True:
if intro.upper() not in ["START", "INSTRUCTIONS"]:
intro = input("\nError, please try again:")
continue
if intro.upper() == 'INSTRUCTIONS':
print("Instructions")
intro = input("\n\n Type 'start' to begin. \n\n ")
elif intro.upper() == 'START':
break
# 'START' code goes here
mol = input("\nEnter a molecule:")
Кстати, ваш закомментированный код:
while intro.upper() != 'START' or 'INSTRUCTIONS'
не будет работать так, как вы собираетесь. Python будет интерпретировать это как:
while (intro.upper() != 'START') or ('INSTRUCTIONS')
, где 'INSTRUCTIONS'
(или любая ненулевая строка) всегда будет иметь значение True, поэтому весь оператор всегда будет True. В моем примере intro.upper() not in ["START", "INSTRUCTIONS"]
показан один из допустимых способов оценки по списку значений, который правильно оценит то, что вы пытались сделать.