#python
#python
Вопрос:
Я пытаюсь создать голосовой помощник на испанском языке. Я не знаю, как создать регистр с if
помощью, elif
и else
.
if texto == nada:
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
elif texto == notenecesito:
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
elif texto == lahora:
engine.say("La hora es" current_time)
engine.runAndWait()
print(Fore.RED current_time)
else:
engine.say("buscando " texto ,"Abriendo el navegador")
engine.runAndWait()
webbrowser.open("https://www.google.com/search?q=" texto)
Ответ №1:
Похоже, у вас ошибка отступа в вашем коде. В python нет переключателя, поэтому для этого вам нужно использовать if-elif-else . Если вы хотите, вы можете создать функцию, которая будет работать как переключатель case. Вот так:
def switch(texto):
if texto == "nada":
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
elif texto == "notenecesito":
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
elif texto == "lahora":
engine.say("La hora es" current_time)
engine.runAndWait()
print(Fore.RED current_time)
else:
engine.say("buscando " texto ,"Abriendo el navegador")
engine.runAndWait()
webbrowser.open("https://www.google.com/search?q=" texto)
или вы можете использовать сопоставление словаря следующим образом:
def switch(texto):
switcher = {"nada":"Ok estare para ti cuando me necesites", "notenecesito":"Ok estare para ti cuando me necesites", .......}
return switcher.get(texto, None)
Комментарии:
1. да, это для формата кода stackoverflow, idk, как сделать дело в этом коде
2. В python нет такого переключателя, как в C . Для этого вы должны использовать if-elif-else . Вы можете создать функцию с именем switch с аргументом
textto
и внутри этой функции написать if-elif-else . Затем вы можете использовать эту функцию всякий раз, когда захотите использовать регистр переключения3. функция (textto), если elif else ?
4. да, вы можете сделать как переключатель def(textto): if textto==»..»:…………
5. мне нужно закрыть эту функцию?
Ответ №2:
Ошибка отступа: ожидаемый блок с отступом при попытке
def switch(texto):
if texto == "nada":
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
Ответ №3:
Чтобы имитировать оператор switch в python, вы можете определить вспомогательную функцию следующим образом:
def switch(v): yield lambda *c: v in c
И использовать его в C-подобном стиле:
for case in switch(texto):
if case(nada, notenecesito):
engine.say("Ok estare para ti cuando me necesites")
engine.runAndWait()
break
if case(lahora):
engine.say("La hora es" current_time)
engine.runAndWait()
print(Fore.RED current_time)
break
else:
engine.say("buscando " texto ,"Abriendo el navegador")
engine.runAndWait()
webbrowser.open("https://www.google.com/search?q=" texto)