|  |  | @@ -0,0 +1,249 @@ | 
		
	
		
			
			|  |  |  | \documentclass{beamer} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \usepackage[utf8]{inputenc} | 
		
	
		
			
			|  |  |  | \usepackage{hyperref} | 
		
	
		
			
			|  |  |  | \usepackage{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \usetheme{Madrid} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \hypersetup{colorlinks=true} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \title{Introduction à la programmation avec Python (chapitre 2)} | 
		
	
		
			
			|  |  |  | \author{Dimitri Merejkowsky} | 
		
	
		
			
			|  |  |  | \institute{E2L} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{document} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \frame{\titlepage} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \frametitle{Session 2} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Note: \\~\\ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Les sources sont | 
		
	
		
			
			|  |  |  | \href{https://github.com/E2L/cours-python/tree/master/sources}{sur GitHub}. \\~\\ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Mais il vaut mieux recopier le code vous-mêmes. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \frametitle{Plan} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{itemize} | 
		
	
		
			
			|  |  |  | \item Retour sur le chapitre 1 | 
		
	
		
			
			|  |  |  | \item Structures de données | 
		
	
		
			
			|  |  |  | \item Fonctions | 
		
	
		
			
			|  |  |  | \end{itemize} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Retour sur input()} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{minted}{python} | 
		
	
		
			
			|  |  |  | # À adapter | 
		
	
		
			
			|  |  |  | import random | 
		
	
		
			
			|  |  |  | secret = random.randint() | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | print("Devine le nombre auquel je pense") | 
		
	
		
			
			|  |  |  | while True: | 
		
	
		
			
			|  |  |  | reponse = input("Ta réponse: ") | 
		
	
		
			
			|  |  |  | response = int(response) | 
		
	
		
			
			|  |  |  | ... | 
		
	
		
			
			|  |  |  | \end{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Retour sur print} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{minted}{python} | 
		
	
		
			
			|  |  |  | >>> a = 1 | 
		
	
		
			
			|  |  |  | >>> b = 2 | 
		
	
		
			
			|  |  |  | >>> print("a is", a, "b is", b) | 
		
	
		
			
			|  |  |  | a is 1, b is 2 | 
		
	
		
			
			|  |  |  | \end{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{itemize} | 
		
	
		
			
			|  |  |  | \item On peut fournir plusieurs valeurs, séparées par des virgules | 
		
	
		
			
			|  |  |  | \item \textit{print()} insère des espaces | 
		
	
		
			
			|  |  |  | \item et va à la ligne | 
		
	
		
			
			|  |  |  | \end{itemize} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Retour sur print (2)} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{minted}{python} | 
		
	
		
			
			|  |  |  | a = 1 | 
		
	
		
			
			|  |  |  | b = 2 | 
		
	
		
			
			|  |  |  | print("a=", 1, "b=2", sep="", end="") | 
		
	
		
			
			|  |  |  | \end{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Retour sur les strings} | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Répéter une string} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{minted}{python} | 
		
	
		
			
			|  |  |  | >>> "argh " * 3 | 
		
	
		
			
			|  |  |  | argh argh argh | 
		
	
		
			
			|  |  |  | \end{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{frame}[fragile] | 
		
	
		
			
			|  |  |  | \frametitle{Faire une longue string sur plusieurs lignes} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{minted}{python} | 
		
	
		
			
			|  |  |  | poeme = """ | 
		
	
		
			
			|  |  |  | Ceci est un poème | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | Qui contient "des quotes" | 
		
	
		
			
			|  |  |  | Et parle d'autre choses ... | 
		
	
		
			
			|  |  |  | """ | 
		
	
		
			
			|  |  |  | \end{minted} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \begin{block}{Note} | 
		
	
		
			
			|  |  |  | Marche aussi avec des "triples-simple-quotes", mais c'est moins lisible :P | 
		
	
		
			
			|  |  |  | \end{block} | 
		
	
		
			
			|  |  |  | \end{frame} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Concaténer des strings | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!python | 
		
	
		
			
			|  |  |  | %message = ( | 
		
	
		
			
			|  |  |  | %"Première ligne\n" | 
		
	
		
			
			|  |  |  | %"Deuxième ligne\n" | 
		
	
		
			
			|  |  |  | %) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %Les parenthèse permettent d'aller à la ligne dans le code :) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Slicer des strings | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> message = "Bonjour, monde !" | 
		
	
		
			
			|  |  |  | %>>> message[0]  # ça commence à zéro | 
		
	
		
			
			|  |  |  | %"B" | 
		
	
		
			
			|  |  |  | %>>> message[15] | 
		
	
		
			
			|  |  |  | %"!" | 
		
	
		
			
			|  |  |  | %>>>> message[-1]  # compter à l'envers | 
		
	
		
			
			|  |  |  | %"!" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Slicer des strings (2) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> message = "Bonjour, monde !" | 
		
	
		
			
			|  |  |  | %>>> message[1:4]  # début, fin | 
		
	
		
			
			|  |  |  | %'onj' | 
		
	
		
			
			|  |  |  | %>>> message[:7] # début implicite | 
		
	
		
			
			|  |  |  | %'Bonjour' | 
		
	
		
			
			|  |  |  | %>>> message[9:-2] # fin négative | 
		
	
		
			
			|  |  |  | %'monde' | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Listes | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Créer une liste | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> my_list = []  # liste vide | 
		
	
		
			
			|  |  |  | %>>> primes = [2, 3, 5, 7, 11]  # liste d'entiers | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Listes hétérogènes | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %On peut mettre des types différents dans une même liste: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> pommes_et_carottes = [True, 2, "three"] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %Et même des listes dans des listes: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> liste_de_liste = [[1, 2, 3], ["one", "two", "three"]] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %---- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Slicer des listes | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %Même principe que pour les strings! | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> liste = [1, 2, 3] | 
		
	
		
			
			|  |  |  | %>>> liste[0:2] | 
		
	
		
			
			|  |  |  | %[1, 2] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Modifier une liste | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> liste = [1, 2, 3] | 
		
	
		
			
			|  |  |  | %>>> liste[1] = 4 | 
		
	
		
			
			|  |  |  | %>>> liste | 
		
	
		
			
			|  |  |  | %[1, 4, 3] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %*Attention*: ça ne marche pas avec les strings: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!pycon | 
		
	
		
			
			|  |  |  | %>>> message = "Bonjour, monde !" | 
		
	
		
			
			|  |  |  | %>>> message[-1] = "?" | 
		
	
		
			
			|  |  |  | %TypeError: 'str' object does not support item assignment | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %# Boucles for | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %Itérer sur les éléments d'une liste: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %!python | 
		
	
		
			
			|  |  |  | %names = ["Alice", "Bob", "Charlie"] | 
		
	
		
			
			|  |  |  | %for name in names: | 
		
	
		
			
			|  |  |  | %print("Bonjour", name) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %Bonjour Alice | 
		
	
		
			
			|  |  |  | %Bonjour Bob | 
		
	
		
			
			|  |  |  | %Bonjour Charlie | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | %--- | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | \end{document} |