Python 1: Fonctions et instructions conditionnelles

Une carte mentale pour récapituler l’essentiel des structures à connaître et un ensemble d’exercices corrigés pour s’entrainer régulièrement.

D’abord une console pour tester vos programmes en direct:

https://console.basthon.fr/

La carte mentale pour se rafraichir un peu la mémoire


Et les exercices pour s’entrainer!

Légende des niveaux. En l’absence de signalétique on a les connaissances pour résoudre dès le début de la seconde. Avec (*) il faut des connaissances de seconde pour résoudre, avec (**) il faut des connaissances de 1ère et avec (***) on aura besoin de connaissances de Term.

Exercice 1: Ecrire une fonction de paramètre R qui retourne le volume d’une sphère de rayon R (pensez à importer le module math pour utiliser la valeur de pi)

Correction
from math import pi
def volume (R):
	volume = 4/3 *pi*R**3
	return volume

Exercice 2: Soit f la fonction définie sur R par f(x)=x²+8x-2. Ecrire une fonction qui retourne la valeur de f(x) pour une valeur de x choisie par l’utilisateur.

Correction
def fonction (x):
	f=x**2+8*x-2
	return f

Exercice 3: Ecrire une fonction qui donne la vitesse en km/h à partir de la distance parcourue en km et du temps en heures. Ecrire une fonction qui appelle le résultat précédent et le converti en m/s.

Correction
def vitesse(d,t):
	vitesse=d/t
	return vitesse
def vitesse_en_USI(d,t):
	return vitesse(d,t)/3.6

Exercice 4: Ecrire une fonction qui retourne la racine du nombre choisi en paramètre (Attention, la racine d’un nombre négatif n’existe pas)

Correction
from math import sqrt
def racine(nombre):
	if nombre >=0:
		print(sqrt(nombre))
	else:
		print ("Le nombre choisi est négatif, sa racine n'est pas définie")

Exercice 5: Ecrire un programme qui détermine si un nombre entier est pair ou impair. Pour demander une valeur à l’utilisateur on pourra utiliser la double commande int(input())

Correction
nombre=int(input("choisir un nombre entier"))
if nombre %2==0:
	print(nombre,"est pair")
else:
	print(nombre,"est impair")

Exercice 6: L’accès au ferry pour une voiture particulière ne se fait qu’à deux conditions: la hauteur de la voiture est inférieur à 1,80m et son poids (sa masse!) ne dépasse pas 1,2tonnes. Ecrire une fonction qui a pour paramètre la hauteur et la masse de la voiture et qui retourne soit “accès interdit” soit “accès autorisé” selon le cas.

Correction
def acces_ferry(hauteur, masse):
    if hauteur < 1.80 and masse < 1.2:
        return "Accès autorisé"
    else:
        return "Accès interdit"

Exercice 7: Compléter la fonction précédente pour qu’en cas d’interdiction le motif soit précisé.

Correction
def acces_ferry(hauteur, masse):
    if hauteur >= 1.80 and masse > 1.2:
        return "Accès interdit, la hauteur et la masse de la voiture sont trop grandes."
    elif hauteur >= 1.80:
        return "Accès interdit, la hauteur de la voiture est trop grande."
    elif masse > 1.2:
        return "Accès interdit, la masse de la voiture est trop grande."
    else:
        return "Accès autorisé"

Exercice 8: Une année est bissextile lorsqu’elle respecte les conditions suivantes: la valeur est un multiple de 4 mais pas de 100 sauf si c’est un multiple de 400. Ecrire une fonction qui affiche si l’année choisie est bissextile ou non.

Correction
def est_bissextile(annee):
    if annee % 400 == 0 or (annee % 4 == 0 and annee % 100 != 0):
        print(annee, "est une année bissextile.")
    else:
        print(annee, "n'est pas une année bissextile.")

Exercice 9(*): Ecrire une fonction qui calcule la distance entre 2 points dont on connait les coordonnées.

Correction
from math import sqrt
def distance(xA,yA,xB,yB):
	distance= sqrt((xB-xA)**2+(yB-yA)**2)
	return distance

Exercice 10 (*): Ecrire une fonction qui affiche les coordonnées du point I milieu de [AB] à partir des coordonnées de A et de B.

Correction
def milieu (xA,yA,xB,yB):
	xI=(xA+xB)/2
	yI=(yA+yB)/2
	return (xI,yI)

Exercice 11(**): Ecrire une fonction qui donne le nombre de solutions à l’équation ax²+bx+c=0 en prenant les valeurs de a, b et c comme paramètres.

Correction
a = input("Entrez la valeur de a : ")
b = input("Entrez la valeur de b : ")
c = input("Entrez la valeur de c : ")

discriminant = b**2 - 4*a*c    #on calcule la valeur de delta

if discriminant > 0:
    print("L'équation a deux solutions distinctes")
elif discriminant == 0:
    print("L'équation a une solution")
else:
    print("L'équation n'a pas de solution réelle")

Exercice 12(**): Ecrire un programme qui donne une valeur approchée des solutions d’une équation du type ax²+bx+c=0

Correction
a = input("Entrez la valeur de a : ")
b = input("Entrez la valeur de b : ")
c = input("Entrez la valeur de c : ")

discriminant = b**2 - 4*a*c

if discriminant > 0:
    x1 = (-b + sqrt(discriminant)) / (2*a)
    x2 = (-b - sqrt(discriminant)) / (2*a)
    print("Les solutions sont approximativement",x1,"et",x2)
elif discriminant == 0:
    x = -b / (2*a)
    print("La solution est approximativement", x)
else:
    print("L'équation n'a pas de solution réelle")