Answer the question
In order to leave comments, you need to log in
Can you rate the python code?
I started learning python about 3 days ago.
I decided to write a simple assistant who will answer simple questions.
Please rate my code and tell me what can be fixed?
# -*- coding: utf-8 -*-
import pyowm
import datetime
import colorama
from colorama import Fore, Back, Style
from colorama import init
import os
init()
import time
import pyttsx3
engine = pyttsx3.init()
owm = pyowm.OWM('17cac06b9ae55882a7790963c36490aa', language='ru')
observation = owm.weather_at_place('Moscow')
w = observation.get_weather()
chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
date = datetime.datetime.today().strftime("%d.%m.%Y")
time = datetime.datetime.now().strftime("%H.%M")
login = input("Введите логин: ")
if login == "root":
print(Fore.GREEN)
engine.say('Авторизация пройдена на 50%!')
engine.runAndWait()
elif login == "":
print(Fore.RED)
print("Поле пустое!")
raise SystemExit
else:
print(Fore.RED)
engine.say("Неверный логин!")
engine.runAndWait()
raise SystemExit
password = input("Введите пароль: ")
if password == "abrakadabra":
print(Fore.GREEN)
engine.say("Добро пожаловать!")
engine.runAndWait()
print(Fore.WHITE)
name = input("Как тебя зовут?: ")
engine.say("Приятно познакомиться, " + name +"! Я - Джессика! Твой ассистент.")
engine.runAndWait()
while True:
question = input("Введите запрос: ")
if question == "Сколько сейчас времени?":
engine.say("Сейчас: " + str(time))
engine.runAndWait()
elif question == "Привет":
engine.say("Привет!")
engine.runAndWait()
elif question == "Скажи время":
engine.say("Сейчас: " + str(time))
engine.runAndWait()
elif question == "Время":
engine.say("Сейчас: " + str(time))
engine.runAndWait()
elif question == "Дата":
engine.say("Сегодня у нас: " + str(date))
engine.runAndWait()
elif question == "Какая сегодня дата?":
engine.say("Сегодня у нас: " + str(date))
engine.runAndWait()
elif question == "Какая сейчас дата?":
engine.say("Сегодня у нас: " + str(date))
engine.runAndWait()
elif question == "Какое сегодня число?":
engine.say("Сегодня у нас: " + str(date))
engine.runAndWait()
elif question == "Анекдот":
engine.say("Мой создатель не научил меня шутить... Ха-Ха-Ха")
engine.runAndWait()
elif question == "Расскажи анекдот":
engine.say("Мой создатель не научил меня шутить... Ха-Ха-Ха")
engine.runAndWait()
elif question == "Расскажи шутку":
engine.say("Мой создатель не научил меня шутить... Ха-Ха-Ха")
engine.runAndWait()
elif question == "Шутка":
engine.say("Мой создатель не научил меня шутить... Ха-Ха-Ха")
engine.runAndWait()
elif question == "Рассмеши меня":
engine.say("Мой создатель не научил меня шутить... Ха-Ха-Ха")
engine.runAndWait()
elif question == "Прекратить":
raise SystemExit
elif question == "Стоп":
raise SystemExit
elif question == "":
print("Поле пустое")
elif question == "Погода":
print("Погода: " + str(w))
print("Температура в Туле: " + str(w.get_temperature('celsius')))
print("Скорость ветра: " + str(w.get_wind()))
elif question == "Какая сегодня погода?":
print("Погода: " + str(w))
print("Температура в Туле: " + str(w.get_temperature('celsius')))
print("Скорость ветра: " + str(w.get_wind()))
elif question == "Какая сейчас погода?":
print("Погода: " + str(w))
print("Температура в Туле: " + str(w.get_temperature('celsius')))
print("Скорость ветра: " + str(w.get_wind()))
elif question == "Скажи погоду":
print("Погода: " + str(w))
print("Температура в Туле: " + str(w.get_temperature('celsius')))
print("Скорость ветра: " + str(w.get_wind()))
elif question == "Играть":
whatgame = input("Какую игру запустить?: ")
if whatgame == "WatchDogs":
os.startfile(r'D:\Games\Watch Dogs 2\bin\WatchDogs2.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "Sims4":
os.startfile(r'D:\Games\The Sims 4\Game\Bin\TS4_x64.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "NFS":
os.startfile(r'D:\Games\Need for Speed Rivals\NFS14.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "NeedForSpeed":
os.startfile(r'D:\Games\Need for Speed Rivals\NFS14.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "AssasinsCreed":
os.startfile(r'D:\Games\Assassins Creed Unity\ACU.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "ACU":
os.startfile(r'D:\Games\Assassins Creed Unity\ACU.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "":
engine.say("Поле пустое!")
engine.runAndWait()
else:
engine.say("Игра не найдена!")
elif question == "Запусти игру":
whatgame = input("Какую игру запустить?: ")
if whatgame == "WatchDogs":
os.startfile(r'D:\Games\Watch Dogs 2\bin\WatchDogs2.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "Sims4":
os.startfile(r'D:\Games\The Sims 4\Game\Bin\TS4_x64.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "NFS":
os.startfile(r'D:\Games\Need for Speed Rivals\NFS14.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "NeedForSpeed":
os.startfile(r'D:\Games\Need for Speed Rivals\NFS14.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "AssasinsCreed":
os.startfile(r'D:\Games\Assassins Creed Unity\ACU.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "ACU":
os.startfile(r'D:\Games\Assassins Creed Unity\ACU.exe')
engine.say("Игра успешно запущена! Наслаждайтесь!")
engine.runAndWait()
raise SystemExit
elif whatgame == "":
engine.say("Поле пустое!")
engine.runAndWait()
else:
engine.say("Игра не найдена!")
else:
engine.say("Введён неизвестный запрос")
engine.runAndWait()
elif password == "":
print(Fore.RED)
engine.say("Поле пустое!")
engine.runAndWait()
raise SystemExit
else:
print(Fore.RED)
engine.say("Неверный пароль!")
engine.runAndWait()
raise SystemExit
input()
Answer the question
In order to leave comments, you need to log in
Even if you don't know python that well:
- the code is hard to read: too many repeating places (DRY principle - Don't Repeat Yourself at least apply, break it into functions)
- a wild number of if! yes, there is no switch-case in python, but there are a lot of examples of how to do it better
- and there is also such a cool thing as the state-machine pattern, which allows you to work with such scenarios
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question