Python (débutant) dichotomie

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
alibabadu59
Membre Naturel
Messages: 15
Enregistré le: 15 Fév 2020, 17:00

python (débutant) dichotomie

par alibabadu59 » 15 Fév 2020, 17:03

Bonjour,
j'enseigne au collège depuis de nombreuses années , je n'ai donc jamais utilisé Python, ni Scilab... Je m'étais inscrit à une formation mais celle-ci a été supprimée par manque de candidats... bref je risque de paraître bête et de poser des questions stupides, désolé.. mais j'aimerais apprendre un peu les bases. Pour cela ,je viens de me procurer un livre "Python et les 40 problèmes mathématiques" et je m'exerce.
Déja, première question, dans ce bouquin on dit de télécharger Pyzo et d'ailleurs tous les exercices sont corrigés avec pyzo, est-ce vraiment la même chose que Python?
ensuite je suis en train de travailler sur la méthode de dichotomie pour approximer la racine carrée de 2 , je tape exactement ce qui est proposé et qui me semble correct et il apparaît toujours des messages d'erreur..(en voici un par exemple) je ne comprends pas pourquoi...
"
>>> def f(x):
return x**2-2
a=1
b=2
while b-a>10**(-4):
m=(a+b)/2
if f(m)==0:
a=b
else:
if f(a)*f(m)<0:
b=m
else:
a=m
print(a)
Uncaught Python exception: invalid syntax (<logger>, line 3)
File "code.py", line 63, in runsource
File "codeop.py", line 171, in __call__
File "codeop.py", line 100, in _maybe_compile
File "codeop.py", line 87, in _maybe_compile
File "codeop.py", line 136, in __call__
"



Autre question sûrement bête, mais je dois tout recommencer le programme quand un message d'erreur apparaît? je ne vois pas commence supprimer une ligne pour revenir en arrière
merci beaucoup!

PS: désolé, je pensais qu'on pouvait mettre une image en pièce jointe mais apparemment non ou je ne vois pas comment..



LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 17:32

Re: python (débutant) dichotomie

par LB2 » 15 Fév 2020, 17:43

Bonjour,

Pyzo est un environnement (IDE) permettant d'écrire du code en langage Python et de l'exécuter sans avoir à recourir à un programme externe pour interpréter ce code.

Pour écrire un programme court, tu peux l'écrire directement dans la console (le shell), mais il est plus pratique d'utiliser un fichier séparé (un script, exemple.py)et de l'exécuter. Tout ceci est prévu par Pyzo avec un système de fenêtres.

En complément, tu peux visualiser ce qu'il se passe quand ton code est exécuté sur ce site par exemple : http://pythontutor.com/visualize.html#mode=edit

C'est très instructif pour progresser en programmation.
Modifié en dernier par LB2 le 15 Fév 2020, 17:49, modifié 2 fois.

GaBuZoMeu
Habitué(e)
Messages: 6019
Enregistré le: 05 Mai 2019, 10:07

Re: python (débutant) dichotomie

par GaBuZoMeu » 15 Fév 2020, 17:44

En python, l'indentation est essentielle. Si tu recopies un programme sans respecter l'indentation, tout foire.
Ici, sur le forum, il est indispensable de coller son programme python entre balises "Code", sinon l'indentation est perdue.

Avec ton programme correctement indenté
Code: Tout sélectionner
def f(x):
    return x**2-2
a=1
b=2
while b-a>10**(-4):
    m=(a+b)/2
    if f(m)==0:
        a=b
    else:
        if f(a)*f(m)<0:
            b=m
        else:
            a=m
print(a)

j'obtiens la réponse
1.4141845703125

alibabadu59
Membre Naturel
Messages: 15
Enregistré le: 15 Fév 2020, 17:00

Re: python (débutant) dichotomie

par alibabadu59 » 15 Fév 2020, 18:02

Merci beaucoup pour vos réponses et tous vos conseils. Je ne suis pas sur mon PC là donc je ne peux mas réessayer tout de suite mais c'est bizarre car j'avais tapé exactement la même chose et j'avais eu un message d'erreur...

alibabadu59
Membre Naturel
Messages: 15
Enregistré le: 15 Fév 2020, 17:00

Re: python (débutant) dichotomie

par alibabadu59 » 16 Fév 2020, 11:15

Code: Tout sélectionner
>>> def f(x):
    return x**2-2
a=1
b=2
while b-a>10**(-4):
    m=(a+b)/2
    if f(m)==0:
        a=b
    else:
        if f(a)*f(m)<0:
            b=m
        else:
            a=m
print(a)

toujours un message d'erreur ligne 3 ... :(

alibabadu59
Membre Naturel
Messages: 15
Enregistré le: 15 Fév 2020, 17:00

Re: python (débutant) dichotomie

par alibabadu59 » 16 Fév 2020, 11:17

Par contre sur http://pythontutor.com/visualize.html#mode=edit ça fonctionne, réponse: 1.4141845703125 ... c'est étrange, je ne comprends pas pourquoi.

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

Re: python (débutant) dichotomie

par chadok » 16 Fév 2020, 16:08

D'une manière gérérale, Python 2 et Python 3 n' ont pas exactement la même syntaxe. Donc ton programme peut très bien générer une erreur , suivant la version Python qui tourne...

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

Re: python (débutant) dichotomie

par chadok » 16 Fév 2020, 16:13

Ci-dessous un lien vers l'ouvrage de Gérard Swinnen, si tu veux apprendre Python. C'est un peu la Bible sur le sujet ;)
https://inforef.be/swi/download/apprendre_python3_5.pdf

alibabadu59
Membre Naturel
Messages: 15
Enregistré le: 15 Fév 2020, 17:00

Re: python (débutant) dichotomie

par alibabadu59 » 16 Fév 2020, 21:30

Super, merci beaucoup ! ;)

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 177 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