1+3 a = 3 # entier 'int' a = 3.3 # flottant 'float' 2 * a print(1/2) # division euclidienne print(1./2) print(float(1)/2) 5**2 a = 1.2e3 # notation scientifique 1,2 * 10³ type(a) b = 1 + 1j # 1 + i b**8 l = [10, 20, 30, 40, 50] l l[0] # les indices commencent à 0 (comme en C, javascript) et non à 1 l[-1] # le dernier élément l[1:3] # syntaxe [start:stop] l[0:5:2] # syntaxe [start:stop:step] # identique à l[::2] # Une solution : l[::-1] l[0] = 9 l l.append(60) # append est une *méthode* de la list l # Les listes peuvent contenir des objets de types différents: l2 = ['a', 'b', 'c', 4, 5, 6] # Solution : fonction `len` len(l) [1,2,3] + [4] # concaténation [1]*10 nom = 'Fillon' # chaine 'str' prenom = u'François' # chaine 'unicode', pour caractères "compliqués" print(prenom + ' ' + nom) a = (1,2,3) a[0] a[0] = 2 a_list = list(a) # créé une *copie* du tuple a_list annuaire = {u'François' : u'Élysée', 'Jean-Marc' : 'Matignon', 'Arnaud' : 'Bercy'} # Indexation annuaire['Jean-Marc'] # on peut également réassigner une nouvelle valeur... # Ajout dynamique : annuaire['Manuel'] = 'Place Beauvau' annuaire mes_films = {'Die Hard 25', 'Iron Man 7', 'Terminator 12'} tes_films = {'Alien 10', 'Terminator 12', 'Iron Man 7'} mes_films.union(tes_films) stock_choco = 3 #stock_choco = 0 if stock_choco > 0: print(u'Insérez une pièce puis servez vous...') else: print(u'Désolé, plus de chocolat !') # Autres tests logiques : stock_choco == 0 # "est égal à" stock_choco != 0 # "est différent de" stock_choco >= 0 # itération "classique" sur des entiers for i in range(3): print(i) # itération sur les élément d'une liste tensions = [1.8, 3.3, 5, 230] # (volts) for t in tensions: print(t) if 2>1 print(2) 1 + '2' # transformer une chaine de caractère en nombre flottant: float('1.2') # ça marche float('1/2') # ça non ! float('1,2') # ça non plus (voir plus bas pour une solution) 1/0 %pdb nom = 'Georges' 'Dr. ' + nom def diplomation(nom): nom_dipl = 'Dr. ' + nom return nom_dipl diplomation('Georges Dumont') def diplomation(nom): '''cette fonction ajoute un titre de docteur au nom d'une personne ''' return 'Dr. ' + nom diplomation('Georges Dumont') # voir la documentation diplomation? def saluer(): print('Bonjour Docteur !') a = saluer() print(a) def diplomation(nom, nb=1, titre='Dr.'): '''cette fonction ajoute un titre de docteur au nom d'une personne le nombre de doctorat est réglable (1) par défaut ''' return (titre+' ')*nb + nom print(diplomation('Georges Dumont')) print(diplomation('Georges Dumont', 2)) print(diplomation('Georges Dumont', nb=2)) print(diplomation('Georges Dumont', titre='Dr. Prof.')) def diplomation(nom, nb=1, titre='Dr.'): '''cette fonction ajoute un titre de docteur au nom d'une personne le nombre de doctorat est réglable (1) par défaut ''' if nb > 3: raise ValueError("Impossible d'avoir plus de 3 doctorats !") return (titre+' ')*nb + nom print(diplomation('Georges Dumont', nb=2)) print(diplomation('Georges Dumont', nb=4)) import math # un module "standard" pi = math.pi print(pi) print(math.cos(pi/3)) print(math.sin(pi/3)) print(math.sqrt(3)/2) # Remaquons au passage l'inexactitude inévitable des nombres flottants : print(math.cos(pi/3) == 0.5) # cette comparaison "semble vraie" math.cos(pi/3) fname = 'S1_Bases_Python/bode_data_FR.csv' f = open(fname) # On obtien un objet "file" ouvert (~ un "pointeur") f # afficher les 3 premières lignes for i in range(3): print(f.readline()) , #f.close() # On ferme le fichier une fois le travail fini: f.close() f # À essayer: lire le fichier après qu'il soit fermé #f.readline() ligne = f.readline() print(ligne) ligne = ligne.replace(',', '.') print(ligne) ligne = ligne.replace(';', ',') print(ligne) a = 'La SI c\'est sympa' # notez le caractère d'échapement "\" # ou bien a = "La SI c'est sympa" # (identique au précédent) # Taper "TAB" pour voir la liste des méthodes: a. # Couper une chaîne à l'aide d'un motif : a.split('SI') # -> renvoie une liste de str ! a1, a2 = a.split('SI') print(a1 + u"Méca" + a2) # notons le u qui préfixe u"Méca" ! # Formattage avec des chaînes prenom = u'Geneviève' nom = u'Fioraso' print(u"Bonjour Mme {} {}".format(prenom, nom)) # Remarque : cce même résultat peut être obtenu par concaténation: print(u'Bonjour Mme ' + prenom + u' ' + nom) # Formattage avec des nombres: n = 5 t = 2.1862 u"l'algo a convergé en {} itérations".format(n) u"la simulation a duré {:.2f} secondes".format(t) # Exemple de méthodes d'utilisation ponctuelles (de mon point de vue...) # Mettre en minuscule a.lower() # Mettre en majuscule a.upper() fname_in = 'S1_Bases_Python/bode_data_FR.csv' f_in = open(fname) fname_out = 'S1_Bases_Python/bode_data_EN.csv' # ou bien: #fname_out = fname_in.split('.')[0] + '_to_EN.csv' print('transcription dans le fichier "'+ fname_out + '"') f_out = open(fname_out, 'w') # Notez le "w" # Itération sur les lignes: for ligne in f_in: ligne = ligne.replace(',', '.') ligne = ligne.replace(';', ',') f_out.write(ligne) # fermeture des fichiers: f_in.close() f_out.close() # vérification du résultat: f = open(fname_out) for i in range(3): print(f.readline()) ,