«Остальное» заявление не отвечает - PullRequest
0 голосов
/ 15 января 2020

Я написал программное обеспечение, которое должно реагировать на ввод пользователя, однако

оператор if не возвращает else

print("#" * 9)

Commands that you can use:
-------------------------
1. Theme A – Home and abroad
1.1 Life in the town and rural life
1.2 
""")
question = input("Topic: ")

RuralLife = """
 Theme A – Home and abroad

"""

if question == "Theme A – Home and abroad" or "Life in the town and rural life":
    print(RuralLife)
else:
    print("Please Select Topic")```

Ответы [ 3 ]

0 голосов
/ 15 января 2020

if question == "Theme A – Home and abroad" or "Life in the town and rural life" будет всегда быть истинным, потому что оно оценивается следующим образом:

#                  boolean                   or                 boolean
if (question == "Theme A – Home and abroad") or ("Life in the town and rural life")

Первый логический (question == "Theme A – Home and abroad") будет истинным или ложным в зависимости от значения question.

Второй "Life in the town and rural life" будет всегда истинным, поскольку строка не является ложным значением

something_true_or_false or true == true

Измените ваше состояние на:

# Check this ---------------------------------v----------v
if question == "Theme A – Home and abroad" or question == "Life in the town and rural life"
0 голосов
/ 15 января 2020

Ваша проблема в предложении if.

if question == "Theme A – Home and abroad" or "Life in the town and rural life":

интерпретируется как

if (question == "Theme A – Home and abroad") or "Life in the town and rural life":

А в python строка, которая не является пустой, оценивается как True.

Вы можете исправить это, заменив условие if на

if question in ("Theme A – Home and abroad", "Life in the town and rural life"):
0 голосов
/ 15 января 2020

Попробуйте этот код ниже, проблема связана с условием или

print("#" * 9)

print("""
Commands that you can use:
-------------------------
1. Theme A – Home and abroad
1.1 Life in the town and rural life
1.2 
""")

question = input("Topic: ")

RuralLife = """
 Theme A – Home and abroad

"""

if question == "Theme A – Home and abroad" or question == "Life in the town and rural life":
    print(RuralLife)
else:
    print("Please Select Topic")

Или вы можете написать условие if следующим образом

if question in ("Theme A – Home and abroad", "Life in the town and rural life"):
    print(RuralLife)
else:
    print("Please Select Topic")
...