Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 18/02/2022 dans toutes les zones

  1. julesx

    1ere spé NSI

    Bonsoir, J'avoue que, pour le 7, j'ai du mal à comprendre ce qu'il faut faire à part qu'on doit comparer des vitesses d’exécution. Donc, j'ai zappé pour le moment en préférant regarder le 8. Si, toi, tu as mieux vu de quoi il retourne, dis-le. Je regarderai de toute façon demain cet exercice en espérant y voir plus clair Donc pour le 8, j'ai cru comprendre qu'on se donnait une liste de mots, a priori de longueur au moins égale à 6 lettres (ce que j'ai pris comme postulat), qu'on doit classer par le nombre de points que cela rapporte au scrabble. Je me suis dit qu'au départ, il faut déjà que le script doit comporter la correspondance entre les lettres et les points correspondants. Ma première idée, un peu "bourrin", a été de créer la fonction "points" du premier script, à coups de "if". Après avoir réussi à écrire un script qui fonctionnait, je me suis dit qu'on pouvait peut-être partir d'une idée de dictionnaire des valeurs, d'où le deuxième script, qui ne diffère du premier que par la détection des valeurs de chaque lettre. Je te laisse regarder tout cela et tester. J'attends tes critiques éventuelles et/ou tes remarques. def points(l): pt=0 # évite de planter le script si un des mots ne contient # aucune majuscule, mais cela ne devrait pas arriver. if l in "EAINORSTUL": pt=1 if l in "DMG" : pt=2 if l in "BCP" : pt=3 if l in "FHV" : pt=4 if l in "JQ" : pt=8 if l in "KWXYZ": pt=10 return pt liste=("CHOUCROUTE","HARICOT","FRAMBOISE","MANDARINE","ABRICOT","TOMAHAWK") def valeur(t): liste1={} for i in range(len(t)): t1=t[i] somme=0 for j in range(len(t1)): if j==5: somme=somme+3*points(t1[j]) else: somme=somme+points(t1[j]) liste1[t1]=somme liste1=sorted(liste1.items(), key=lambda x: x[1], reverse=True) return liste1 print(valeur(liste)) Deuxième script. Dico={"E":1,"A":1,"I":1,"N":1,"O":1,"R":1,"S":1,"T":1,"U":1,"L":1,"D":2, "M":2,"G":2,"B":3,"C":3,"P":3,"F":4,"H":4,"V":4,"J":8,"Q":8,"K":10, "W":10,"X":10,"Y":10,"Z":10} liste=("CHOUCROUTE","HARICOT","FRAMBOISE","MANDARINE","ABRICOT","TOMAHAWK") def valeur(t): liste1={} for i in range(len(t)): t1=t[i] somme=0 for j in range(len(t1)): if j==5: somme=somme+3*Dico[t1[j]] else: somme=somme+Dico[t1[j]] liste1[t1]=somme liste1=sorted(liste1.items(), key=lambda x: x[1], reverse=True) return liste1 print(valeur(liste))
    1 point
  2. julesx

    1ere spé NSI

    Bonjour, Après de longues cogitations et de multiples essais (car, comme dit, je débute), voilà à quoi j'aboutis pour le 4 et le 5 : def maxi(t): return sorted(t)[len(t)-1] print(maxi({2,9,4,7,3,-4}) positions={} positions[(48.853585,2.301490)]="Paris" positions[(11.611358,43.147752)]="Djibouti" positions[(43.70000,7.250000)]="Nice" def renvoieposition (x,y,positions): X0=(x,y)[0]*10000 Y0=(x,y)[1]*10000 for cle in positions: X=(cle[0]*10000) Y=(cle[1]*10000) if abs(X-X0)<=1 and abs(Y-Y0)<=1: P=positions[cle[0],cle[1]] break else: P="Position inconnue" return P print(renvoieposition(43.70010,7.25000,positions)) Essaie, regarde si cela te convient et, si nécessaire, demande des explications. Je vais regarder la suite, mais ça ne sera surement pas pour aujourd'hui car je commence à avoir la tête comme une citrouille. Allez, un dernier pour la route. def stat(texte): statistiques={} for i in texte: if 65<=ord(i)<=90 or 97<=ord(i)<=122: if i in statistiques: statistiques[i]=statistiques[i]+1 else: statistiques[i]=1 statistiques=sorted(statistiques.keys()) return statistiques print(stat("Mignonne, allons voir si la rose" "Qui ce matin avoit desclose" "Sa robe de pourpre au Soleil," "A point perdu ceste vesprée" "Les plis de sa robe pourprée," "Et son teint au vostre pareil.")) N.B.: Les print à la fin de chaque script sont là pour visualiser le résultat
    1 point
×
×
  • Créer...
spam filtering
spam filtering