las9 info sup spé

Telechargé par ichouaitichou2003
las9 info for CNC
V 1.0
Hamza BA-MOHAMMED, ex-MP & AI student @ ENSIAS
if any mistakes are spotted, please contact me at: [email protected]
31 May 2022
Disclaimer
HADA MASHI COURS COMPLET DYAL INFO POUR PREPA, O HADSHI LI KAYN
HNA GHER BASH T7AREB ZERO ILA KNTI ZR9 F INFO, O Y9ED YNF3EK BASH
DIR "QUICK REVIEW" 9BL L’EPREUVE ILA KNTI DEJA SHAD INFO MZN. 7TIMAL
ANNA AU MOINS 1 POINT MN LES POINTS ABORDES ICI YT7ET F L’EPREUVE
KBIR, MAIS N’EMPECHE Y9D YKOUN DAKSHI F L’EPREUVE PLUS ELABORES.
THUS, USE THIS LAS9 ON YOUR OWN REPONSIBILITY
AND GOOD LUCK <3.
Table des matières
1 Python 3 : les bases 2
1.1 Asavoir ....................................... 2
1.2 les types in-built de variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 lécriture....................................... 3
1.4 Lalecture ...................................... 3
1.5 Les opérations logiques et arithmétiques . . . . . . . . . . . . . . . . . . . . . 3
1.6 Les structures conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7 Les structures itératives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8 breaketcontinue.................................. 4
2 Structures de données 5
2.1 lists(leslistes) ................................... 5
2.2 tuples(lesn-uplets)................................. 5
2.3 sets(lesensembles)................................. 5
2.4 dictionaries (les dictionnaires) . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Algorithmique 6
3.1 fonctionetprocédure................................ 7
3.2 fonctionrécursive.................................. 7
3.3 lacomplexité .................................... 7
3.4 conversion de la base 10 à la base 2 O(log(n)) .................. 8
3.5 recherche linéaire O(n)............................... 8
3.6 recherche binaire (dichotomie) O(log(n)) ..................... 8
3.7 vérification de primalité d’un nombre O(n).................. 8
3.8 multiplication matricielle O(n3).......................... 9
3.9 inversement d’une chaîne de caractère O(n)................... 9
3.10lesalgodetri .................................... 9
3.10.1 bulle O(n2)................................. 9
1
3.10.2 insertion O(n2)............................... 9
3.10.3 selection O(n2)............................... 10
3.10.4 fusion O(n.log(n)) ............................. 10
3.11calculdintégrales.................................. 10
3.11.1 méthode des rectangles O(n)....................... 10
3.11.2 méthode des trapèzes O(n)........................ 10
3.11.3 méthode de Monte Carlo O(n)...................... 10
3.12 recherche de zéro d’une fonction analytique . . . . . . . . . . . . . . . . . . . 11
3.12.1 méthode dichotomie (principe du TVI) . . . . . . . . . . . . . . . . . . 11
3.12.2 méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.13 méthode d’Euler O(T/h).............................. 11
4 Python 3 : les librairies 12
4.1 numpy........................................ 12
4.2 scipy......................................... 12
4.3 matplotlib...................................... 13
4.4 math......................................... 13
4.5 random ....................................... 14
5 SQL 14
5.1 Asavoir ....................................... 14
5.2 Gestion de table SQL existante . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Création et suppression de base de donnée SQL . . . . . . . . . . . . . . . . . 15
1 Python 3 : les bases
1.1 A savoir
Quelques points importants à propos de Python et la rédaction du code :
Python est un langage de programmation interprété et non pas compilé comme
le langage C. Le code est "interprété" ligne par ligne, et donc le code crash sur la
première ligne présentant une erreur syntaxique ou sémantique.
Python est en moyenne plus lent que les autres langages reconnus, mais il est riche
en librairies Open Source et il nécessite moins de lignes de code et de formalisme par
rapport aux autres.
L’indentation (l’espace entre le début d’une ligne et la marge) est très importante en
Python : elle précise la structure logique du code (l’ordre des blocks, etc...). Comme
vous écrivez sur du papier sans carreaux le jour du concours, veillez à préciser
l’indentation avec des traits verticaux et étroits à l’aide d’une règle. (ma
t3gzsh sinon lprof aydir "3ino mizano" o atwli m7kom b la patience o la qualité de
vision du correcteur hh)
dernière chose : PAS DE RATURES EN CODE. (Soit t3awedo kaml, soit blanco
ila 3ndk et s’il est permis)
1.2 les types in-built de variable
int : pour les entiers relatifs (positifs ou négatifs). Le type int (integer) sur Python
3 n’a pas de limite et peut supporter des nombres très très grands (au delà de 50!).
float : pour les nombres à virgules (les réels). Faites attention aux imprécisions de
calculs lors de la division des réels !
str : pour les chaînes de caractères (même celles vides ou qui contient 1 seul caractère)
2
1.3 l’écriture
Pour afficher un message :
 
1print("mon texte entre guillemets")
2print(variable)# la cas d’une variable
3print(var1,var2)# plusieurs variables
4print("text",var,42) # texts et nombres et variables..
 
la fonction print() effectue un retour à la ligne par défaut. Pour changer ce comportement,
on modifie le paramètre end dans la fonction :
 
1print(1, end =" ")# espace a la fin
2print(2, end ="")# rien a la fin
3print(3) # retour a la ligne par defaut
4print(4)
 
Output :
1 23
4
1.4 La lecture
Pour lire une variable depuis l’entrée de l’utilisateur :
 
1x=input() # lit l’entree et le stock dans x
2y=input("message")# affiche le message, lit l’entree
3# et le stock dans y
 
la fonction input() renvoie une variable de type chaîne de caractères (string) par défaut.
Pour changer de type de données, on utilise les fonctions :
 
1n=int(input()) # n un entier relatif
2x=float(input()) # x un reel
 
On note que int(x) renvoie la partie avant la virgule de x. (e.i : int(3.6) renvoie 3)
1.5 Les opérations logiques et arithmétiques
comme en maths, on peut sommer, soustraire, diviser et multiplier les int et les float.
On ajoute 2 opérateurs pour la division des int : si a=b.k +r, alors r=a%bet
k = a // b. (notation mathématique)
Pour les str, on peut les concaténer avec +, et on peut doubler les occurences d’un str en
le multipliant par un entier.
 
1s="salut"
2x="etudiant"
3d=s+x# d contient "salutetudiant"
4e=s*3 # e contient "salutsalutsalut"
 
NB : les str sont immuables : ne peut pas être modifié après déclaration (ma t9edsh tbdl
le contenu dyal une case west dik string, par exemple "salut" tredha "palut", par contre
t9ed tzidliha other elements, f7al "salut" tredha "salut les amis"..).
Les opérateurs logiques sont and or xor not, leurs utilisation est assez intuitive : ils relient
des propositions logiques comme en logique mathématiques (p ET q , p OU q ...)
1.6 Les structures conditionnelles
3
 
1if cond 1 :
2# bloc 1
3elif cond 2 :
4# bloc 2
5elif cond 3 :
6# bloc 3
7.....
8else :
9# bloc n
 
1.7 Les structures itératives
Il existe 2 type de boucles en Python, le for et le while.
Ci-dessous leurs syntaxes et comment passer d’une forme à l’autre :
 
1for iin range(a,b,c): # i prend toutes les valeurs entieres
2# des instructions.. dans [a,b[ en sautant par c
3while condition :# tant que la condition est valide
4# des instructions.. la boucle est executee
 
Dans le case de while, il faut toujours vérifier que la condition sera fausse après un certain
nombre d’itérations, sinon la boucle tournera à l’infini.
Pour le passage, les 2 boucles suivantes sont équivalentes :
 
1for iin range(a,b,c):
2# des instructions
3##########################
4k=a
5while k<b:
6# des instructions
7k=k+c#ouk+=c
 
1.8 break et continue
Il est parfois utile de savoir les 2 commandes break et continue dans les boucles :
break : sert à arrêter la boucle en cours
continue : sert à sauter le reste d’une itération sans arrêter la boucle
 
1for iin range(6):
2if i== 3 : break
3print(i)
 
output :
0
1
2
 
1for iin range(6):
2if i== 3 : continue
3print(i)
 
output :
0
1
2
4
5
4
2 Structures de données
Ici, on se limitera aux 4 structures principales en python (listes, ensemble, tuple et
dictionnaire) avec pour chacun : ses caractéristiques et cas d’utilisation, ses méthodes prin-
cipales (initialisation, ajout/suppression élément, taille, accès et parcours).
2.1 lists (les listes)
nature : muable (peut être modifiée)
accès aux élements : par index (de 0 a la taille de la liste - 1)
cas d’utilisation : outil standard de stockage d’un grand nombre de variables. Utilisé
dans les concours le contexte de matrices.
 
1# initialisation
2L=list() #ouL=[]
3# ajouter element x
4L.append(x)# ou L += x
5# supprimer l’element d’index i
6del(L[i])
7# acces element d’index i
8print(L[i])
9# parcours d’elements
10 for iin range(len(L)): # par index
11 # blabla L[i]
12 for ein L:# par valeurs
13 # blabla e
 
NB : si A est une liste, A contient seulement l’adresse de A dans la mémoire de
stockage. le faite de faire B=Ane fait que créer une copie de référence : A et B pointent
à la même liste. Pour créer une copie de A, il suffit de faire comme suit :
 
1B=list(A)
 
NB 2 : la méthode de "slicing" consiste à prendre une sous-partie [a:b:c] d’une liste L,
avec al’index de départ, b1l’index de fin et cle pas (comme dans range()..). Elle est
applicable aussi pour les string.
NB 3 : il existe certaines fonctions utiles pour les listes comme max(L) min(L) sum(L) qui
renvoient respectivement le max, le min et la somme d’une listes sans utilisation de boucle
(juste pour alléger le code, en matière de vitesse d’exécution ça revient au même)
2.2 tuples (les n-uplets)
En bref, ce n’est qu’une liste immuable (qui ne peut être modifiée après initialisation).
Rarement utilisé, sauf lorsqu’on traite des éléments statiques (par exemple, coordonnées
(x, y, z)d’un point fixe dans l’espace..). Il contient au moins 1 élément, mais en général il
est initialisé par 2 éléments.
1# initialisation
2t= (3,4)
3# ajouter/supprimer/acceder element : impossible
4# acces element
5print(t[i])
6# parcours d’elements : comme les listes..
 
2.3 sets (les ensembles)
nature : muable (peut être modifiée)
5
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !