Résolue

Pb exercice de test d'une adresse IP

# Fonctions # Booléens # Algorithmes

Salut,

je suis en plein exercice sur le check de la validité d'une adresse IP et j'aurais 2 questions


<u>1ère question :</u>

Je comprends qu'on précise le type du paramètre ip_adress en tant que string mais je ne comprends pas cette syntaxe "-> bool" de la définition de fonction :

def ip_checker(ip_address: str) -> bool: 


Je l'ai déjà rencontré dans d'autres corrections d'exercices avec "-> int" mais je ne sais pas trop comment l'interpréter.

Est-ce que ca veut dire que le l'élément retourné doit être de type booléen obligatoirement sinon la fonction échoue ?


<u>2ème question:</u>

Dans mon code il y a un seul test qui ne passe pas lorsque l'adresse IP est "0.0.0.0".

Je n'arrive pas à comprendre pourquoi. On est d'accord que le premier paramètre du range est inclusif ?


voici mon code :

def ip_checker(ip_adress):
  liste = ip_adress.split(".")
  if len(liste) != 4:
    return False
  for i in liste:
    if i.isdigit() and i in range(0, 255):
      return True
    else:
      return False   

print(ip_checker("192.168.1.1"))

Pour la 2ème question j'ai trouvé dsl, je me suis trompé dans la condition if, le i était en fait int(i)

Hello,


du coup pour ta première question tu parles des annotations. En fait non tu n'auras pas d'erreurs si ta fonction ne retourne pas un bool.

Ce n'est qu'une indication.


In [1]: def test_function(elem: int) -> int:
   ...:     return 2 * elem

In [2]: test_function(2)
Out[2]: 4

In [3]: test_function("hello")
Out[3]: 'hellohello'


Je n'ai pas d'erreur dans le deuxième cas alors que je ne prends ni un int en paramètre, ni ne retourne un int.


Ce n'est vraiment qu'une indication.


Tu as certains framework il me semble comme FastAPI qui implémentent le checks des entrés et sorties en fonction des annotations mais c'est quelque chose que tu dois faire par dessus. Le but des annotations Python n'est pas de vérifier les types de variables.


J'espère que c'est clair pour toi.

Ok très bien, c'est clair.




Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.