<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=INFO803_%3A_Python%2C_seance_1</id>
	<title>INFO803 : Python, seance 1 - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=INFO803_%3A_Python%2C_seance_1"/>
	<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO803_:_Python,_seance_1&amp;action=history"/>
	<updated>2026-05-21T07:43:52Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO803_:_Python,_seance_1&amp;diff=4700&amp;oldid=prev</id>
		<title>Lachaud : Correction INFO803 / Seance 1</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO803_:_Python,_seance_1&amp;diff=4700&amp;oldid=prev"/>
		<updated>2010-02-09T15:37:59Z</updated>

		<summary type="html">&lt;p&gt;Correction INFO803 / Seance 1&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class Etudiant:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Définit le type Etudiant.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, p, n, a):&lt;br /&gt;
        &amp;quot;Constructeur. Crée un étudiant de nom &amp;lt;n&amp;gt;, de prénom &amp;lt;p&amp;gt;, d&amp;#039;age &amp;lt;a&amp;gt;&amp;quot;&lt;br /&gt;
        self.nom = n&lt;br /&gt;
        self.prenom = p&lt;br /&gt;
        self.age = a&lt;br /&gt;
        self._notes = []&lt;br /&gt;
        self._modules = []&lt;br /&gt;
&lt;br /&gt;
    def qui_suis_je(self):&lt;br /&gt;
        &amp;quot;Affiche l&amp;#039;étudiant sur la terminal.&amp;quot;&lt;br /&gt;
        print &amp;quot;Je suis %s %s et j&amp;#039;ai %d ans.&amp;quot; % (self.prenom, self.nom, self.age)&lt;br /&gt;
&lt;br /&gt;
    def annee_naissance(self,annee):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Retourne l&amp;#039;année de naissance de l&amp;#039;étudiant si &amp;lt;annee&amp;gt; est bien&lt;br /&gt;
           l&amp;#039;annee courante&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        return annee - self.age&lt;br /&gt;
&lt;br /&gt;
    def ajoute_note(self, module, note ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Ajoute à l&amp;#039;étudiant sa note &amp;lt;note&amp;gt; dans son module &amp;lt;module&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        if module in self._modules:&lt;br /&gt;
            print( &amp;quot;Erreur. L&amp;#039;étudiant a déjà une note dans ce module.&amp;quot; )&lt;br /&gt;
        else:&lt;br /&gt;
            self._modules.append( module )&lt;br /&gt;
            self._notes.append( note )&lt;br /&gt;
&lt;br /&gt;
    def change_note(self, module, note ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Change à l&amp;#039;étudiant sa note &amp;lt;note&amp;gt; dans son module &amp;lt;module&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        if module in self._modules:&lt;br /&gt;
            idx = self._modules.index( module )&lt;br /&gt;
            self._notes[ idx ] = note&lt;br /&gt;
        else:&lt;br /&gt;
            print( &amp;quot;Erreur. L&amp;#039;étudiant n&amp;#039;a pas déjà une note dans ce module.&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
    def supprime_note(self, module ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Supprime à l&amp;#039;étudiant sa note dans son module &amp;lt;module&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        if module in self._modules:&lt;br /&gt;
            idx = self._modules.index( module )&lt;br /&gt;
            self._modules.pop( idx )&lt;br /&gt;
            self._notes.pop( idx )&lt;br /&gt;
        else:&lt;br /&gt;
            print( &amp;quot;Erreur. L&amp;#039;étudiant n&amp;#039;a pas déjà une note dans ce module.&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def modules( self ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Retourne la liste des modules suivis par l&amp;#039;étudiant.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        return self._modules&lt;br /&gt;
&lt;br /&gt;
    def notes( self ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Retourne la liste des notes obtenus par l&amp;#039;étudiant, dans&lt;br /&gt;
        l&amp;#039;ordre des modules suivis.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        return self._notes&lt;br /&gt;
&lt;br /&gt;
    def moyenne( self ):&lt;br /&gt;
        m = 0.0&lt;br /&gt;
        for n in self._notes:&lt;br /&gt;
            m = m + float( n ) &lt;br /&gt;
        return m / float( len( self._notes ) )&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def annees_naissance( l, a ):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Affiche les années de naissance de tous les étudiants de la&lt;br /&gt;
    liste &amp;lt;l&amp;gt; si on lui donne l&amp;#039;année en cours &amp;lt;a&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for e in l:&lt;br /&gt;
        print( &amp;quot;%s %s est né(e) en %d.&amp;quot; % ( e.prenom, e.nom, &lt;br /&gt;
                                            e.annee_naissance( a ) ) )&lt;br /&gt;
&lt;br /&gt;
def major( l ):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Retourne l&amp;#039;étudiant qui a la meilleure moyenne dans la liste&lt;br /&gt;
    d&amp;#039;étudiants &amp;lt;l&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    maj = l[ 0 ]&lt;br /&gt;
    for e in l[1:]:&lt;br /&gt;
        if e.moyenne() &amp;gt; maj.moyenne():&lt;br /&gt;
            maj = e&lt;br /&gt;
    return maj&lt;br /&gt;
&lt;br /&gt;
# Façon basique avec des listes.&lt;br /&gt;
def modules_suivis( l ):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Retourne la liste des modules suivis par au moins un étudiant&lt;br /&gt;
    de la liste &amp;lt;l&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    mods = []&lt;br /&gt;
    for e in l:&lt;br /&gt;
        for m in e.modules():&lt;br /&gt;
            if not ( m in mods ):&lt;br /&gt;
                mods.append( m )&lt;br /&gt;
    return mods&lt;br /&gt;
&lt;br /&gt;
# Façon avec des objets ensemble (set).&lt;br /&gt;
def modules_suivis2( l ):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Retourne la liste des modules suivis par au moins un étudiant&lt;br /&gt;
    de la liste &amp;lt;l&amp;gt;.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    mods = set()&lt;br /&gt;
    for e in l:&lt;br /&gt;
        mods.update( e.modules() )&lt;br /&gt;
    return mods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Prog principal.&lt;br /&gt;
e1 = Etudiant( &amp;quot;George&amp;quot;, &amp;quot;Habchi&amp;quot;, 22 )&lt;br /&gt;
e2 = Etudiant(&amp;quot;Joseph&amp;quot;,&amp;quot;Staline&amp;quot;,23)&lt;br /&gt;
e3 = Etudiant(&amp;quot;Youri&amp;quot;, &amp;quot;Gagarine&amp;quot;, 43)&lt;br /&gt;
e4 = Etudiant(&amp;quot;John&amp;quot;, &amp;quot;Travolta&amp;quot;, 24)&lt;br /&gt;
l = [e1,e2,e3,e4]&lt;br /&gt;
annees_naissance( l, 2010 )&lt;br /&gt;
&lt;br /&gt;
e1.ajoute_note(&amp;quot;INFO803&amp;quot;,15)&lt;br /&gt;
e1.ajoute_note(&amp;quot;INFO719&amp;quot;,18)&lt;br /&gt;
e2.ajoute_note(&amp;quot;INFO803&amp;quot;,13)&lt;br /&gt;
e2.ajoute_note(&amp;quot;INFO719&amp;quot;,19)&lt;br /&gt;
e2.ajoute_note(&amp;quot;INFO817&amp;quot;,14)&lt;br /&gt;
e3.ajoute_note(&amp;quot;INFO803&amp;quot;,12)&lt;br /&gt;
e3.ajoute_note(&amp;quot;INFO719&amp;quot;,11)&lt;br /&gt;
e4.ajoute_note(&amp;quot;INFO803&amp;quot;,17)&lt;br /&gt;
e4.ajoute_note(&amp;quot;INFO817&amp;quot;,17)&lt;br /&gt;
e4.ajoute_note(&amp;quot;INFO804&amp;quot;,16)&lt;br /&gt;
print( e1.modules() )&lt;br /&gt;
print( e1.notes() )&lt;br /&gt;
print( e1.moyenne() )&lt;br /&gt;
e = major( l )&lt;br /&gt;
print( &amp;quot;Major: %s %s avec %f&amp;quot; % ( e.prenom, e.nom, e.moyenne() ) )&lt;br /&gt;
print( modules_suivis( l ) )&lt;br /&gt;
print( modules_suivis2( l ) )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lachaud</name></author>
	</entry>
</feed>