Probleme de syntaxe avec le bloc try, except ou finally

Résolu
maxime_boris Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis en train de programmer un assistant vocal (chatbot). J'ai ce message d'erreur sur mon terminal:

 ligne 48;    def sur le net(entree)    SyntaxError: excepted 'except' or 'finally' block  


... qui apparaît tout le temps. Pourtant, j'ai respecté les indentations, et je ne vois pas ce qui cloche. À mon avis, le problème vient du bloc d'instruction
try ... except ... finally
. Est-ce que quelqu'un a une idée ?

<code># !/usr/bin/python
import speech_recognition as sr
import pyttsx3 as ttx
import webbrowser
import datetime
import wikipedia
import sys
from random import choice
from urllib.request import urlopen

#Instancier le module ce module permet d'ecouter
listener= sr.Recognizer()
engine=ttx.init()
voice=engine.getProperty('voices')
engine.setProperty('voice','french') # pour fixer les parametre de la voix

def internet():
    try:
        urlopen('https://www.google.com', timeout=1)
        print("Connecté")
        return True
    except:
        print("Déconnecté")
        return False



def parler(text):
    engine.say(text)
    engine.runAndWait()

def ecouter():
    try:
        with sr.Microphone() as source:
            print("Parlez maintenant")
            voix=listener.listen(source)
            listener.adjust_for_ambient_noise(source)
            listener.pause_threshold = 0.7
            pas_compris = ("Désolé je n'ai pas compris")
            if internet():
                try:
                    command=listener.recognize_google(voix,language='fr-FR')
                    print(vocal)
                    return vocal
                except sr.UnknownValueError:
                    parler(pas_compris)

def sur_le_net(entree):
    if entree != None:
        if "youtube" in entree.lower(): 
            indx = entree.lower().split().index("youtube") 
            recherche = entree.lower().split()[indx + 1:]
            if len(recherche) != 0:
        parler("recherche sur YouTube .")
        webbrowser.open("http://www.youtube.com/results?search_query=" + "+".join(recherche), new = 2)
        elif "wikipédia" in entree.lower(): 
            wikipedia.set_lang("fr")
    try:
        recherche = entree.lower().replace("cherche sur wikipédia","")
        if len(recherche) != 0:
            resultat = wikipedia.summary(recherche, sentences = 1)
            parler("recherche sur Wikipédia .")
            parler(resultat)
    except:
        parler("Désolé, aucune page trouvée .")
    finally:
        
        if "google" in entree.lower():
            indx = entree.lower().split().index("google")
            recherche = entree.lower().split()[indx + 1:]
        if len(recherche) != 0:
            parler("je recherche sur le site Google .")
            webbrowser.open("https://www.google.com/search?q=" + "+".join(recherche), new = 2)
            elif "cherche" in entree.lower() or "recherche" in entree.lower():
            indx = entree.lower().split().index("cherche")
            recherche = entree.lower().split()[indx + 1:]
        if len(recherche) != 0:
            parler(" je recherche le site par défaut .")
            webbrowser.open("https://www.google.com/search?q=" + "+".join(recherche), new = 2)
        elif "recherche" in entree.lower():
            indx = entree.lower().split().index("recherche")
            recherche = entree.lower().split()[indx + 1:]
        if len(recherche) != 0:
            parler("recherche sur Google .")
            webbrowser.open("http://www.google.com/search?q="+"+".join(recherche), new = 2)  



def lancer_assistant():
    parler("Bonjour maxime, je suis ton assistant de bureau. Dîtes-moi ce que je peux faire pour toi.")
    fermer = ["arrête-toi","tais-toi","bye","au revoir"]
    ouvrir = ["ouvre","ouvrir"]
    cava = ["comment allez-vous","est que ça va","comment ça va"]
    cherche = ["cherche sur youtube","cherche sur google","cherche sur wikipédia","cherche"]
    blague= ["C'est quoi une chauve-souris avec une perruque, c'est une souris",
    "Que fait un crocodile quand il rencontre une magnifique femelle, il lacoste",
    "Pourquoi les pécheur ne sont pas gros, parce qu'il surveille leur ligne"]
    actif = True
    while actif:
        if (entree := ecouter()) is not None:
            for x in range(len(fermer)):
                if fermer[x] in entree.lower():
                    parler("A bientôt monsieur .")
                    actif = False
            for x in range(len(ouvrir)):
                if ouvrir[x] in entree.lower():
                    application(entree)
                    break
            for x in range(len(cava)):
                if cava[x] in entree.lower():
                    parler("Je vais bien merci, et vous ?")
                    break
            for x in range(len(cherche)):
                if cherche[x] in entree.lower():
                    sur_le_net(entree)
                    break
            for x in range(len(blague)):
                if blague[x] in entree.lower():
                    parler(random.choice(blague))
                    break

    while True:
        lancer_assistant()
</code>            
            
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
A la ligne 33,aurais-tu pas un try non fermé ?
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Oui, est python ne s'aperçoit de son absence qu'une fois la ligne 48 atteinte, car jusque-là il avait encore espoir de trouver un
except
.
0