If в python, проблема с кодом
Мне нужно чтобы if выполнялся не только при одном значении допустим Погода, но и при его вариациях там погода, покажи погоду и т.д подскажите пожалуйста как
from PyQt5 import QtWidgets, uic
import sys
from name import Ui_Dialog
import geocoder
import pyowm
import datetime
cmd=['Погода','погода']
now = datetime.datetime.now()
he = "Джеймс: "
you = "Вы: "
app=QtWidgets.QApplication(sys.argv)
Dialog=QtWidgets.QDialog()
ui=Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
def send():
tbr = ui.lineEdit.text()
if tbr == 'Погода':
g = geocoder.ip('me')
owm = pyowm.OWM('api', language='ru')
observation = owm.weather_at_coords(*g.latlng)
w = observation.get_weather()
temp = w.get_temperature('celsius')['temp']
ui.label.setText(you + tbr)
ui.label_2.setText(he + " У вас сейчас " + str(temp) + "°С. " + "Облачность: " +
w.get_detailed_status())
if tbr == 'Текущее время':
ui.label.setText(you + tbr)
ui.label_2.setText(he + "Сейчас " + str(now.hour) + ":" + str(now.minute))
ui.pushButton.clicked.connect(send)
sys.exit(app.exec_())
Ответы (2 шт):
Автор решения: DGDays
→ Ссылка
Используйте поиск переменной в кортедже или чём-нибудь схожем.
Пример:
if tbr in ("Погода", "погода", "покажи погоду", "Weather", "weather"):
...
Автор решения: CrazyElf
→ Ссылка
Я бы проверял ещё универсальнее чем в другом ответе:
tbr = tbr.lower()
if 'погод' in tbr or 'weather' in tbr:
# сработает на любую фразу где есть 'погода' в любом падеже и регистре, либо 'weather'
elif 'врем' in tbr or 'time' in tbr:
# сработает на любую фразу где есть 'время' в любом падеже и регистре, либо 'time'
else:
# неизвестная команда