On cherche à écrire une fonction Python permettant de déterminer le nombre triangulaire de son choix.
On appelle nombre triangulaire un nombre que l'on peut obtenir à l'aide de points disposés de la sorte :

Le premier nombre triangulaire est 1. On le note T_1.
Le deuxième nombre triangulaire est 3. On le note T_2.
On remarque qu'il suffit d'ajouter 2 au nombre triangulaire précédent.
Le troisème nombre triangulaire est 6. On le note T_3.
On remarque qu'il suffit d'ajouter 3 au nombre triangulaire précédent.
On admet que pour obtenir le n-\text{ème} nombre triangulaire, il suffit d'ajouter n au nombre triangulaire précédent.
On écrit alors la fonction suivante permettant de calculer le nombre triangulaire souhaité.
Par quelles instructions doit-on remplacer (1) et (2) dans le programme suivant pour qu'il corresponde à ce que l'on cherche ?
def triangulaire(n):
nombre = (1)
for i in range(1, n+1):
nombre = (2)
return nombre
Pour le n-\text{ème} nombre triangulaire, il suffit d'ajouter n au nombre triangulaire précédent.
Sachant que le premier nombre triangulaire est T_1=1.
On a donc :
T_2=1+2
T_3=1+2+3
T_4=1+2+3+4
T_5=1+2+3+4+5
etc.
On peut initialiser une variable nombre à la valeur 0,
puis ajouter i variant de 1 à n pour obtenir le n-\text{ème} nombre triangulaire.
Ainsi, dans le programme donné :
On remplace (1) par : 0
On remplace (2) par : nombre + i
On cherche à écrire une fonction Python permettant de déterminer la fréquence des 6 obtenus lors de n lancers consécutifs d'un dé équilibré.
Par quelles instructions doit-on remplacer (1), (2) et (3) dans le programme suivant pour qu'il corresponde à ce que l'on cherche ?
from random import randint
def freq_six(n):
S = 0
for i in range(n):
de = (1)
if de == 6:
S = (2)
return (3)
Dans le programme donné, la variable de sert à simuler le lancer du dé.
On doit donc choisir un nombre entier aléatoirement entre 1 et 6.
La variable S dénombre les 6 obtenus.
Si on obtient 6, on doit donc incrémenter S de 1.
Pour obtenir la fréquence des 6 obtenus lors des n lancers, on doit renvoyer le quotient du nombre de 6 obtenus par le nombre de lancers.
Ainsi :
On remplace (1) par : randint(1, 6)
On remplace (2) par : S = S + 1
On remplace (3) par : S / n
On cherche à écrire une fonction Python permettant de déterminer si un entier naturel n donné est un nombre premier ou non.
On rappelle que si un entier naturel n n'est pas premier, il admet un diviseur compris entre 2 et \sqrt{n}.
Par quelles instructions doit-on remplacer (1), (2) et (3) dans le programme suivant pour qu'il corresponde à ce que l'on cherche ?
from math import sqrt
def is_prime(n):
reponse = True
if n <= 1:
reponse = (1)
else:
for k in range(2, int(sqrt(n))+1):
if (2):
reponse = False
return (3)
Dans le programme donné, on initialise la variable reponse à True et on remplacera cette valeur par False si on trouve un diviseur de n parmi les entiers compris entre 2 et \sqrt{n}.
Si n=0 ou n=1, l'entier n'est pas premier.
Si n\geq 2, on va tester les divisions euclidiennes de n par les entiers compris entre 2 et \sqrt{n}.
Si une de ces divisions admet un reste nul, l'entier n n'est pas un nombre premier.
Sinon, l'entier n est un nombre premier.
Ainsi :
On remplace (1) par : False
On remplace (2) par : n % k == 0
On remplace (3) par : reponse
On cherche à écrire une fonction Python permettant de déterminer si une année est bissextile ou non.
On rappelle qu'une année n est bissextile si :
- n est divisible par 4, mais pas par 100 ;
- ou si n est divisible par 400.
Par quelles instructions doit-on remplacer (1), (2) et (3) dans le programme suivant pour qu'il corresponde à ce que l'on cherche ?
def bissextile(n):
if (1):
return True
elif n % 400 == 0:
return (2)
else:
return (3)
On a deux cas pour renvoyer True :
- n est divisible par 4, mais pas par 100 ;
- ou si n est divisible par 400.
Tester si n est divisible par 4 se fait avec l'instruction n % 4 == 0 qui signifie :
« le reste de la division euclidienne de n par 4 est-il égal à 0 ? »
Pour tester si la division de n par 100 ne donne pas un reste nul, on utilise l'instruction :
n % 100 != 0
L'opérateur != correspond au symbole mathématique \neq.
Si la division de n par 400 possède un reste nul, l'année n est bissextile.
Dans tous les autres cas, l'année n n'est pas bissextile.
Ainsi :
On remplace (1) par : n % 4 == 0 and n % 100 != 0
On remplace (2) par : True
On remplace (3) par : False
On cherche à écrire une fonction Python permettant de convertir une température donnée en degrés Celsius en Fahrenheit et inversement.
On rappelle que si on note C la température en degrés Celsius et F la température en Fahrenheit, on a :
- C = (F - 32) \times (5/9) ;
- F = C \times 1{,}8 + 32.
Par quelles instructions doit-on remplacer (1), (2) et (3) dans le programme suivant pour qu'il corresponde à ce que l'on cherche ?
def conversion(temp, unite1, unite2):
if unite1 == 'C' and (1):
return (2)
elif (3):
return (temp - 32) * 5 / 9
else:
return "Demande mal formulée."
Selon les unités unite1 et unite2 données en arguments (après la température), on doit utiliser la première formule rappelée ou la deuxième formule.
Pour effectuer un test, on utilise la commande ==.
Il ne faut pas oublier de mettre les chaînes de caractères entre guillemets.
Ainsi :
On remplace (1) par : unite2 == 'F'
On remplace (2) par : temp * 1.8 + 32
On remplace (3) par : unite1 == 'F' and unite2 == 'C'