| @@ -221,12 +221,16 @@ Notez l'utilisation des parenthèses pour \emph{appeler} la fonction | |||||
| def add(a, b): | def add(a, b): | ||||
| return a + b | return a + b | ||||
| a = 1 | |||||
| b = 2 | |||||
| c = add(a, b) | |||||
| print(c) | |||||
| nombre_1 = 1 | |||||
| nombre_2 = 2 | |||||
| total = add(nombre_1, nombre_2) | |||||
| print(total) | |||||
| \end{lstlisting} | \end{lstlisting} | ||||
| \vfill | |||||
| Affiche \texttt{3}. | |||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| @@ -242,6 +246,9 @@ def greet(name, shout=False): | |||||
| >>> greet("John") | >>> greet("John") | ||||
| 'Hello, John' | 'Hello, John' | ||||
| >>> greet("John", shout=False) # meme resultat | |||||
| 'Hello, John' | |||||
| >>> greet("Jane", shout=True) | >>> greet("Jane", shout=True) | ||||
| 'Hello, Jane!' | 'Hello, Jane!' | ||||
| \end{lstlisting} | \end{lstlisting} | ||||
| @@ -367,6 +374,8 @@ Bonjour Charlie | |||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Test de présence} | \frametitle{Test de présence} | ||||
| @@ -384,6 +393,29 @@ False | |||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | |||||
| \frametitle{Ça marche aussi avec les strings} | |||||
| Les strings sont \emph{presque} des liste de lettres: | |||||
| \begin{lstlisting} | |||||
| for letter in "vache": | |||||
| print(letter) | |||||
| v | |||||
| a | |||||
| c | |||||
| h | |||||
| e | |||||
| \end{lstlisting} | |||||
| \begin{lstlisting} | |||||
| >>> "v" in "vache" | |||||
| True | |||||
| >>> 'x' in "vache" | |||||
| False | |||||
| \end{lstlisting} | |||||
| \end{frame} | |||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Ajout d'un élément} | \frametitle{Ajout d'un élément} | ||||
| Avec \texttt{append()} | Avec \texttt{append()} | ||||
| @@ -418,15 +450,27 @@ Erreur! | |||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Découper une string en liste} | |||||
| \frametitle{Découper une string en liste (1)} | |||||
| \begin{lstlisting} | \begin{lstlisting} | ||||
| >>> message = "un deux trois" | |||||
| >>> message.split() | |||||
| ["un", "deux", "trois"] | |||||
| >>> path = "documents/e2l/foo.py" | |||||
| >>> message.split("/") | |||||
| ["documents", "e2l", "foo"] | |||||
| \end{lstlisting} | \end{lstlisting} | ||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | |||||
| \frametitle{Découper une string en liste (2)} | |||||
| \begin{lstlisting} | |||||
| >>> texte = """"\ | |||||
| ligne1 | |||||
| ligne2 | |||||
| ligne3 | |||||
| """ | |||||
| >>>texte.splitlines() | |||||
| ["ligne1", "ligne2", "ligne3"] | |||||
| \end{lstlisting} | |||||
| \end{frame} | |||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Dictionnaires} | \frametitle{Dictionnaires} | ||||
| @@ -449,28 +493,30 @@ Des clés et des valeurs: | |||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Insertion} | |||||
| \frametitle{Accès} | |||||
| \begin{lstlisting} | \begin{lstlisting} | ||||
| >>> scores = {"john": 10 } | >>> scores = {"john": 10 } | ||||
| >>> scores["john"] = 12 # John marque deux points | |||||
| >>> scores["bob"] = 3 # Bob entre dans la partie | |||||
| >>> scores["john"] | |||||
| 10 | |||||
| >>> scores["personne"] | >>> scores["personne"] | ||||
| KeyError | KeyError | ||||
| \end{lstlisting} | \end{lstlisting} | ||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Fusion de dictionnaires} | |||||
| \frametitle{Modification} | |||||
| \begin{lstlisting} | \begin{lstlisting} | ||||
| >>> s1 = {"john": 12, "bob": 2} | |||||
| >>> s2 = {"bob": 3, "charlie": 4} | |||||
| >>> s1.update(s2) | |||||
| >>> s1 | |||||
| {"john": 12, "bob": 3, "charlie": 4} | |||||
| >>> scores["john"] = 12 # John marque deux points | |||||
| >>> scores["bob"] = 3 # Bob entre dans la partie | |||||
| >>> scores | |||||
| {"john": 12, "bob": 3} | |||||
| \end{lstlisting} | \end{lstlisting} | ||||
| \end{frame} | |||||
| \vfill | |||||
| Même code pour mettre à jour une clé et en créer une! | |||||
| \end{frame} | |||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Destruction} | \frametitle{Destruction} | ||||
| @@ -710,19 +756,22 @@ while True: | |||||
| display_hint(word, letters) | display_hint(word, letters) | ||||
| if has_won(word, letters): | if has_won(word, letters): | ||||
| print("OK") | print("OK") | ||||
| return | |||||
| break # interrompt la boucle parente | |||||
| \end{lstlisting} | \end{lstlisting} | ||||
| \end{frame} | \end{frame} | ||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Une tradition} | \frametitle{Une tradition} | ||||
| Traditionnelement, on appelle ce genre de fonction \texttt{main()}: | |||||
| Traditionnellement, on appelle ce genre de fonction \texttt{main()}: | |||||
| \begin{lstlisting} | \begin{lstlisting} | ||||
| def main(): | def main(): | ||||
| words = read_words() | words = read_words() | ||||
| word = choose_word(words) | word = choose_word(words) | ||||
| ... | ... | ||||
| if has_won(words, letters): | |||||
| print("Ok") | |||||
| return # sort de la fonction tout de suite | |||||
| main() # ne pas oublier de l'appeler! | main() # ne pas oublier de l'appeler! | ||||
| \end{lstlisting} | \end{lstlisting} | ||||
| @@ -731,7 +780,7 @@ main() # ne pas oublier de l'appeler! | |||||
| \begin{frame}[fragile] | \begin{frame}[fragile] | ||||
| \frametitle{Pour la prochaine fois} | \frametitle{Pour la prochaine fois} | ||||
| Notez que le jouer \textbf{ne peut pas perdre}. | |||||
| Notez que le joueur \textbf{ne peut pas perdre}. | |||||
| \vfill | \vfill | ||||