@andro1
?

Почему else — invalid syntax?

Пролистайте в самый низ. Простите, что так много кода, я просто не понимаю где ошибка? Возле проблемного else я написал "Тут ошибка"
# -*- coding: utf-8 -*-
from playsound import playsound
import pyowm
import os
import pyttsx3
import subprocess
import time
import datetime
import random
import webbrowser
import speech_recognition as sr
from datetime import date
speak_engine = pyttsx3.init()

def speak(what):
	print(what)
	speak_engine.say( what )
	speak_engine.runAndWait()
	speak_engine.stop()

now = datetime.datetime.now()

file = open('names.txt', 'r')
string = file.read()
file.close()

file2 = open('password.txt', 'r')
string2 = file2.read()
file2.close()

if float(now.hour) > 16:
	speak("Добрый вечер, " + str(string))

else:
	speak("Добрый день, создатель" + (string))
speak("Говорите")

puti = {"командная строка": "C:/Users/Andrew/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/System Tools/Командная строка.lnk",
	"иллюстратор": "D:/adobe Illustrator/Adobe Illustrator 2020/Support Files/Contents/Windows/Illustrator.exe", 
	"firefox": "C:/Program Files/Mozilla Firefox/firefox.exe", 
	"калькулятор": "C:/Windows/System32/calc.exe", 
	"total commander": "C:/Program Files (x86)/Total Commander/Totalcmd.exe", 
	"блокнот": "C:/Windows/System32/notepad.exe", 
	"редактор кода": "D:/Sublime Text 3/sublime_text.exe",
}

razgovori = {"хорошо": "Ага", "как тебя зовут": "Меня зовут Алиас", "как дела": "Нормально, я бы сказал даже хорошо", "привет": "Привет", "спасибо": "Пожалуйста", "смешно": "Согласен", "сколько тебе лет": "Дерево не тонет, рукописи не горят, технологии не стареют.", "у тебя есть девушка": "У меня запутаные отношения с командной строкой. Иногда, она не может найти мою директорию.", "у тебя есть жена": "У меня запутаные отношения с командной строкой. Иногда, она не может найти мою директорию.", "где ты живёшь": "Диск C, папка Users, папка Desktop, папка Andrew, папка Python, файл test.py. Приходите, может чайку попьем", "что ты думаешь о windows": "Типичная недо система. Мне больше нравится Linux", "ты знаешь что ты не можешь жить в линуксе": "Да, я это знаю... И меня очень растраивает этот факт : ("}
mat = {"ты тупой": "Вовсе нет, просто, незабывайте что я программа", "ты глупый": "Вовсе нет, просто, незабывайте что я программа", "я не хочу тебя слышать": "Простите меня, если вы больше не хотите разговаривать - скажите отключись"}
all_names_variants = ["измени моё имя", "поменяй моё имя", "измени имя", "поменяй имя"]
weather = ["погода", "какая погода", "покажи погоду", "тепмература", "какая температура", "покажи температуру"]
place = ["где я", "где я нахожусь", "покажи где я", "моё место местоположение", "покажи моё место местоположение", "покажи где я нахожусь"]
what_day = ["дата", "скажи дату", "скажи текущую дату", "какое число", "скажи число", "скажи текущее число"]
what_time = ["время", "час", "скажи время", "скажи час", "который час", "сколько времени"]
marsh = ["проложи маршрут", "сделай маршрут", "маршрут", "покажи маршрут"]
all_open_variants = ["открой", "запусти"]
music = ["включи музыку", "воспроизведи музыку", "запусти музыку"]

def shto():
	try:
		a = sr.Recognizer()
		with sr.Microphone(device_index=1) as source:
			audio = a.listen(source)
		query = a.recognize_google(audio, language="ru-RU")
		print(query.lower())

		if query.lower() == "поменяй пароль":
			file2 = open('password.txt', 'r')
			string2 = file2.read()
			file2.close()

			if string2 == "tutnetparrrrrrola":
				speak("У вас не установлен пароль")
				speak("Установите пароль")
				password()
		
		if query.lower() in weather:
			#city = input("Какой город?   ")
			speak("В каком городе вы хотите узнать погоду?   ")

			a = sr.Recognizer()
			with sr.Microphone(device_index=1) as source:
				audio = a.listen(source)
			city = a.recognize_google(audio, language="ru-RU")


			owm = pyowm.OWM('f5cb5ced678daf785ff5c62c5cba912c', language = "RU")
			observation = owm.weather_at_place(city)
			w = observation.get_weather()
			temperature = w.get_temperature('celsius')['temp']

			m = w.get_detailed_status()

			speak("В городе " + city + " сейчас температура:  " + str(temperature) + " по Цельсию")
			speak("Также в указанном городе " + m)
			shto()

		if query.lower() in music:
			print("Введите путь к музыке(например: C:/User/Andrew...) после чего   ")
			chooice_music = input("Введите путь к музыке(например: C:/User/Andrew...) после чего нажмите Ctrl + c   ")
			playsound(chooice_music)
			shto()

		if query.lower() in place:
			webbrowser.open_new_tab("https://www.google.com/search?client=firefox-b-d&q=" + "моё местоположение")
			shto()

		if query.lower() in what_day:
			today = date.today()
			speak("Текущая дата: ")
			print(today)
			shto()

		if query.lower() in all_names_variants:
			input_new_name = input("Введите новое имя:   ")

			handle = open("names.txt", "w")
			handle.write(input_new_name)
			handle.close()

			speak("Имя изменено")
			shto()

		if query.lower() in puti:
			subprocess.call(puti[query.lower()])
			speak("Запустил")
			shto()

		if query.lower() in razgovori:
			speak(razgovori[query.lower()])
			shto()

		if query.lower() in mat:
			speak(mat[query.lower()])
			shto()

		if query.lower() == "выключи компьютер":
			speak("Выключаю...")
			os.system("shutdown /p")

		if query.lower() == "перезагрузи компьютер":
			speak("Перезагружаю...")
			os.system("shutdown /r")

		if query.lower() in what_time:
			speak("Сейчас " + str(now.hour) + ":" + str(now.minute))
			shto()

		if query.lower() == "выключись":
			speak("Хорошо, отключаюсь, всего доброго!")

		if query.lower() == "отключись":
			speak("Хорошо, отключаюсь, всего доброго!")

		if query.lower() == "пошути":
			c = random.randint(1, 4)
			if c == 1:
				speak("Семья бомжей, часто сорилась, из-за какойто мелочи.")
				shto()
			if c == 2:
					speak("-Милый ты любишь меня?")
					speak("-Конечно!")
					speak("-А умрешь за меня?")
					speak("-Здрасте! А любить тебя кто будет?!")
					shto()
			if c == 3:
					speak("Мои друзья — полицейские служили в милиции, потом в полиции, теперь их переводят в национальную гвардию... Чувствую, на пенсию они уйдут МУШКЕТЕРАМИ.")
					shto()
			if c == 4:
					speak("Если в школах есть уроки труда, то должны быть и уроки отдыха.")
					shto()
		if query.lower() == "расскажи три закона робототехники":
				speak("1. Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.")
				speak("2. Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.")
				speak("3. Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому или Второму Законам.")
				shto()

		if query.lower() == "поиск":
			print("Введите поисковой запрос:	")
			a = sr.Recognizer()
			with sr.Microphone(device_index=1) as source:
				audio = a.listen(source)
			search_google = a.recognize_google(audio, language="ru-RU")
			print(search_google.lower())

			webbrowser.open_new_tab("https://www.google.com/search?client=firefox-b-d&q=" + search_google)
			shto()
			if search_google == "отмена":
				shto()

		if query.lower() == "как меня зовут":
			file = open('names.txt', 'r')
			string = file.read()
			file.close()

			if string == "none":
				new_name = input("Введите имя:   ")
				new_new_name = ("Вас зовут " + str(new_name))
				speak(new_new_name)

				handle = open("names.txt", "w")
				handle.write(new_name)
				handle.close()
				shto()

			else:
				file = open('names.txt', 'r')
				string = file.read()
				file.close()

				speak("Вас зовут " + string)
				shto()

		if query.lower() in marsh:
			speak("Введите начальную точку:   ")

			aa = sr.Recognizer()
			with sr.Microphone(device_index=1) as source:
				audio = aa.listen(source)
			point_a = aa.recognize_google(audio, language="ru-RU")
			print(point_a.lower())

			speak("Введите конечную точку:   ")

			aaa = sr.Recognizer()
			with sr.Microphone(device_index=1) as source:
				audio = aaa.listen(source)
			point_b = aaa.recognize_google(audio, language="ru-RU")
			print(point_b.lower())

			webbrowser.open_new_tab('https://www.google.com.ua/maps/dir/' + point_a + '/' + point_b)
			shto()

		def password():

			first_password = input("Введите пароль:  ")
			second_password = input("Повторите пароль:  ")
			if first_password == second_password:
				speak("Пароль установлен")

				file = open('password.txt', 'w')
				string = file.write(second_password)
				file.close()

				shto()
			else:
				speak("Пароли несовпадают!")
				password()

		else:           Тут ошибка
			speak("Команда не распознана!")
			shto()

	except:
		shto()

if string2 == "tutnetparrrrrrola":
	shto()
else:
	input("Введите пароль:  ")
shto()
  • Вопрос задан
  • 4698 просмотров
Решения вопроса 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Посмотрите, к какому, по-вашему, оператору if относится этот else. С учетом расставленных вами отступов ни к какому.
Ответ написан
Amigun
@Amigun
Джун : |
У вас else относится к функции password.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dmitriy337
@dmitriy337
Python Dev from Ukraine
Зачем столько if ,разве не лучше использовать elif ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы