Я делаю простую программу, которая преобразует имперские единицы в метрические. Например, кВт в л.с. и мили в час в км/ч. Я хочу, чтобы python проверял первую переменную на наличие нескольких ключевых слов. Таким образом, если в переменной нет первых ключевых слов, она проверяет следующую строку ключевых слов.
Я пробовал списки и играл с условиями
def choice():
choice = raw_input("What do you want to convert?")
splitted = choice.split()
value = float(splitted[0])
if 'kw' or 'kW' in choice:
kwpk(value)
elif 'mph' in choice:
miletokm(value)
С помощью этого метода он всегда возвращает kwpk (значение). Даже если во входных данных нет ключевых слов. Мне немного стыдно, что я должен спросить об этом, но это беспокоит меня уже как 2 дня, хотя это очень простое приложение.
Любая помощь будет оценена :)
Вы сделали крошечную ошибку в своем условии> Когда вы добавляете два условия, разделенные логическим оператором, вам нужно будет упомянуть их отдельно. Вместо:
if 'kw` or 'kW' in choice:
Пытаться:
if 'kw' in choice or 'kW' in choice:
Более того, вы можете избежать этих двух случаев и просто использовать lower()
для нормализации строки.
def choice():
choice = raw_input("What do you want to convert?")
splitted = choice.split()
value = float(splitted[0])
if 'kw' in choice.lower():
kwpk(value)
elif 'mph' in choice:
miletokm(value)
Не беспокойтесь @kursad333. Рад, что помогло. :)