We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Sam27 • 4 months ago

Bonjour dans l'exo 1 (le Hello World), j'ai écrit cela (avec l'indentation) :
def ma_fonction(a,b):
print("Hello World")

Cependant en compilant, j'obtiens cette erreur ainsi qu'un échec :
Traceback (most recent call last):
File "Variables_et_fonctions/Hello_world_test.py", line 2, in <module>
from Prise_en_main_Exo_1 import mon_programme
ImportError: cannot import name 'mon_programme' from 'Prise_en_main_Exo_1' (/project/target/Variables_et_fonctions/Prise_en_main_Exo_1.py)

M_C • 3 months ago

Corrigé.

Merci pour la remarque

Anonymous • 1 month ago

Bonjour,
J' arrive pas trop à comprendre.
Par exemple dans l' exercice 1 du 3/132, il y a marqué qu' un nombre n sera donné automatiquement. Sauf que moi dans les instructions, il n'y a pas marqué à quoi correspond n. Dans les inscriptions, il y a marqué : Soustraire 3 à n et sauvegarder le résultat dans x. Ensuite, afficher x
Aidez-moi svp.

M_C • 1 month ago

Bonjour,

Le fonctionnement n'est pas toujours évident au début.
Le but de la plupart des exercices est de créer une fonction (ici de n). Pour vérifier si votre réponse est juste, des tests vont être faits avec différentes valeurs de n pour voir si le résultat est bon. C'est pour cela qu'il est marqué que n sera donné automatiquement, ce n'est pas à vous de lui donner une valeur.

ilo2008 • 1 year ago

J'ai essayé le deuxième exercice avec le code suivant

from math import sqrt

def mon_programme(n):
#Ne pas toucher ce qui précède
#Les valeurs pour les variables en entrée seront automatiquement données
#Ecrire ci-dessous en n'oubliant pas d'indenter
a = (n+4)**3
print(a)
b = sqrt(a)
print(b)
c = a//n
print(c)
d = a%n
print(d)
e = (a+5)%(n-1)
print(e)
f = a*c*d*e
print(f)
# Appuyer sur Run pour recevoir les instructions

Mai j'ai eu cette erreur

Traceback (most recent call last):
File "Variables_et_fonctions/Programme_calcul1_Test.py", line 90, in <module>
if __name__ == "__main__": test()
File "Variables_et_fonctions/Programme_calcul1_Test.py", line 76, in test
mon_programme(n)
File "/project/target/Variables_et_fonctions/Programme_calcul1.py", line 9, in mon_programme
b = sqrt(a)
ValueError: math domain error

M_C • 1 year ago

Dans les tests, il y avait n=-5. Je l'ai retiré donc cela devrait marcher normalement.
Je n'avais pas vu l'erreur car j'avais utilisé la puissance 0.5 qui donne la valeur complexe et donc ne renvoie pas d'erreur.
Merci de m'avoir signalé le problème.

EL KHOLDI • 3 months ago

Bonjour,
Merci pour votre aide!
Comment modifie-t-on votre code sur la chronophotographie dans la cas d'une chute verticale en tenant compte seulement des valeurs Y, pour tracer la vitesse suivant Y ?
Cordialement
MEL KHOLDI

Anonymous • 6 days ago

Bonjours,
ces exercices sont ils adaptaient pour des élèves de 15 ans.

M_C • 6 days ago

Bonjour,

Les exercices sont adaptés pour quelqu'un qui veut débuter en python en passant par des exercices liant mathématiques et programmation. Donc plus que l'âge, c'est son niveau mathématique qui risque de le bloquer s'il n'a pas les connaissances.

Pour la partie cours, les prérequis mathématiques sont au plus ceux du collège. Pour le reste du recueil, les exercices sont plus ou moins rangés par niveau en commençant par la seconde (avec juste une page de niveau collège) car c'est à partir de cette classe que la programmation en python est imposée par les programmes officiels.

Paribaffe • 3 weeks ago

Hello , j'ai un soucis.

Dans l'exercice 1 du 3/132 mon programme donne ça :

def mon_programme(n):
# Ne pas toucher ce qui précède
# Les valeurs pour la variable en entrée seront automatiquement données
# Ecrire ci-dessous en n'oubliant pas d'indenter
n = n-3
x = n
print(x)
pass
# Appuyer sur Run pour recevoir les instructions

Et ça me met erreur (Alors que l'énoncé est : "Soustraire 3 à n et le sauvegarder dans x. Ensuite, afficher x). Je sais que je peux directement mettre : x = n-3, mais ça m'indique la même chose. Quelqu'un qui pourrait me dire si mon erreur vient de ma syntaxe ou de mon calcul? merci !

M_C • 2 weeks ago

Bonjour,

Je n'ai pas d'erreur en tapant cela. La barre Run reste rouge mais les instructions elles changent au fur et à mesure. Il faut compléter au fur et à mesure avant d'avoir juste.

Paribaffe • 3 weeks ago

Bonjour ,

Voulant apprendre le python jme suis lancé dans ce cours qui m'a l'air intéressant. Mais, je suis bloqué à l'exercice 1. Voici mon programme :

def mon_programme(n):

# Ne pas toucher ce qui précède

# Les valeurs pour la variable en entrée seront automatiquement données

# Ecrire ci-dessous en n'oubliant pas d'indenter

y = n*2

print(y)

pass

mon_programme()

# Appuyer sur Run pour recevoir les instructions

Et l'erreur retournée :

Traceback (most recent call last):
File "Variables_et_fonctions/Programme_calcul_Test.py", line 7, in <module>
tester("from Programme_calcul import mon_programme",globals())
File "/project/target/Variables_et_fonctions/ma_bao.py", line 35, in tester
return exec(txt,glb)
File "<string>", line 1, in <module>
File "/project/target/Variables_et_fonctions/Programme_calcul.py", line 9, in <module>
mon_programme()
TypeError: mon_programme() missing 1 required positional argument: 'n'

Or, pourtant on nous demande de ne pas donné de valeurs à nos variables, et lorsque dans ma dernière ligne j'ajoute n ça me donne que n n'est pas défini.

Quelqu'un pour m'éclairer?

Merci d'avance !

M_C • 2 weeks ago

C'est la dernière ligne qui ne va pas : mon_programme a un argument qui est n donc si on veut l'utiliser avec 2 par exemple il faut écrire mon_programme(2).
Mais pour les exercices de ce recueil, il est inutile de lancer la fonction, il faut juste la créer (les tests sont fait automatiquement avec des valeurs).
Donc enlevez la dernière ligne et ca devrait marcher.

Baffien • 3 weeks ago

Bonjour,

Pour l'exercice 17-3, j'ai écrit ce code :

from random import *

liste = ["Pierre", "Caillou", "Ciseaux"]
for i in range(100):
resultat = choice(liste)
print(resultat)

mais j'ai un message d'erreur : (en lançant ce même code sous Google Colab par exemple, il fonctionne)
Traceback (most recent call last):
File "Maths/random_exo_3_Test.py", line 9, in <module>
count1 = eval(sys.stdout.getvalue()[:-1])
File "<string>", line 2
Caillou
^
SyntaxError: invalid syntax

Merci d'avance

M_C • 2 weeks ago

J'avoue que le message d'erreur n'est pas très clair : On demande d'afficher une liste de résultats (et non résultat par résultat)

Paul Leroy • 1 month ago

Bonjour merci beaucoup pour ce cours très utile ! Je me pose désormais une question comment écrire un programme qui demande à l'utilisateur d'entrer une fonction polynôme de degré deux et qui affiche sa représentation graphique ?

Cordialement

M_C • 1 month ago

Bonjour,

Le plus simple pour rentrer une fonction polynôme est de ne demander que ses coefficients. Deux possibilités :

- Soit utiliser la fonction input comme ceci par exemple : a=float(input("a=")) qui affichera a=? et on devra rentrer la valeur de a ce qui a le bon goût de rendre notre programme un peu intéractif. On fera attention au fait qu'utiliser input renvoie une chaine de caractère (même si on rentre la valeur 2). Il faudra donc le transformer en nombre en utilisant la fonction float.
- Soit mettre les valeurs a,b,c comme paramètres de la fonction ce qui est plus dans l'optique des nouveaux programmes de lycée. Cela correspond à créer une fonction comme ceci : def dessiner(a,b,c) : ...

Pour ce qui est de la représentation graphique, je renvoie à la partie cours sur matplotlib où un des exemples est justement une représentation d'une fonction du second degré.

EagleBlack • 1 month ago

Bonjour,j'ai remarquer une erreur des le QCM numéro 10 de la partie 11/132
On demande de cochez les cases correspondant au numéro des lignes qui vont afficher True dans ce code:
texte = "Un chasseur sachant chasser doit savoir chasser sans son chien."
print("ch" in texte)
print("chant" in texte)
print("Un chien" in texte)
print("r s" in texte)
print("u" in texte)
je ne donnerais pas la réponse mais je demanderais au modérateur d'y jeter un coup d’œil et de vérifier le code car en testant moi même le code je n'est pas trouver ce que le site m'indiquais comme réponse.

M_C • 1 month ago

Corrigé, je vous remercie.

EagleBlack • 1 month ago

Bonjour dans l'exercice 1 de la partie 6/132 je dois calculer 3a+1 et 2a-b et sauvegarder le résultat dans a et b respectivement. Ensuite, afficher a et b sur une seule ligne, séparés d'un espace. mais en entrant mon code que voici:
def mon_programme(n):
#Ne pas toucher ce qui précède
#Les valeurs pour les variables en entrée seront automatiquement données
#Ecrire ci-dessous en n'oubliant pas d'indenter
a = n+n
print(n)
a += 5
print(a)
b = n**2
print(b)
b, a = a, b
print(a,b)
a, b = 3*a+1, 2*a-b
print(a,b)
pass
# Appuyer sur Run pour recevoir les instructions

l'instruction est Calculer le double de n et sauvegarder le résultat dans a. Ensuite, afficher a c'est la premiere instruction qui doit etre realiser et que j'ai deja faite.
Pouvez vous m'aider svp

M_C • 1 month ago

Bonjour,

Le premier print n'est pas bon. Il faut afficher a et non n

jimi2bb • 1 month ago

bonjour
dans la partie 7/130 exercice 2, la consigne est :
Ecrire un programme qui prend en entrée une température t et qui affiche l'état de l'eau à cette température c'est à dire "SOLIDE", "LIQUIDE" ou "GAZEUX".
le pgrm doit "afficher" mais il faut "retourner" pour passer les test!! il y a donc une confusion qu'il faudrait lever.
bonne journée

M_C • 1 month ago

Merci pour la remarque, je corrige de suite.

TagouguiAnis • 1 month ago

bonsoir
svp est ce que je peux avoir le pdf de ce cours ?

YvelGYYY • 1 month ago

bonjour dans l'exercice 1 du 5/147 en entrant ceci :

from math import *

def mon_programme(n):
#Ne pas toucher ce qui précède
#Les valeurs pour les variables en entrée seront automatiquement données
#Ecrire ci-dessous en n'oubliant pas d'indenter
pass
# Appuyer sur Run pour recevoir les instructions
a=n+pi
print(a)

on m'affiche cela :
Attention , vous utilisez le nom 'n' alors qu'il n'est pas défini
En général, c'est soit une erreur de frappe soit que vous n'avez pas créé votre variable ou fonction avant de l'utiliser.

or , dans le premier exercice de ce type "n" n'avait pas besoin d'être défini

sauf erreur de ma part je crois qu'il y a un soucis

M_C • 1 month ago

Bonjour,

C'est simplement une erreur d'indentation. Le a=n+pi et le print(a) doivent être décalé au même niveau que les #

Nico • 1 month ago

Salut!

J'essaye d'aider ma femme à faire un programme en python, mais je n'ai aucune base en python autre que ce que j'ai lu à droite à gauche.
Le programme doit définir une fonction, qui remplit une liste de valeurs entières aléatoires comprises entre 0 et 20 (bornes incluses).
La longueur de la liste est donnée en entrée.
On doit utiliser la fonction randint du module random.
On doit écrire un programme principal qui demande à l'utilisateur combien il souhaite avoir de valeurs pour générer une liste d'autant de valeurs aléatoires que souhaitées par l'utilisateur en appelant la fonction définie auparavant et afficher.

Moi j'ai fait:

def tirage (nbtirage) :

val = []
nbdeval = int(input("combien de valeurs voulez-vous?"))
for i in range(0, nbdeval):
val.append(input(random.randint(0, 20)))

print (val)

Mais c'est pas bon du tout ^^.
J'espère que vous trouverez le temps de me répondre!

Amicalement.

Nico • 1 month ago

J'ai changé ma fonction. elle ne marche toujours pas mais je sens que je ne suis pas loin:

# script tirage.py

def tirage_multiple_de(nbtir):

nbtir = int(input("combien de tirages voulez-vous?"))
return nbtir

def tirage_multiple_de(nombretirage):
#Retourne une liste de nombres entiers aléatoires entre 0 et 20
import random
resultat = [random.randint(0, 20) for i in range(nombretirage)] # compréhension de listes (Cf. annexe)
return resultat

# début du programme
print(tirage_multiple_de(nbtir))

M_C • 1 month ago

Bonjour,

Je ferais comme ceci :

from random import randint
def tirage(longueur):
return [randint(0,20) for n in range(longueur)]

et pour l'utiliser : print(tirage(10)) pour afficher une liste de longueur 10

Je ne comprends pas trop, dans votre programme l'interêt de redemander la valeur de nbtir avec input. Soit on donne nbtir en entrée de la fonction, soit on utilise input mais pourquoi faire les deux ?

Poolp21 • 1 month ago

Si jamais des gens sont intéressé, j'ai compilé toutes les commandes vu dans les chapitre 1/147 à 21/147 dans un PDF afin de faciliter les exercices par la suite (c'est plus simple de retrouver sa commande dans un 9 pages que de remonter tout le cours :p).
En tout cas GG pour ce boulot titanesque, j'attaque sérieusement les exercices et j'ai même déjà pu résoudre des problèmes du Projet Euler !

GIJane • 2 months ago

Bonjour,
Merci beaucoup pour ces cours, ils sont très clairs !
J'ai un petit soucis dans le cours 7 sur les conditions. Dans le premier exercice, j'ai mis ça :
def ma_fonction(x):
#Ne pas toucher ce qui précède
#Les valeurs pour les variables en entrée seront automatiquement données
#Ecrire ci-dessous en n'oubliant pas d'indenter
if x==0:
print("Impossible")
else:
print(1/x)

Quand je clique sur "Run", ça affiche ça :
Standard Output
SOLIDE
Oops!
En testant les valeurs -10 le résultat obtenu est None au lieu de SOLIDE

A quoi est dû le problème de "None" ?

M_C • 2 months ago

Bonjour,

C'est simplement car vous avez utilisé la fonction print au lieu de return

Fidele Kayokela • 2 months ago

Bonjour!
J'ai commence a apprendre Python sur ce site il y a peu de deux semaines.
Pour l'instant, je suis bloque aux exercices de "complements de chaines de caracteres" (12/147)

Que puis-je faire, vu que ma solution ne tiens pas.
Exercice 2
Pour le texte donné dans la fenêtre ci-dessous, créer un programme qui, pour chaque lettre du texte, affiche la lettre suivante dans l'alphabet.

Quelques compléments :

Pour le "z", on affichera "a".
Le texte n'est composé que de lettres minuscules et sans accent.
Pour l'affichage, on utilisera print et chaque lettre sera affichée en allant à la ligne.

texte = "azqcoiihcvobzerajzasoijixbougroizaziabxbncpvirizojasgpoofoabsvhcvxihosaojqxxbbxhjvvwiyagslxmxciabnxqlahxgavvwcbavvwcgsioidhkkgcgkjzbnvxgcahgcxaxgjhxwglja"
compt=0
for el in texte:
____numero = 0
____for numero in range(26):
________result = (chr(ord("a") + numero))
____numero +=1
____print (texte.replace(result, el))

M_C • 2 months ago

Bonjour,

Pour chaque lettre du texte il faut la remplacer par la suivante et l'afficher directement. Le texte.replace modifie tout le texte c'est à dire aussi les lettres précédentes déjà modifiées et celles pas encore modifiées. De plus, j'ai l'impression que votre code ne prend pas en compte le problème avec "z" qui doit être remplacé par "a"

Fidele Kayokela • 2 months ago

Bien merci pour votre reponse, mais ceci ne semble pas eclaircir ma voix vers la solution. Que suggeriez-vous que je fasse?

Merrion • 3 months ago

Quelle est la solution pour le dernier exercice de la leçon 11, le programme qui affiche l'indice de tous les "e" dans un texte?

(Est-ce qu'il y aurait d'ailleurs à disposition la solution de tous les exercices?)

Merrion • 3 months ago

Même question mais pour le dernier exercice de la leçon 12...

Swirly • 3 months ago

Merci énormément pour ce travail colossal.
Vous hébergez les sources du playground sur GIT ? Vous y accepteriez des push request ?

Elwithien • 4 months ago

Bonjour, dans l'exo 1 de la leçon 9/144 j'utilise ce code :

def ma_fonction(liste):
for nb in liste:
if nb == 0:
return "0 trouvé"
else:
return "0 non trouvé"

mais j'ai droit à "échec, essayez à nouveau". Pourtant le code fonctionne sous idle.
Où est mon erreur ?

M_C • 4 months ago

Bonjour,
Votre programme est tout à fait correct, c'est simplement le script de vérification qui ne lançait pas d'erreur car j'avais prévu un test sur une liste trop grande et se contentait d'afficher la barre en rouge. C'est normalement corrigé.
Merci pour votre commentaire, n'hésitez pas à me signaler d'autres bugs si vous en croisez.

Elwithien • 4 months ago

avec l'indentation ça donne :
def ma_fonction(liste):
__for nb in liste:
____if nb == 0:
______return "0 trouvé"
__else:
____return "0 non trouvé"

M_C • 5 months ago

Je vais modifier énormément ce recueil d'exercices durant tout l'été pour qu'il soit opérationnel pour la rentrée.
Je m'excuse par avance pour les désagréments que cela pourrait apporter.
N'hésitez pas à me signaler les erreurs que vous rencontrez

Anonymous • 9 months ago

J'ai réussi a faire le premier exercice , merci pour les explications !

Anonymous • 6 months ago

comment on fait? j'y arrive pas!