Несколько операторов if под одним кодом с несколькими условиями

Названия французских стран женственны, когда они заканчиваются буквой E, иначе мужской. Есть 6 исключений. (Belize, cambodge, mexique, mozambique, zaire, zimbabwe) Я должен написать программу, которая берет вход и добавляет le, или la infront, в зависимости от того, является ли это мужским или женским.

Кроме того, если названия стран начинаются с гласного, ему нужно распечатать l 'infront вместо le, или la.

  • Глобальная переменная из другого файла Python
  • python .count для многомерных массивов (список списков)
  • Захват встроенного изображения карты Google с помощью Python без использования браузера
  • NameError: имя «хост» не определено
  • Как найти количество перекрывающихся последовательностей в String с Python?
  • Возврат только количества результатов поиска Google через Python
  • Еще одно условие. Если вход является одной из этих двух множественных стран, он должен печатать les infront. (Etats-unis, pays-bas)

    Вот мой текущий код

    vowels=("aeiouAEIOU") word=input("Enter a french country :") if word==("belize")or("cambodge")or("mexique")or("mozambique")or("zaire")or("zimbabe"): print("le",word) elif word==("etats-unis")or("pays-bays"): print("les",word) elif word.endswith("e"): print("le",word) else: print("la",word) if word.startswith(vowels): print("l'",word) 

    Проблема Im, имеющаяся вне зависимости от того, какой вклад я использую, всегда печатает le infront. Например: вход в Канаду; Вывод из Канады.

    Почему он не тестирует другие условия?

  • Порядок выполнения выражений в Python
  • Cython-Can not open include file: 'io.h': нет такого файла или каталога
  • Если возникает исключение, попросите снова ввести
  • В каком порядке это выражение if, вычисляемое в Python
  • Должен ли я создавать каждый класс в своем .py-файле?
  • Python ValueError: слишком много значений для распаковки
  • 3 Solutions collect form web for “Несколько операторов if под одним кодом с несколькими условиями”

    Сделайте это выстрелом

     exceptions = set("belize cambodge mexique mozambique zaire zimbabwe".split()) vowels = set('aeiou') plurals = set("etats-unis pays-bas".split()) word, sentinel = "", "quit" while word != sentinel: word = input("Enter the name of a country: ") if word == sentinel: continue male = word in exceptions or word[-1].lower() not in vowels plurality = word in plurals apo = word[0].lower() in vowels if apo: print("l'%s" %word) elif plurality: print("les", word) else: print("le" if male else "la", word) 

    Это потому что:

     if word == "A" or "B": 

    это не то же самое, что

     if word == "A" or word == "B": 

    Первая оценка (это слово == "A") logical_or ("B")

    Поэтому первая версия всегда оценивает значение true. Вот пример:

     >>> X = "asdf" >>> if(X): ... print("hurray") ... hurray >>> 

    использовать:

     if word in ["belize", "cambodge", "mexique", "mozambique", "zaire", "zimbabe"]: print("le",word) 

    Проблема здесь в том, что word==("belize")or("cambodge")or("mexique") не делает то, что вы думаете. Об этом много объяснений, но чтобы заставить его работать, вам либо нужно делать то, что я есть, или что-то вроде:

     if word=="belize" or word=="cambodge" or word=="mexique": # etc 
    Python - лучший язык программирования в мире.