#NB: Dans la série d'exercices suivantes je ne tiendrais pas compte des cas de vérification sauf s'il est
précisé dans l'exercice
#Ceci suppose que l'utilsateur entrera des valeurs indiscutables
#La vérification est trivial (: (: !!!
#JE PREFERE CODER 300 LIGNES DE CODES QUE DE CAUSER AVEC 2 FILLES
#----------------------------------------------------------EXERCICE 1------------------------------------------------------------
---------------------------------
def number_belongs_to(n1:int,n2:int):
val = int(input("Entrez un nombre"))
if val in range(n1,n2+1): #si la valeur !£ [n1,n2] renvoie False
return True
else :
return False
#----------------------------------------------------------EXERCICE 2------------------------------------------------------------
---------------------------------
def Positif():
n1 = int(input("Entrez un nombre : "))
n2 = int(input("Entrez un deuxième nombre : "))
if n1 * n2 >= 0:
return True
else:
return False
#----------------------------------------------------------EXERCICE 3------------------------------------------------------------
---------------------------------
def prix_heure_sup(tarif:int):
value = int(input("Combien d'heures avez vous fait"))
if 0 < value < 39 :
return tarif*value
elif 40 < value < 44 :
return tarif*value + (50*tarif) / 100
elif 45 < value < 49:
return tarif*value + (75*tarif) / 100
elif value > 50 :
return tarif*value + tarif
#----------------------------------------------------------EXERCICE 4------------------------------------------------------------
---------------------------------
def give_hour():
hour = int(input("Entrez une heure"))
min = int (input("Entrez une minute"))
if hour == 23 :
hour = 00
if min == 59:
min = 0
return print(f"Dans une minute il sera {hour} heures : {min}")
return print(f"Dans une minute il sera {hour} heures : {min+1}")
#----------------------------------------------------------EXERCICE 5------------------------------------------------------------
---------------------------------
def affiche_mention(note:int):
if 0 <= note < 5:
print("Faible")
elif 6<= note < 10:
print("Insuffisant")
elif 11<= note < 15:
print(" Bien")
elif 16 <= note <=20:
print("Très bien")
else:
print("Note inconcevable")
#----------------------------------------------------------EXERCICE 6------------------------------------------------------------
---------------------------------
def ten_more():
value = int(input("Entrez un nombre : "))
for i in range(value,value + 10):
print (f"{i}")
#----------------------------------------------------------EXERCICE 7------------------------------------------------------------
---------------------------------
def pgcd(a:int,b:int):
if a>b :
return pgcd(a-b,a)
elif b>a :
return pgcd(a,b-a)
else:
return a
def affiche_pgcd(a,b):
return print(f"{pgcd(a,b)}")
#affiche_pgcd(14,49)
#----------------------------------------------------------EXERCICE 8------------------------------------------------------------
---------------------------------
def moyenne(n:int):
somme = 0
for note in range(0,n):
value = int(input("Entrez un nombre"))
somme = somme + value
return print(f"la somme est {somme} et la moyenne est {somme/n}")
#----------------------------------------------------------EXERCICE 9------------------------------------------------------------
---------------------------------
def parfait(a: int) : #dit si un entier est parfait ou non
somme = 0
for i in range(1,a):
val = a % i # trouve le reste de la division
if val == 0: # si le reste fait zéro alors c'est un diviseur donc on l'ajoute à somme dans
l'instruction suivante
somme = somme + i
if somme == a:
return print("Est parfait")
else :
return print("N'est Pas parfait")
#parfait(6)
#----------------------------------------------------------EXERCICE 10----------------------------------------------------------
-----------------------------------
def produit_par_addition(a:int,b:int): #calcul un produit de deux entiers en utilisant l'addition
produit = 0
for i in range (0,b):
produit = a + produit
print(f"produit = {produit}")
#produit_par_addition(8,5) #20
#----------------------------------------------------------EXERCICE 11----------------------------------------------------------
-----------------------------------
def nombre_prmier(a:int):
somme = 0
for i in range(1,a):
val = a % i #Un nombre {a} est premier sssi il est divisible par {a} et par 1, mais {a} !£ [1,a]
if val == 0:#Verification du reste de la division
somme = somme + i #S'il est premier nous devons trouver seulement 1 parmi la somme des
diviseurs
if somme != 1 :
return print(f"Le nombre n'est pas premier")
else:
return print(f"le nombre est premier")
#nombre_prmier(91)
#----------------------------------------------------------EXERCICE 12----------------------------------------------------------
-----------------------------------
def factoriel_with(number:int)->int: #CODE AVEC LA BOUCLE WHILE
value=1
indice=2
while indice <= number:
value = value*indice
indice = indice +1
return value
#print(factoriel_with(6))
def factoriel_for(number:int)->int: #CODE AVEC LA BOUCLE FOR
value = 1
indice = 2
for i in range(number-1):
value = value * indice
indice = indice + 1
return value
print(factoriel_for(5))
def facto(n:int)->int: # En utilisant la recursivité
if n==0:
return 1
else:
return n*facto(n-1)
#print(facto(3))
#----------------------------------------------------------EXERCICE 14----------------------------------------------------------
-----------------------------------
def ajout_date(jour:int,mois:int,an:int):
"""list = ({"Janvier":31},{"Février":28},{"Mars":31},{"Avril":30},{"Mai":31},{"Juin":30},
{"Juillet":31},{"Aout":31},{"Septembre":30},{"Octobre":31},{"Novembre":30},{"Decembre":31})"""#
Tuple de dictionnaire pour se souvenir du nombre de jour des mois
if 0<jour<28: #gérer les jours normaux
print(f"Le lendemain est {jour+1}/{mois}/{an}")
elif 28<=jour<=30 and mois-1 in (0,2,4,6,7,9,11) : #les mois de 31 jours entre 29 et 30
jour =jour +1
elif jour==31 and mois-1 in (0,2,4,6,7,9,11) : #les mois de 31 jours entre 28 et 30
jour = 1
mois = mois + 1
if mois-1 == 11: #mois de décembre pour tout initialiser
mois = 1
an = an +1
elif mois-1 in (3,5,8,10) : #les mois de 30 jours
jour = 1
mois =mois + 1
else: #le mois de Février
jour = 1
mois =mois + 1
print(f"Le lendemain est {jour}/{mois}/{an}")
#ajout_date(30,3,2022)
#----------------------------------------------------------EXERCICE 13----------------------------------------------------------
-----------------------------------
def calculmoy():
list_note=[]
note = int(input("Entrez une Note 1:"))
list_note.append(note)
i=0
while 0<= note <=20 : #Note comprise entre 0 et 20
note_new = int(input(f"Entrez votre note_{i+1} :"))
if 0<=note_new<=20:
list_note.append(note_new) #On ajoute une note à notre liste
i=i+1 #On incrémente un compteur pour le nombre de note
else:
print("Merci d'avoir entré les notes")
break #On sort de la boucle dès que la note n'est pas comprise entre 0 et 20
somme = 0
for note in range(i):
somme = somme + list_note[note] #On additionne les notes entre elles
print(f"La moyenne est {somme/i}")
#calculmoy()
#----------------------------------------------------------EXERCICE 15----------------------------------------------------------
-----------------------------------
def moy_arith(note_1:int,note_2:int,note_3:int)->int: #Fonction qui calcule la moyenne
artithmétique de trois notes
return (note_1 + note_2 + note_3)/3
def note_min(note_1:int,note_2:int,note_3:int)->int:#Fonction qui renvoie le minimum de trois
entiers
list_note = (note_1,note_2,note_3)
min = list_note[0]
for note in list_note:
if min > note:
min = note
return min
def note_max(note_1:int,note_2:int,note_3:int)->int:#Fonction qui renvoie le maximum de trois
entiers
list_note = (note_1,note_2,note_3)
max = list_note[0]
for note in list_note:
if max < note:
max = note
return max
def best_moy(note_1:int,note_2:int,note_3:int):
moyenne_arithmetique = moy_arith(note_1,note_2,note_3)
moyenne_min_ma = (note_min(note_1,note_2,note_3) + note_max(note_1,note_2,note_3))/2
print (f"Moyenne arithmétique = ({note_1} + {note_2} + {note_3} = {note_3 + note_2 + note_1}/3 =
{moy_arith}")
print(f"Moyenne de la mauvaise et de la meilleure{note_min(note_1,note_2,note_3)} +
{note_max(note_1,note_2,note_3)} /2 {moyenne_min_ma} ")
if moyenne_arithmetique< moyenne_min_ma :
return print(f"La meilleure moyenne est {moyenne_min_ma} ")
else:
return print(f"La meilleure moyenne est {moyenne_arithmetique} ")
#print(note_max(19,14,12))
#print(note_min(19,14,17))