• [^] # Re: Méthode de base

    Posté par (site web personnel) . En réponse au message tableau d'entiers. Évalué à 1.

    Il faut utiliser des listes et elles sont non typées. D'une manière générale, python est un langage non typé

    Python est un langage typé dynamiquement. Chaque élément en mémoire à un type (que ce soit une variable, une fonction, une classe, un module, etc.).

    >>> type(12)
    <class 'int'>
    >>> import os
    >>> type(os)
    <class 'module'>

    Par exemple, il n'est pas possible de concaténer une chaîne de caractère et un entier :

    >>> "a" + 1
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    TypeError: can only concatenate str (not "int") to str

    Cependant, contrairement à un typage statique (comme en C, Java, etc.), la vérification du typage est fait à l'exécution, ce qui donne l'impression qu'il n'y a pas de typage. En pratique, ceux qui préfèrent un typage statique pour sa capacité de vérification des types lors de la compilation assimilent le comportement de Python à un langage non typé car il ne permet pas cela. Cependant, le typage de Python permet de détecter certaines erreurs (à l'exécution) lorsque certains problèmes de type surviennent plutôt que dans une exécution plus lointaine du programme comme le ferait un langage non typé.

    tu peux préciser les types attendu dans tes fonctions depuis pytho 3.7

    Oui, l'apparition du type hinting permet d'indiquer le type attendu en paramètre et en sortie des fonctions et méthodes. Cela permet de vérifier statiquement dans certains cas les appels. Cela dit, ça reste limité et ne sera probablement jamais aussi implacable qu'un typage statique.

    >>> def plus_un(entier: int) -> int:
    ... return entier + 1