# TP2 NSI STRUCTURES DE DONNEES ## EX1 ```python= # Inverser un dictionnaire # Question 1 : # version 1 : def inverse_dictionnaire(dico): resultat = {} for i in dico: resultat[dico[i]] = i return resultat # version 2 : def inverse_dictionnaire2(dico): resultat = dict() for cle,val in dico.items(): resultat[val]=cle return resultat # version 3 : def inverse_dictionnaire3(dico): return {val:cle for cle,val in dico.items() } # programme principal : # test fonction inverse_dictionnaire capitales = {"France": "Paris", "Italie": "Rome"} # version 1 print(inverse_dictionnaire(capitales)) # version 2 # version 3 print(inverse_dictionnaire3(capitales)) #2/On a besoin de s’assurer que les clés et les valeurs sont toutes les deux uniques autrement l’inversion au sein du dictionnaire est impossible. #Question2: def carte_valide(carte): couleurs = ["Pique", "Coeur","Carreau", "Trèfle"] if type(carte[0]) == int and type(carte[1]) == str: if carte[0] > 1 and carte[0] < 15 and carte[1] in couleurs: return True else : return False else : return False print(carte_valide((5,"Pique"))) print(carte_valide((1, "Toto"))) print(carte_valide(("Titi", "Toto"))) #2/ # version 1 def nom_carte(carte): valeurs = {14 : "AS", 2 : "2", 3 : "3", 4 : "4", 5 : "5", 6: "6", 7 : "7", 9 : "9", 10 : "10", 11 : "Valet", 8 : "8", 12 : "Dame", 13 : "Roi" } return valeurs[carte[0]] +" de "+ carte[1] # version 2 def nom_carte2(carte): valeurs = {14 : "AS", 11 : "Valet", 12 : "Dame", 13 : "Roi" } if carte[0] >= 2 and carte[0]<= 10: return str(carte[0]) +" de "+ carte[1] else : return valeurs[carte[0]] +" de "+ carte[1] # test print(nom_carte((14,"Pique"))) print(nom_carte2((14,"Pique"))) #3/ # version 1 def nom_carte(carte): valeurs = {14 : "AS", 2 : "2", 3 : "3", 4 : "4", 5 : "5", 6: "6", 7 : "7", 9 : "9", 10 : "10", 11 : "Valet", 8 : "8", 12 : "Dame", 13 : "Roi" } return valeurs[carte[0]] +" de "+ carte[1] # version 2 def nom_carte2(carte): valeurs = {14 : "AS", 11 : "Valet", 12 : "Dame", 13 : "Roi" } if carte[0] >= 2 and carte[0]<= 10: return str(carte[0]) +" de "+ carte[1] else : return valeurs[carte[0]] +" de "+ carte[1] # test print(nom_carte((14,"Pique"))) print(nom_carte2((14,"Pique"))) #Question4 def tirage_aleatoire(): jeu = jeux_cartes() index_carte = randint(1,52) return jeu[index_carte] print(tirage_aleatoire()) #MELANGER UN TABLEAU from random import def melanger(): tab = [1,12,34,68] for i in tab : print(tab.pop(randint)) #correction: from random import randint def melanger(tab): for x in range(len(tab)): # selection d'un index d'élement de façon aléeatoire y=randint(0,(len(tab)-1)) # stockage de la valeur de l'element à supprimer dans une variable intermédiaire n=tab[y] # on retire l'élément d'indice y dans tab tab.pop(y) # on ajoute en dernière position l'élément retiré précédemment tab.append(n) return tab t = [1,2,3,4,5] print(melanger(t)) #inverser tableau def inverse_tableau(tableau): tableau1 = [] for i in range(len(tableau)): tableau1.append(tableau[len(tableau)-i-1]) return tableau1 tableau2=[87,87,79,90] print(inverse_tableau(tableau2))