dav74 commited on
Commit
6ef06db
·
verified ·
1 Parent(s): 56cce99

Upload code.txt

Browse files
Files changed (1) hide show
  1. code.txt +257 -1
code.txt CHANGED
@@ -374,7 +374,7 @@ else :
374
  recherche indice classement
375
  ;;;
376
  Écrire une fonction recherche_indices_classement qui prend en paramètres un entier elt et un tableau d’entiers tab représenté par une liste Python, et qui renvoie trois listes Python d’entiers:
377
- • la première liste contient les indices des valeurs du tableautabstrictement inférieures à elt ;
378
  • la deuxième liste contient les indices des valeurs du tableau tab égales à elt ;
379
  • la troisième liste contient les indices des valeurs du tableau tab strictement supérieures à elt.
380
  Exemples :
@@ -718,7 +718,263 @@ if c == 3 :
718
  else :
719
  print("KO")
720
  ;;;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
721
 
 
 
722
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
723
 
 
724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  recherche indice classement
375
  ;;;
376
  Écrire une fonction recherche_indices_classement qui prend en paramètres un entier elt et un tableau d’entiers tab représenté par une liste Python, et qui renvoie trois listes Python d’entiers:
377
+ • la première liste contient les indices des valeurs du tableau tab strictement inférieures à elt ;
378
  • la deuxième liste contient les indices des valeurs du tableau tab égales à elt ;
379
  • la troisième liste contient les indices des valeurs du tableau tab strictement supérieures à elt.
380
  Exemples :
 
718
  else :
719
  print("KO")
720
  ;;;
721
+ nombre d’occurrences d’un caractère
722
+ ;;;
723
+ Le nombre d’occurrences d’un caractère dans une chaîne de caractères est le nombre d’apparitions de ce caractère dans la chaîne.
724
+ Exemples :
725
+ • le nombre d’occurrences du caractère 'o' dans 'bonjour' est 2 ;
726
+ • le nombre d’occurrences du caractère 'b' dans 'Bébé' est 1 ;
727
+ • le nombre d’occurrences du caractère 'B' dans 'Bébé' est 1 ;
728
+ • le nombre d’occurrences du caractère ' ' dans 'Hello world !' est 2.
729
+ On cherche les occurrences des caractères dans une phrase. On souhaite stocker ces occurrences dans un dictionnaire dont les clefs seraient les caractères de la phrase et les valeurs le nombre d’occurrences de ces caractères.
730
+ Par exemple : avec la phrase 'Hello world !' le dictionnaire est le suivant :
731
+
732
+ {'H': 1,'e': 1,'l': 3,'o': 2,' ': 2,'w': 1,'r': 1,'d': 1,'!': 1}
733
+
734
+ L’ordre des clefs n’a pas d’importance.
735
+ Écrire une fonction nbr_occurrences prenant comme paramètre une chaîne de caractères chaine et renvoyant le dictionnaire des nombres d’occurrences des caractères de cette chaîne.
736
+ ;;;
737
+ c = 0
738
+ if nbr_occurrences('Hello world !') == {'H': 1,'e': 1,'l': 3,'o': 2,' ': 2,'w': 1,'r': 1,'d': 1,'!': 1}:
739
+ print("Test 1 : OK")
740
+ c += 1
741
+ else :
742
+ print("Test 1 : échec")
743
+ if c == 1 :
744
+ print("OK")
745
+ else :
746
+ print("KO")
747
+ ;;;
748
+ temperature minimale
749
+ ;;;
750
+ On a relevé les valeurs moyennes annuelles des températures à Paris pour la période allant de 2013 à 2019. Les résultats ont été récupérés sous la forme de deux tableaux (de type list) : l’un pour les températures, l’autre pour les années :
751
 
752
+ t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7]
753
+ annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
754
 
755
+ Écrire la fonction annee_temperature_minimale qui prend en paramètres ces deux tableaux et qui renvoie la plus petite valeur relevée au cours de la période et l’année correspondante.
756
+ On suppose que la température minimale est atteinte une seule fois.
757
+ Exemple :
758
+ >>> annee_temperature_minimale(t_moy, annees)
759
+ (12.5, 2016)
760
+ ;;;
761
+ c = 0
762
+ if annee_temperature_minimale([14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7], [2013, 2014, 2015, 2016, 2017, 2018, 2019]) == (12.5, 2016):
763
+ print("Test 1 : OK")
764
+ c += 1
765
+ else :
766
+ print("Test 1 : échec")
767
+ if c == 1 :
768
+ print("OK")
769
+ else :
770
+ print("KO")
771
+ ;;;
772
+ occurrences
773
+ ;;;
774
+ Écrire une fonction occurrences(caractere, chaine) qui prend en paramètres caractere, une chaîne de caractère de longueur 1, et chaine, une chaîne de caractères.
775
+ Cette fonction renvoie le nombre d’occurrences de caractere dans chaine, c’est-à-dire le nombre de fois où caractere apparaît dans chaine.
776
+ Exemples :
777
+ >>> occurrences('e', "sciences")
778
+ 2
779
+ >>> occurrences('i',"mississippi")
780
+ 4
781
+ >>> occurrences('a',"mississippi")
782
+ 0
783
+ ;;;
784
+ c = 0
785
+ if occurrences('e', "sciences") == 2:
786
+ print("Test 1 : OK")
787
+ c += 1
788
+ else :
789
+ print("Test 1 : échec")
790
+ if occurrences('i',"mississippi") == 4:
791
+ print("Test 2 : OK")
792
+ c += 1
793
+ else :
794
+ print("Test 2 : échec")
795
+ if occurrences('a',"mississippi") == 0:
796
+ print("Test 3 : OK")
797
+ c += 1
798
+ else :
799
+ print("Test 3 : échec")
800
+ if c == 3 :
801
+ print("OK")
802
+ else :
803
+ print("KO")
804
+ ;;;
805
+ indices maxi
806
+ ;;;
807
+ Écrire une fonction indices_maxi qui prend en paramètre un tableau non vide de nombres entiers tab, représenté par une liste Python et qui renvoie un tuple (maxi, indices) où :
808
+ • maxi est le plus grand élément du tableau tab ;
809
+ • indices est une liste Python contenant les indices du tableau tab où apparaît ce plus grand élément.
810
+ Exemple :
811
+ >>> indices_maxi([1, 5, 6, 9, 1, 2, 3, 7, 9, 8])
812
+ (9, [3, 8])
813
+ >>> indices_maxi([7])
814
+ (7, [0])
815
+ ;;;
816
+ c = 0
817
+ if indices_maxi([1, 5, 6, 9, 1, 2, 3, 7, 9, 8]) == (9, [3, 8]):
818
+ print("Test 1 : OK")
819
+ c += 1
820
+ else :
821
+ print("Test 1 : échec")
822
+ if indices_maxi([7]) == (7, [0]):
823
+ print("Test 2 : OK")
824
+ c += 1
825
+ else :
826
+ print("Test 2 : échec")
827
+ if c == 2 :
828
+ print("OK")
829
+ else :
830
+ print("KO")
831
+ ;;;
832
+ sélection enclos
833
+ ;;;
834
+ On considère des tables, c’est-à-dire des tableaux de dictionnaires ayant tous les mêmes clés, qui contiennent des enregistrements relatifs à des animaux hébergés dans un refuge. Les attributs des enregistrements sont 'nom', 'espece', 'age', 'enclos'.
835
+ Voici un exemple d’une telle table :
836
+ animaux = [ {'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}, {'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5}, {'nom':'Tom', 'espece':'chat', 'age':7, 'enclos':4}, {'nom':'Belle', 'espece':'chien', 'age':6, 'enclos':3}, {'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
837
+ Programmer une fonction selection_enclos qui :
838
+ prend en paramètres : une table animaux contenant des enregistrements relatifs à des animaux (comme dans l’exemple ci-dessus) et un numéro d’enclos num_enclos ;
839
+ La fonction renvoie une table contenant les enregistrements de animaux dont l’attribut 'enclos' est num_enclos.
840
+ Exemples avec la table animaux ci-dessus :
841
+ >>> selection_enclos(animaux, 5)
842
+ [{'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5},
843
+ {'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
844
+ >>> selection_enclos(animaux, 2)
845
+ [{'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}]
846
+ >>> selection_enclos(animaux, 7)
847
+ []
848
+ ;;;
849
+ c = 0
850
+ animaux = [ {'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}, {'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5}, {'nom':'Tom', 'espece':'chat', 'age':7, 'enclos':4}, {'nom':'Belle', 'espece':'chien', 'age':6, 'enclos':3}, {'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
851
+ if selection_enclos(animaux, 5)== [{'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5}, {'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]:
852
+ print("Test 1 : OK")
853
+ c += 1
854
+ else :
855
+ print("Test 1 : échec")
856
+ if selection_enclos(animaux, 2) == [{'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}]:
857
+ print("Test 2 : OK")
858
+ c += 1
859
+ else :
860
+ print("Test 2 : échec")
861
+ if selection_enclos(animaux, 7) == []:
862
+ print("Test 3 : OK")
863
+ c += 1
864
+ else :
865
+ print("Test 3 : échec")
866
+ if c == 3 :
867
+ print("OK")
868
+ else :
869
+ print("KO")
870
+ ;;;
871
+ doublon
872
+ ;;;
873
+ Écrire une fonction a_doublon qui prend en paramètre un tableau trié de nombres dans l’ordre croissant et renvoie True si ce tableau contient au moins deux nombres identiques, False sinon.
874
+ Exemple :
875
+ >>> a_doublon([])
876
+ False
877
+ >>> a_doublon([1])
878
+ False
879
+ >>> a_doublon([1, 2, 4, 6, 6])
880
+ True
881
+ >>> a_doublon([2, 5, 7, 7, 7, 9])
882
+ True
883
+ >>> a_doublon([0, 2, 3])
884
+ False
885
+ ;;;c = 0
886
+ if not a_doublon([]):
887
+ print("Test 1 : OK")
888
+ c += 1
889
+ else :
890
+ print("Test 1 : échec")
891
+ if not a_doublon([1]):
892
+ print("Test 2 : OK")
893
+ c += 1
894
+ else :
895
+ print("Test 2 : échec")
896
+ if a_doublon([1, 2, 4, 6, 6]):
897
+ print("Test 3 : OK")
898
+ c += 1
899
+ else :
900
+ print("Test 3 : échec")
901
+ if a_doublon([2, 5, 7, 7, 7, 9]):
902
+ print("Test 4 : OK")
903
+ c += 1
904
+ else :
905
+ print("Test 4 : échec")
906
+ if not a_doublon([0, 2, 3]):
907
+ print("Test 5 : OK")
908
+ c += 1
909
+ else :
910
+ print("Test 5 : échec")
911
+ if c == 5 :
912
+ print("OK")
913
+ else :
914
+ print("KO")
915
+ ;;;
916
+ énumère
917
+ ;;;
918
+ Écrire unefonctionenumerequi prend en paramètre un tableautab(typelist) et renvoie un dictionnaire d dont les clés sont les éléments de tab avec pour valeur associée la liste des indices de l’élément dans le tableau tab.
919
+ Exemple :
920
+ >>> enumere([])
921
+ {}
922
+ >>> enumere([1, 2, 3])
923
+ {1: [0], 2: [1], 3: [2]}
924
+ >>> enumere([1, 1, 2, 3, 2, 1])
925
+ {1: [0, 1, 5], 2: [2, 4], 3: [3]}
926
+ ;;;
927
+ c = 0
928
+ if enumere([])== {}:
929
+ print("Test 1 : OK")
930
+ c += 1
931
+ else :
932
+ print("Test 1 : échec")
933
+ if enumere([1, 2, 3]) == {1: [0], 2: [1], 3: [2]}:
934
+ print("Test 2 : OK")
935
+ c += 1
936
+ else :
937
+ print("Test 2 : échec")
938
+ if enumere([1, 1, 2, 3, 2, 1]) == {1: [0, 1, 5], 2: [2, 4], 3: [3]}:
939
+ print("Test 3 : OK")
940
+ c += 1
941
+ else :
942
+ print("Test 3 : échec")
943
+ if c == 3 :
944
+ print("OK")
945
+ else :
946
+ print("KO")
947
+ ;;;
948
+ max_dico
949
+ ;;;
950
+ Sur le réseau social TipTop, on s’intéresse au nombre de « like » des abonnés. Les données sont stockées dans des dictionnaires où les clés sont les pseudos et les valeurs correspondantes sont les nombres de « like » comme ci-dessous :
951
 
952
+ { 'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50 }
953
 
954
+ Écrire une fonction max_dico qui :
955
+ • prend en paramètre un dictionnaire dico non vide dont les clés sont des chaînes de caractères et les valeurs associées sont des entiers ;
956
+ • et qui renvoie un tuple dont :
957
+ – la première valeur est une clé du dictionnaire associée à la valeur maximale ;
958
+ – la seconde valeur est cette valeur maximale.
959
+ Exemples :
960
+ >>> max_dico({ 'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50 })
961
+ ('Ada', 201)
962
+ >>> max_dico({ 'Alan': 222, 'Ada': 201, 'Eve': 222, 'Tim': 50 })
963
+ ('Alan', 222) # ou ('Eve', 222) également possible
964
+ ;;;
965
+ c = 0
966
+ if max_dico({ 'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50 }) == ('Ada', 201) :
967
+ print("Test 1 : OK")
968
+ c += 1
969
+ else :
970
+ print("Test 1 : échec")
971
+ if max_dico({ 'Alan': 222, 'Ada': 201, 'Eve': 222, 'Tim': 50 }) == ('Alan', 222) or ('Eve', 222) :
972
+ print("Test 2 : OK")
973
+ c += 1
974
+ else :
975
+ print("Test 2 : échec")
976
+ if c == 2 :
977
+ print("OK")
978
+ else :
979
+ print("KO")
980
+ ;;;