Connaissance de base de Python

Annexe 1 du didacticiel vidéo - Syntaxe Python : https://singtown.com/learn/50061/

Avantages de l'utilisation de Python

OpenMV peut utiliser Python pour le développement secondaire. Il y a plusieurs avantages :

  • Facile à démarrer
  • Pas besoin de considérer l'application et la libération de la mémoire
  • Il existe de nombreuses bibliothèques MicroPython utilisables directement (non compatibles avec les modules Python sur PC)
  • L'équipe de développement a développé divers algorithmes et modules d'OpenMV que l'on peut appeler

Python est un langage très couramment utilisé et largement utilisé dans le traitement d’images, l’apprentissage automatique et la programmation réseau. Et Python est un langage très simple avec lequel démarrer. Si vous avez des bases en programmation dans d’autres langages (tels que C, C++, Java), il sera plus facile de démarrer.

REPL et port série

L'IDE d'OpenMV est livré avec un assistant de port série pour se connecter à OpenMV et peut également se connecter à d'autres ports série, tels que Arduino, pyboard et esp8266.

Tout d’abord, déconnectez OpenMV de l’EDI, sinon le port série entrera en conflit !

Ouvrir les outils dans OpenMV → Open Terminal → New Terminal

Entrez dans le terminal

print("hello OpenMV!")

sera affiché

hello OpenMV!

Syntaxe Python

sortir

Utilisez print() pour ajouter une chaîne entre parenthèses afin d'afficher le texte spécifié à l'écran. Par exemple, pour afficher 'hello, world', le code est le suivant :

   print('hello, world')
hello, world

La fonction print() peut également accepter plusieurs chaînes séparées par des virgules “,” pour les afficher dans une série :

  print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog

print() imprimera chaque chaîne à tour de rôle. Lorsqu'il rencontre une virgule “,” , il affichera un espace. Par conséquent, la chaîne de sortie est écrite comme ceci :

The quick brown fox jumps over the lazy dog

print() peut également imprimer des entiers ou des résultats de calcul :

  print(300)
300
  print(100 + 200)
300

Par conséquent, nous pouvons imprimer plus joliment le résultat du calcul de 100

  • 200 :
   print('100 + 200 =', 100 + 200)
100 + 200 = 300

Notez que pour 100 + 200, l'interpréteur Python calcule automatiquement le résultat 300. Cependant, '100 + 200 =' est une chaîne et non une formule mathématique, et Python la traite comme une chaîne.

variable

En Python, le signe égal = est une instruction d'affectation. N'importe quel type de données peut être attribué à une variable. La même variable peut être affectée à plusieurs reprises, et il peut s'agir d'une variable de types différents, par exemple :

  a = 123 # a是整数
  print(a)
  a = 'ABC' # a变为字符串
  print(a)

Ce type de langage dont le type de variable n'est pas fixe est appelé langage dynamique, et son homologue est un langage statique. Dans les langages statiques, le type de variable doit être spécifié lors de la définition d'une variable. Si le type ne correspond pas lors de l'attribution d'une valeur, une erreur sera signalée. Par exemple, Java est un langage statique et l'instruction d'affectation est la suivante (// représente un commentaire) :

  int a = 123; // a是整数类型变量
  a = "ABC"; // 错误:不能把字符串赋给整型变量

Par rapport aux langages statiques, les langages dynamiques sont plus flexibles pour cette raison.

list liste

L'un des types de données intégrés à Python est une liste : list. Une list est une collection ordonnée dans laquelle des éléments peuvent être ajoutés et supprimés à tout moment.\ Par exemple, pour lister les noms de tous les élèves de la classe, vous pouvez utiliser une list pour la représenter :

 classmates = ['Michael', 'Bob', 'Tracy']
 classmates
['Michael', 'Bob', 'Tracy']

La variable camarades de classe est une list. Utilisez la fonction len() pour obtenir le nombre d'éléments de la list :

  len(classmates)
3

Utilisez l'index pour accéder à l'élément à chaque position de la list. N'oubliez pas que l'index commence à 0 :

 classmates[0]
'Michael'
 classmates[1]
'Bob'
 classmates[2]
'Tracy'
 classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

Lorsque l'index dépasse la plage, Python signalera une IndexError, alors assurez-vous que l'index ne sort pas de la plage. N'oubliez pas que l'index du dernier élément est len(classmates) - 1.

Si vous souhaitez obtenir le dernier élément, en plus de calculer la position de l'index, vous pouvez également utiliser -1 comme index pour obtenir directement le dernier élément :

  classmates[-1]
'Tracy'

Par analogie, vous pouvez obtenir l'avant-dernier et l'avant-dernier :

   classmates[-2]
'Bob'
   classmates[-3]
'Michael'
   classmates[-4]
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  IndexError: list index out of range

Bien sûr, le quatrième en partant du bas a franchi la ligne.

List est une liste ordonnée mutable, vous pouvez donc ajouter des éléments à la fin de la list :

  classmates.append('Adam')
  classmates
  ['Michael', 'Bob', 'Tracy', 'Adam']

Vous pouvez également insérer des éléments dans une position spécifiée, telle que le numéro d'index 1 :

  classmates.insert(1, 'Jack')
  classmates
  ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

Pour supprimer des éléments en fin de list, utilisez la méthode pop() :

  classmates.pop()
  'Adam'
  classmates
  ['Michael', 'Jack', 'Bob', 'Tracy']

Pour remplacer un élément par un autre élément, vous pouvez directement l'affecter à la position d'index correspondante :

   classmates[1] = 'Sarah'
 classmates
  ['Michael', 'Sarah', 'Tracy']

Les types de données des éléments de la list peuvent également être différents, par exemple :

   L = ['Apple', 123, True]

S'il n'y a aucun élément dans une list, c'est une list vide et sa longueur est 0 :

 L = []

 len(L)

 0

tuple tuple

Un autre type de liste ordonnée est appelé tuple. Le tuple est très similaire à la list, mais une fois initialisé, le tuple ne peut pas être modifié. Par exemple, les noms des camarades de classe sont également répertoriés :

  classmates = ('Michael', 'Bob', 'Tracy')

Désormais, le tuple des classes ne peut pas être modifié et il n'a pas de méthodes telles que append() et insert(). Les autres méthodes d'obtention d'éléments sont les mêmes que les listes. Vous pouvez normalement utiliser les classes[0] et les classes[-1], mais elles ne peuvent pas être affectées à d'autres éléments.

Quel est l'intérêt des tuples immuables ? Les tuples étant immuables, le code est plus sûr. Si possible, utilisez un tuple au lieu d'une list.

Pièges du tuple : Lorsque vous définissez un tuple, les éléments du tuple doivent être déterminés au moment de la définition, tels que :

  t = (1, 2)

  t

  (1, 2)

Cependant, pour définir un tuple avec 1 seul élément, si vous le définissez comme ceci :

   t = (1)

   t

   1

Ce qui est défini n'est pas un tuple, t est une variable entière et la valeur de la variable t est 1 ! En effet, les parenthèses () peuvent représenter à la fois des tuples et des parenthèses dans les formules mathématiques, ce qui crée une ambiguïté. Par conséquent, Python stipule que dans ce cas, les calculs sont effectués selon les parenthèses et que le résultat du calcul est naturellement 1 .

Par conséquent, une virgule doit être ajoutée lors de la définition d'un tuple avec un seul élément pour éliminer toute ambiguïté :

   t = (1,)

   t

  (1,)

Python ajoute également une virgule lors de l'affichage d'un tuple avec un seul élément pour éviter que vous ne le compreniez comme une parenthèse au sens de calculs mathématiques.

Jugement conditionnel

La forme complète de l'instruction if est :

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

Par exemple :

age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

faire du vélo

Il existe deux types de boucles en Python. L'une est la boucle for...in, qui parcourt tour à tour chaque élément de la list ou du tuple

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

L'exécution de ce code imprimera tour à tour chaque élément de noms :

  Michael
  Bob
  Tracy

Ainsi, la boucle for x in... remplace simplement chaque élément dans la variable x, puis exécute l'instruction du bloc indenté.

Si vous souhaitez calculer la somme d'entiers de 1 à 100, il est un peu difficile d'écrire de 1 à 100. Heureusement, Python fournit une fonction range() qui peut générer une séquence d'entiers, qui peut ensuite être convertie en une liste via la fonction list(). Par exemple, la séquence générée par range(5) est un entier commençant par 0 et inférieur à 5 :

  list(range(5))

  [0, 1, 2, 3, 4]

range(101) peut générer une séquence entière de 0 à 100, calculée comme suit :

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

Le deuxième type de boucle est une boucle while. Par exemple, si nous voulons calculer la somme de tous les nombres impairs inférieurs à 100, nous pouvons utiliser une boucle while pour y parvenir :

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

===== Conversion du type de données =====

Les fonctions couramment utilisées intégrées à Python incluent également des fonctions de conversion de types de données. Par exemple, la fonction int() peut convertir d'autres types de données en entiers :

>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> str(100)
'100'
>>> bool(1)
True
>>> bool('')
False

===== Fonctions =====

En Python, pour définir une fonction, utilisez l'instruction def, écrivez le nom de la fonction, les parenthèses, les paramètres entre parenthèses et deux points :, puis écrivez le corps de la fonction dans le bloc indenté et utilisez l'instruction return pour renvoyer la valeur de retour de la fonction.

Écrivons d’abord une fonction qui calcule x2 :

def power(x):
    return x * x

Pour la fonction power(x), le paramètre x est un paramètre de position.

Lorsqu'on appelle la fonction puissance, il faut passer un et un seul paramètre x :

power(5)\ 25\ power(15)\ 225

Maintenant, que se passe-t-il si nous voulons calculer x3 ? Vous pouvez définir une autre fonction power3, mais que se passe-t-il si vous souhaitez calculer x4, x5... ? Nous ne pouvons pas définir des fonctions infinies.

Vous avez peut-être pensé que vous pouviez changer power(x) en power(x, n) pour calculer xn, et faites-le :

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

Pour cette fonction de puissance modifiée(x, n), n’importe quelle nième puissance peut être calculée :

power(5, 2)\ 25\ power(5, 3)\ 125

La fonction power(x, n) modifiée a deux paramètres : x et n. Les deux paramètres sont des paramètres de position. Lors de l'appel de la fonction, les deux valeurs transmises sont affectées aux paramètres x et n par ordre de position. .

tranche

Récupérer certains éléments d’une liste ou d’un tuple est une opération très courante. Par exemple, une liste est la suivante :

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

Prenez les 3 premiers éléments et complétez le découpage avec une ligne de code :

L[0:3]\ ['Michael', 'Sarah', 'Tracy']

L[0:3] signifie commencer de l'index 0 à l'index 3, mais sans inclure l'index

  1. Autrement dit, les index 0, 1, 2 sont exactement 3 éléments.

Si le premier index est 0, il peut également être omis :

L[:3]\ ['Michael', 'Sarah', 'Tracy']

Vous pouvez également partir de l'index 1 et retirer 2 éléments :

L[1:3]\ ['Sarah', 'Tracy']

Tuple est aussi une sorte de liste, la seule différence est que le tuple est immuable. Par conséquent, les tuples peuvent également être exploités par découpage, mais le résultat de l’opération est toujours un tuple :

(0, 1, 2, 3, 4, 5)[:3]\ (0, 1, 2)

La chaîne 'xxx' peut aussi être considérée comme une liste, chaque élément est un caractère. Par conséquent, les chaînes peuvent également être découpées, mais le résultat est toujours une chaîne :

'ABCDEFG'[:3]\ 'ABC'

objet

Python est une programmation orientée objet, comme une lumière LED

from pyb import LED

red_led = LED(1)
red_led.on()

LED est une classe et red_led est un objet. Vous pouvez opérer sur cet objet, comme allumer, éteindre et afficher la valeur.

module

Utilisation des modules

results matching ""

    No results matching ""