You are on page 1of 36

Algorithmique

(sur base python)

Xavier Bourget 2023 Caen


Python, installation


Python 2.7x et 3.x (python --version)
deux versions aussi utilisées l’une que l’autre
Python, installation

Les installateurs de python et ses modules


apt, rpm, snap, ... (pour les paquets du système)

pip et pipy (pour les paquets de la pythonsphère )
Python, particularité


Python n’est pas typé

Python copie, clone et passe par référence

Python est structuré par sa tabulation

Python est quasi POO

Python est ré-entrant

Python est interprété

Python peut inclure du code .obj (C compilé)
Python, les bases

Les mots clés

not and or xor True False in is import from as assert


for while if elif else break continue class None
global nonlocal del def with lambda list type pass
return yield try finally except raise
Python, installation

mot_clé_structurant code :
instruction indentée
exemple
if (age >= 18 ) :
print( ‘majeur !’ )
Python, les variables, string

uneChaine = 'Sigismond va à la mer'

print( uneChaine )

uneChaine = "Gertrude va à la campagne"

print( uneChaine )

uneChaine = """Brieuc va à la ville

Il flâne au marché

et

achète 6 oeufs."""

print( uneChaine )

uneChaine = uneChaine + ' Pour faire une omelette.'

print( uneChaine )

uneChaine = uneChaine.replace( 'Brieuc', "Célestin" )

print( uneChaine )
Python, les variables, nombre

unNombre = 21

print( unNombre, type( unNombre ) )

a = int( 12 )

print( a, type( a ) )

a = int( 0.016 )

print( a, type( a ) )

a = int( 11.016 )

print( a, type( a ) )

#a = int( "14.18" )

a = int( "1418" )

print( a, type( a ) )

print( uneChaine )
Python, les variables, nombre

unNombre = 3.14159

print( unNombre, type( unNombre ) )

a = float( 12 )

print( a, type( a ) )

a = float( 0.016 )

print( a, type( a ) )

a = float( "1418" )

print( a, type( a ) )

a = float( "14.18" )

print( a, type( a ) )

print( uneChaine )
Python, les opérateurs arithmétiques


print(5 + 3)

print(5 - 3)

print( - 3)

print(5 * 3)

print(12 / 3)

print(5 % 2)

print(5 ** 2)

print(15 // 2)
Python, les opérateurs logiques


Print( True and False )

Print( False or True )

Print( not False )
Python, les opérateurs binaires


print(4 & 5)

print(5 | 3)

print(5 ^ 3)

Print( ~ 5 )

Print( 1 << 2 )

Print( 16 >> 2)
Python, les boucles

for a in range( 1, 9):


print( a )

a=1
while a < 9 :
print( a )
a += 1
Python, la boucle for et le liste

noms = ['toto', 'tata', 'titi' ]


for nom in noms:
print( nom )
Python, les fonctions

def bonjour ( prenom ) :


print( "bonjour " + prenom )

bonjour( ‘toto’ )
Python, les fonctions

def bonjour ( prenom, nom ) :


print( "bonjour " + prenom + ‘ ‘ + nom )

bonjour( ‘toto’, ‘dupont’ )


Python, les fonctions

def bonjour ( prenom, nom=’’ ) :


print( "bonjour " + prenom + ‘ ‘ + nom )

bonjour( ‘toto’ )
bonjour( ‘toto’, ‘dupont’ )
Python, les fonctions avec retour

def additione( a, b ) :
return a + b

print( additione( 5, 3 ) )
Python, exercice : écrire la fonction somme, puis moyenne

def somme( liste ):


...

maliste = [ 2, 7, -4, 8 ]
print( somme( maliste ))
print( moyenne( maliste ))
Exercice, écrire les Python, fonctions pyramide , nbrEtoileInPyramide


pyramide(5)

print( nbrEtoileInPyramide(5) )
Exercice, écrire les foncts rectangle , nbrEtoileInRectangle


Rectangle( 25, 5 )

print( nbrEtoileInRect( 25, 5 ) )
Exercice, écrire les foncts rectangle , nbrEtoileInRectangle

ET ALORS ????

Ne raisonnez pas toujours comme


un mécanicien les mains dans le cambouis...
Python, les listes

noms = [ 'toto', 'tata', 'titi', 'tutu', 'tete', 'tyty' ]


print( noms )
print( noms[ 0 ] )
print( noms[ 2:3 ] )
print( noms[ 2: ] )
print( noms[ -1 ] )
print( noms[ :: 2 ] )
print( noms[ ::-1 ] )
Python, les chaines … des listes de caractères

nom = "philomène"
print( nom )
print( nom[ 0 ] )
print( nom[ 2:3 ] )
print( nom[ 2: ] )
print( nom[ -1 ] )
print( nom[ :: 2 ] )
print( nom[ ::-1 ] )
Python, les methodes de listes

print( len( noms ) )

noms.append( "dudu" )

print( noms.pop() )

noms.insert( 0, 'dodo')

noms.insert( len( noms ), 'dudu')

noms.insert( len( noms )//2, 'didi')

noms.remove( 'didi')

noms = noms[:len( noms )//2] + ['didi'] + noms[len( noms )//2:]

noms.insert( 0, 'tutu')

print( noms.count( 'tutu') )

pos = noms.index( 'tutu')

print( pos, noms.index( 'tutu', pos+1) )

noms.sort()
Python, listes, lambda, map et filter

listMaj = list( map( lambda nom: nom.upper(), noms ))


print( listMaj )

listD = list( filter( lambda nom: nom[0] == 'd', noms ))


print( listD )
Python, les conditions

age = 17

if age >= 18 :

print( 'majeur' )

else:

print( 'majeur' )

if age >= 50 :

print( 'retraité' )

elif age > 30 :

print( 'travailleur' )

else :

print( 'apprenant' )
Python, exercice, fusionnez ces deux séquences de condition en une seule

if age >= 18 :

print( 'majeur' )

else:

print( 'majeur' )

if age >= 50 :

print( 'retraité' )

elif age > 30 :

print( 'travailleur' )

else :

print( 'apprenant' )
Python, boucle et condition

legumes = [ 'rutabaga', 'patate', 'navet', 'poireau', 'choux', 'carotte', 'topinanbour' ]

fruits = [ 'abricot', 'tomate', 'poire', 'ananas', 'fraise', 'citrouille' ]

panier = [ 'haricot', 'patate', 'abricot', 'topinanbour', 'laitue' ]

for article in panier :

if article in legumes:

print( article, ' -> ', 'legume')

elif article in fruits:

print( article, ' -> ','fruit')

else :

print( article, ' -> ',"je ne sais pas" )


Python, break et continue

legumes = [ 'rutabaga', 'patate', 'navet', 'poireau', 'choux', 'carotte', 'topinanbour' ]

fruits = [ 'abricot', 'tomate', 'poire', 'ananas', 'fraise', 'citrouille' ]

panier = [ 'haricot', 'patate', 'abricot', 'topinanbour', 'laitue' ]

for article in legumes:

if article[ -1 ] == 'x' :

break

print( article, ' miam ' )

for article in legumes:

if article[ -1 ] == 'x' :

continue

print( article, ' miam ' )


Python, lecture fichier

ficName = 'base_liste.py'

fichierLecture = open( ficName )

for ligne in fichierLecture :

print( ligne, end='' )

fichierLecture.close()
Python, ecriture fichier

legumes = [ 'rutabaga', 'patate', 'navet', 'poireau', 'choux', 'carotte', 'topinanbour' ]

fichierEcriture = open( 'legumes.txt', 'a' )

for legume in legumes :

fichierEcriture.writelines( legume )

fichierEcriture.write( chr(10) )

fichierEcriture.close()
Python, fichier exercice

Écrivez un programme qui recopie un fichier texte dans un autre fichier

qui aura « .copie » à la fin de son nom.

Chaque ligne recopiée sera précédée de son numéro de ligne


Python, dictionnaire

nombre_de_roues = {"tram":18, "voiture": 4, "vélo": 2, "tricycle": 3}

del nombre_de_roues[ 'velo' ]

nombre_de_roues[ 'monocycle' ] = 1

for k in nombre_de_roues.keys():

print( k, nombre_de_roues[ k ] )
Python, dictionnaire, maps, tableau associatif et autres KV

nombre_de_roues = {"tram":18, "voiture": 4, "vélo": 2, "tricycle": 3}

for i in nombre_de_roues.items():

print(i)

for k, value in nombre_de_roues.items():

print("l'élément de clé", k, "vaut", value )


Python, exception

nombre_de_roues = {"tram":18, "voiture": 4, "vélo": 2, "tricycle": 3}

try :

del nombre_de_roues[ 'vélo' ]

except Exception as e:

print( "la clé n'existe pas", e )

finally :

print( "je passe toujours ici")

try :

raise Exception( 'mon exception' )

except Exception as e:

print( str(e) )

You might also like