t = [17,38,10,25,72]
print(t)
print(t[2])
print(t.index(25))
t[1] = 69 # et pas t[38] = 69 !!
print(t)
t2 = t + t + t # ou : t2 = t*3
print(t2)
print(len(t2))
Quand on a à créer un tableau contenant des éléments de même valeur, autant utiliser la syntaxe la plus simple :
tab = [0]*10
Les éléments du tableau seront tous différents, il faut donc utiliser une méthode de création de tableau à l'aide d'une boucle.
Le compteur i de la boucle jouera ici deux rôles :
En effet, l'élément sera égal à i si celui-ci est pair.
Comment le savoir ? Une valeur est paire si le reste de sa division par 2 est nul; on fera donc ce test pour
savoir si il faut ajouter un élément de valeur i au tableau.
Du point de vue de la méthode, le plus simple ici est de partir d'un tableau initialement vide, puis d'y ajouter
les éléments au fur et à mesure à l'aide de la fonction append()
:
tab = [] # création d'un tableau vide
for i in range(51): # attention à la borne supérieure dans une boucle for ... in range() !
if i % 2 == 0: # si i est pair : utilisation de l'opérateur 'modulo' = reste d'une division
tab.append(i) # alors on ajoute i au tableau
On peut aussi simplement utiliser une boucle dont les bornes sont judicieusement données :
tab = [] # création d'un tableau vide
for i in range(0, 51, 2): # pour i de 0 à 50 par pas de 2
tab.append(i) # alors on ajoute i au tableau
tab = [] # création d'un tableau vide
for i in range(52):
if i % 2 != 0: # si i est impair
tab.append(i) # alors on ajoute i au tableau
Ou :
tab = [] # création d'un tableau vide
for i in range(1, 52, 2): # pour i de 1 à 51 par pas de 2
tab.append(i) # alors on ajoute i au tableau
from random import randint
tab = []
for i in range(10):
tab.append(randint(1,100))
tab = [] # création d'un tableau vide
for i in range(21):
if i%2 == 0: # si i est pair,
tab.append(0) # on ajoute un élément 0
else: # sinon ( donc si i est impair )
tab.append(1) # on ajoute un élément 1
On peut également remarquer que 0, c'est le résultat de l'opération i%2
quand i est pair, et 1,
c'est la valeur de l'opération i%2
quand i est impair.
On peut donc simplement ajouter, pour toute valeur de i, le résultat de l'opération i%2
au tableau :
tab = [] # création d'un tableau vide
for i in range(20):
tab.append(i%2)
tab = []
for i in range(100):
if i%2 == 0: # si i est pair,
tab.append(1) # on ajoute un élément 1
else: # sinon ( donc si i est impair )
tab.append(-1) # on ajoute un élément -1
On peut aussi remarquer que :
On pouvait donc aussi simplement écrire :
tab = []
for i in range(100):
tab.append((-1)**i)
( oui, il fallait y penser... )
tab = []
for i in range(13):
tab.append(7*i)
Les codes ci-dessus se "traduisent" assez facilement en création de tableaux par compréhension :
zeros = [0 for i in range(10)]
Comme souvent, plusieurs possibilités existent :
pairs = [i for i in range(0, 20, 2)] # on ne prend que les nombres de 2 en 2 en partant de 0
pairs = [2*i for i in range(10)] # l'expression '2*i' est toujours paire !
pairs = [i for i in range(20) if i%2 == 0] # si le reste de la division par 2 de i est égal à 0, alors i est pair
impairs = [i for i in range(1,21,2)] # on ne prend que les nombres de 2 en 2 en partant de 1
impairs = [2*i + 1 for i in range(10)] # l'expression '2*i +1' est toujours impaire !
impairs = [i for i in range(20) if i%2 != 0] # si le reste de la division par 2 de i n'est pas égal à 0, alors i est impair
from random import randint
alea = [randint(1,100) for i in range(10)]
zero_un = [i%2 for i in range(20)]
On peut remarquer que Python dispose d'un opérateur ternaire, qui est l'équivalent d'un if ... else ...
"en une seule ligne" :
(expression 1) if (condition) else (expression 2)
Cet opérateur fonctionne ainsi :
Ici, on pouvait donc écrire :
zero_un = [0 if i%2 == 0 else 1 for i in range(100)]
un_moins_un = [(-1)**i for i in range(100)]
On pouvait également écrire :
un_moins_un = [1 if i%2 == 0 else -1 for i in range(100)]
table_7 = [7*i for i in range(13)]
def moyenne_annuelle(notes):
"""
Fonction qui calcule la moyenne de 3 notes.
Entrée :
notes = les 3 notes ( sous forme de tuple de 3 float )
Sortie :
la moyenne des 3 notes ( float )
"""
return (t[0] + t[1] + t[2])/3
print(moyenne_annuelle( (12, 13, 9) )) # il faut bien passer un seul tuple comme argument, et pas 3 arguments !
11.333333333333334
from random import choice
def cadavre_exquis(noms, verbes, complements):
"""
Fonction qui crée une phrase nom + verbe + complément, en piochant au hasard dans 3 tableaux.
Entrées :
les 3 tableaux de noms, de vers et de compléments ( list de str )
Sortie :
la phrase construite avec 3 mots tirés au hasard dans les 3 tableaux ( str )
"""
return choice(noms) + " " + choice(verbes) + " " + choice(complements)
n = ['Le chasseur', 'La présidente', 'Le lapin', 'Pikachu', 'La comète', 'La licorne', 'Le prof']
v = ['mange', 'cherche', 'entretient', 'admire', 'vénère', 'admoneste', 'contemple']
c = ['la gazinière.', 'la forêt.', 'la rencontre.', 'la bicyclette.', 'le micro-processeur.', "l'élève."]
print(cadavre_exquis(n, v, c))
La présidente entretient la bicylette.
from random import randint
def lancer_cinq_des():
"""
Fonction qui simule 5 lancers d'un dé à 6 faces.
Entrée : aucune
Sortie : le résultats des 5 lancers ( list de int )
"""
return [randint(1, 6) for i in range(5)]
def lancer_des(n):
"""
Fonction qui simule n lancers d'un dé à 6 faces.
Entrée : n = le nombre de lancers à simuler ( int )
Sortie : le résultats des n lancers ( list de int )
"""
return [randint(1, 6) for i in range(n)]
print(lancer_cinq_des())
print(lancer_des(8))
4
[3, 1, 6, 5, 2, 2, 1, 4]
Il faut :
split
, avec comme caractère séparateur le "/".t[0] + t[1] converti en nom de mois + t[2]
indice du mois dans le tuple mois = int(t[1]) - 1
def date_parlante(date):
"""
Fonction qui convertit une date sous la forme jj/mm/aaaa en un format de la forme jj mois aaaa.
Entrée :
date = la date au format jj/mm/aaaa ( str )
Sortie :
la date au format jj mois aaaa ( str )
"""
mois = ("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
t = date.split('/') # attention, il s'agit bien du CARACTERE "/", pas d'un simple "slash"...
indice_mois = int(t[1])-1 # calcul de l'indice du nom du mois dans le tuple 'mois'
return t[0] + " " + mois[indice_mois] + " " + t[2]
print(date_parlante("19/11/2024"))
>>> 19 novembre 2024