Programmation pour l’IA
Florent Capelli
Université d’Artois, CRIL
Présence au TP noté obligatoire.
Note finale:
Utilisation strictement interdite pour le TP noté et les examens.
Choix du langage Python:
Principales bibliothèques :
numpy: calcul scientifiquematplotlib: affichage de donnéespandas: manipulation de données (voir le cours science
des données)scikit-learn: nombreux algorithmes d’apprentissage
machinepytorch: deeplearning.Concepts :
Si vous n’avez jamais programmé en python: MOOC sur Fun.
a : float vaut 5.75, b : int
vaut 5, c : int 3.
Sur combien de bits int et float sont-ils codés respectivement ?
Quel est le codage de caractère utilisé par défaut pour les strings (Python 3)?
Unicode.
Qu’est-ce qu’une f-string?
Quelle opération est la plus rapide : l.append(5) ou
l.insert(5,0)
append.
Quelle différence entre sorted(l) et
l.sort()
sorted(l) crée une nouvelle liste triée.
Que vaut [2*i for i in range(5)]?
[0,2,4,6,8]
Les dictionnaires associent des clés à des valeurs:
Que vaut d["age"]?
d["nom"]?
d["age"]
vaut 22. Le second retourne KeyError.
Que valent ("age" in d)
et ("nom" in d)?
True et False.
Set(): permet de stocker des ensembles ordonnés, ie,
sans doublons.
Que vaut list(Set([1,2,3,1,4,2,6]))?
[1,2,3,4,6]
Tuple: liste mais dont la longueur est fixée.
Pour quelles valeurs de x ce programme affiche-t-il
“Raté”?
0<=x<10 .
Quel est le type de range(5)?
Un itérateur.
Qu’affiche le programme précédent ?
1
4
5
Qu’affiche le programme précédent ?
a
b
Que valent les programmes suivants ?
list(enumerate([1,4,5,7]))
[(0,1), (1,4), (2,5), (3,7)]
list(zip([1,4,5,7], [4,5,6]))
[(1,4), (4,5), (5,6)]
list(map(lambda x:x+1,[1,4,5,7]))
[2,5,6,8]
Qu’écrit ce programme ?
0
Qu’écrit ce programme ?
[1,2,3]
Que calcule cette fonction ?
Renverse une liste.
def f(n):
if n==0:
return [""]
if n==1:
return ["()"]
else:
l=f(n-1)
return [f"(){j}" for j in l]+[f"({j})" for j in l]Que calcule cette fonction ?
Tout les mots bien parenthésés ayant n parenthèses
ouvrantes.
Comment définir une méthode de classe ? def f(self, x1, x2)
Comment définir un constructeur de classe ? On définit la méthode __init__.
class A:
def __init__(self):
self.x = 5
self.y = 5
def display(self):
print(self.x, self.y)
class B(A):
def __init__(self):
self.x = 12Que se passe-t-il si on exécute o = B() puis
o.display() ? 'B' object has no attribute 'y'
Quelles sont les différences entre :
import mathfrom math import *import math as mLa première importe la bibliothèque math avec le
namespace math, la dernière avec le namespace
m. La seconde importe toutes les fonctions de
math. Le problème ici est que cela peut créer des conflits
de noms.