Python

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
francaaaise
Messages: 6
Enregistré le: 20 Mar 2018, 23:01

Python

par francaaaise » 20 Mar 2018, 23:12

Bonsoir a tous, je dois rendre un dm dans 2 jours sur le logiciel python mais j'ai quelques difficultés voici mon énoncé : On demande à l'utilisateur de deviner en moins de six essais un nombre tiré au hasard entre 10 et 100. On lui indique à chaque fois si le nombre proposé est superieur ou inférieur au nombre cherché.
1) a) Que représente les variables E,S,N
b) Ecrire et tester un programme traduisant cet algorithme.
2)Sans stratégie, il est difficile de gagner.
En effet, selon le choix des valeurs, il sera
ou non possible de déterminer à coup sûr la
solution.
La méthode consiste, en choisissant à
chaque fois la valeur située au milieu de
l’intervalle en cours, à réduire de moitié
l’amplitude de l’intervalle dans lequel se
trouve le nombre.
Tester cette stratégie pour gagner à tous les
coups à ce jeu et détailler un coup gagnant.

Affecter à S la valeur d'un nombre
aléatoire entier compris entre 10 et 100
Affecter à E la valeur 1
Tant que E<7
Saisir N
Si N>S
Alors afficher "C'est moins"
Sinon
Si N<S
Alors afficher "C'est plus"
Sinon
Afficher "C'est gagné"
Sortir de la boucle
Fin Si
Fin Si
Affecter à E la valeur E+1
Fin Tant que
Si E=7
Alors afficher "C'est perdu"
Fin Si


Voici mon algorithme en langage naturel

J'ai testé sur python cet algorithme et j'ai obtenue :

from random import*
S= randint (10,100)
E = 1
while E < 7 :
N = int(input("saisir une valeur comprise entre 10 et 100:"))
if N > S:
print("C'est moins")
elif N < S:
print("C'est plus")
else:
print("C'est gagné")
break
E= E+1
if E==7:
print("C'est gagné")
Mon seul problème c'est que mon ''elif'' m'indique qu'il y a une erreur de syntaxe du coup je ne peux pas exécuter mon programme.
Pour terminer je n'ai pas compris le sens de la question 2.
Si quelqu'un peut m'éclaircir sur ces 2 points s'il vous plait merci infiniment



Avatar de l’utilisateur
chadok
Membre Relatif
Messages: 319
Enregistré le: 04 Nov 2017, 22:44
Localisation: Finistère Sud

Re: Python

par chadok » 21 Mar 2018, 00:16

Indentation = Tu as dû oublier une tabulation ;)
Good luck

pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 13:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Python

par pascal16 » 21 Mar 2018, 10:13

j'ai testé, il marche

il faut en effet que les if-elif-else soient sur la même verticale

if E==7:
print("C'est perdu")

ton <7 fait penser à 7 essais, on en a que 6

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21512
Enregistré le: 11 Nov 2009, 22:53

Re: Python

par Ben314 » 21 Mar 2018, 10:58

Salut,
pascal16 a écrit:ton <7 fait penser à 7 essais, on en a que 6
Oui, mais ça, à mon sens, ça provient du "manque de logique" consistant à initialiser E à 1 alors que pour le moment 0 essais ont été effectués ce qui va impliquer que, au moment des passage "sur" le while, la variable E n'est jamais égale au nombre d'essais déjà effectués.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 62 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite