Voir le sujet précédentAller en basVoir le sujet suivant
Furby
Furby
Niveau 9

[Math] Aide python Empty [Math] Aide python

par Furby Lun 17 Juil 2017 - 0:36
Bonjour,
je profite de l'été pour me mettre à python, même si ça me gonfle dans le fond. Je suis une quiche, débutant total. Je suis le programme de formation sur IOI, et en même temps je teste sur la version 3.6 que j'ai installée sur mon ordinateur.
Lorsque je me trompe sur la simulation IOI, pas de problème, je corrige. Mais sur python directement, lorsque je fais une petite erreur, genre oubli d'un double point ou d'un guillemet ou d'une parenthèse dans une instruction, je ne peux pas corriger en rajoutant sur la ligne erronée, je suis obligé de retaper toutes les instructions du bloc en question. Je trouve ça pénible, est-ce que c'est normal, ou est-ce que quelque chose m'échappe ?
Merci pour vos lumières.
ben2510
ben2510
Expert spécialisé

[Math] Aide python Empty Re: [Math] Aide python

par ben2510 Lun 17 Juil 2017 - 7:39
Salut !
Quelque chose t'échappe.
Voici deux possibilités pour éditer (=modifier) le code erroné :
* flèche haute ; tu reviens sur le code que tu as tapé, puis tu tapes entrée, alors le code que tu avais tapé est dupliqué et modifiable
* le menu fichier/nouveau fichier (file/new file) ouvre une fenêtre dans laquelle tu peux taper du code, le modifier, le sauvegarder, et bien sûr l'exécuter menu run/run module

Tu peux aussi utiliser des éditeurs intégrés comme EduPython, ou spyder

_________________
On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison. Henri Poincaré  La notion d'équation différentielle est le pivot de la conception scientifique du monde. Vladimir Arnold
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Lun 17 Juil 2017 - 15:37
OK, merci Ben, ça marche. Mais du coup ça m'amène une autre question: lorsque je corrige selon ta 1ère méthode (flèche haute...), je ne peux pas effacer le message d'erreur précédent.
Je m'explique : je dois résoudre un problème qui me pose des difficultés, je fais plusieurs tentatives erronées, donc plusieurs messages d'erreurs successifs, puis je finis par y arriver et je veux sauvegarder lorsque j'ai trouvé la solution ; et là, le fichier que je sauvegarde est bon mais plein de messages d'erreurs pour toutes les tentatives infructueuses, si je veux une version nette, je dois quand même tout retaper ? La 2ème méthode (nouveau fichier) m'oblige aussi à tout retaper ce qui est bon.
Quant à "utiliser des éditeurs intégrés..." je ne sais pas encore ce que ça veut dire, mais je suppose que ça viendra.
avatar
Fatras
Niveau 8

[Math] Aide python Empty Re: [Math] Aide python

par Fatras Lun 17 Juil 2017 - 17:31
Quel éditeur utilises-tu ?
J'ai l'impression que tu utilises uniquement l'interpréteur qui rend souvent bien des services mais qui n'est pas à utiliser pour écrire des programmes au quotidien.
Si tu as installé Python avec l'éditeur inclus dans IDLE, va dans File, puis choisit new file.
ben2510
ben2510
Expert spécialisé

[Math] Aide python Empty Re: [Math] Aide python

par ben2510 Lun 17 Juil 2017 - 18:38
Lorsque tu sauvegardes à partir de la fenêtre où les messages d'erreur apparaissent (la console),
ce que tu sauvegardes est la session c'est à dire la suite des questions/réponses, y compris les messages d'erreur.
Le fait de travailler dans l'autre fenêtre (l'éditeur) te permet de ne sauvegarder que le code.

_________________
On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison. Henri Poincaré  La notion d'équation différentielle est le pivot de la conception scientifique du monde. Vladimir Arnold
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Lun 17 Juil 2017 - 19:34
@ Fatras : je ne peux pas répondre pour le moment, je ne comprends pas tout. J'ai téléchargé python à partir du site officiel, voici ce qui apparait en tête de fenêtre : Python3.6.1 Shell et le raccourci est intitulé IDLE(Python 3.6 32 bits). Si je fais new file, une nouvelle fenêtre s'ouvre, je tape des instructions mais quand je fais ENTER il ne se passe rien. [Math] Aide python 3795679266

@ ben2510 : je n'ai pas d'autre fenêtre que la console, à moins d'ouvrir un nouveau fichier avec file/new file, mais comme dit plus haut, les instructions ne sont pas actives.

Bref, ce que vous me dites me donne l'impression que je ne suis pas là où je devrais être. Effectivement j'avais d'abord téléchargé la version AmiensPython et là j'avais 2 fenêtres, mais je ne comprenais pas bien à quoi ça correspondait et ça m'a énervé car j'avais un message d'erreur dès que j'entrais un caractère accentué, donc je l'ai désinstallé pour ensuite aller télécharger sur le site de python.org
Je creuse tout ça et j'arrête de vous embêter pour le moment. Comme je l'ai déjà dit, je suis vraiment une quiche. Pourtant sur France IOI j'y arrive bien !Very Happy
En tout cas merci !
avatar
Fatras
Niveau 8

[Math] Aide python Empty Re: [Math] Aide python

par Fatras Lun 17 Juil 2017 - 22:45
Ca y est tu y es presque !
Dans la fenetre que tu as ouverte tu tapes ton programmes.
Ensuite tu l'enregistre sous un nom du type ex4.py (n'oublie pas le point py pour garder la coloration syntaxique).
Pour faire tourner le programme tu vas ensuite sur run... et c' est parti !
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Mar 18 Juil 2017 - 15:57
Merci encore Fatras, mais je n'y comprends toujours rien. Voici la capture d'écran d'un petit programme tout bête écrit sur la console qui s'ouvre quand je lance python:

[Math] Aide python Captur11

(ce programme "fonctionne", même si je ne sais pas pourquoi il faut rentrer l'âge tout de suite après la 1ère instruction.)


Voici maintenant une copie d'écran de la même chose écrite dans la nouvelle fenêtre qui s'ouvre quand je fais file/new file :

[Math] Aide python Captur12

Là, j'enregistre avec une extension .py comme tu dis, je fais "run", et j'ai un message d'erreur:
age=int(input())
ValueError: invalid literal for int() with base 10: ''
>>>
avatar
Fatras
Niveau 8

[Math] Aide python Empty Re: [Math] Aide python

par Fatras Mar 18 Juil 2017 - 16:54
En fait je pense que tu fais run, puis que tu tapes sur la touche entrée.
Comme tu n'as rien entré dans la variable age, le programme donne une erreur.
Regarde ce qu'il se passe avec ce programme

age=int(input("Quel age ?"))
if age>18:
print("majeur")
else:
print("mineur")
et je pense que tu comprendras ton soucis de manipulation.

Pour ta première question, lorsque tu tapes dans l’interpréteur, Python exécute ligne par ligne..

Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Mar 18 Juil 2017 - 17:59
D'accord !!! cheers
En effet je viens de comprendre, je crois.
Bon, reste à comprendre ce que c'est qu'un interpréteur. Je me penche sur la question et je reviens solliciter si besoin. Merci !
ycombe
ycombe
Monarque

[Math] Aide python Empty Re: [Math] Aide python

par ycombe Mar 18 Juil 2017 - 18:19
Furby a écrit:@ Fatras : je ne peux pas répondre pour le moment, je ne comprends pas tout. J'ai téléchargé python à partir du site officiel, voici ce qui apparait en tête de fenêtre : Python3.6.1 Shell et le raccourci est intitulé IDLE(Python 3.6 32 bits). Si je fais new file, une nouvelle fenêtre s'ouvre, je tape des instructions mais quand je fais ENTER il ne se passe rien. [Math] Aide python 3795679266
Il faut que tu fasses la différence entre python le langage, python le programme, et IDLE le programme permettant de programmer en python (le langage) en utilisant python (le programme).

Et aussi que tu saches la différence entre interprétation et compilation (je te dispense de la compilation JIT (Just-In-Time)).


_________________
Assurbanipal: "Passant, mange, bois, divertis-toi ; tout le reste n’est rien".

Franck Ramus : "Les sciences de l'éducation à la française se font fort de produire un discours savant sur l'éducation, mais ce serait visiblement trop leur demander que de mettre leur discours à l'épreuve des faits".
avatar
Marc au Polo
Niveau 2

[Math] Aide python Empty Re: [Math] Aide python

par Marc au Polo Mar 18 Juil 2017 - 18:35
Et ne pas confondre le programme interprété IDLE de Python, et (Eric) IDLE un des interprètes des Python...  Wink

Un peu ancien, et a adapter pour python 3, mais la série suivante est du beau boulot je pense:
https://www.youtube.com/watch?v=swGl-iPmYic&list=PL2424DE4A473AE40E&index=1
avatar
e1654d
Niveau 7

[Math] Aide python Empty Re: [Math] Aide python

par e1654d Mar 18 Juil 2017 - 20:51
Je réagis à l'exemple de programme (majeur / mineur).
La façon de traiter cet exemple (saisie d'une entrée au clavier, traitement puis affichage du résultat) est dans l'esprit des anciens programmes de lycée (c'est la façon de programmer des années 1960).
Le nouveau programme introduit la notion de fonction informatique. On définirait plutôt une fonction comme suit :
Code:

def est_majeur(age) :
    return age >= 18

Ce qui permet après d'écrire un programme plus complexe qui fera si besoin est des appels à la cette nouvelle fonction est_majeur.

Il y avait un collègue de post-bac qui se plaignait de cette ancienne façon de rédiger les programmes : https://www.yannsalmon.fr/naffichez-plus-les-resultats-dalgorithmes/

À l'époque, les programmes de lycée imposaient de faire à l'ancienne. Mais plus maintenant !
ycombe
ycombe
Monarque

[Math] Aide python Empty Re: [Math] Aide python

par ycombe Mar 18 Juil 2017 - 21:08
À moins que j'ai loupé un truc, IDLE n'est pas un interprète mais un environnement de développement intégré contenant un éditeur et une interface (improprement baptisée shell) donnant accès à la ligne de commande qui utilise l'interprète standard.



_________________
Assurbanipal: "Passant, mange, bois, divertis-toi ; tout le reste n’est rien".

Franck Ramus : "Les sciences de l'éducation à la française se font fort de produire un discours savant sur l'éducation, mais ce serait visiblement trop leur demander que de mettre leur discours à l'épreuve des faits".
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Mar 18 Juil 2017 - 21:11
Merci à tous pour vos remarques. Ca me fait mesurer que je n'en suis même pas aux bases élémentaires. Je vais me forcer un peu pour ne pas apprendre en même temps que les élèves à la prochaine rentrée (jusque là, algobox m'allait bien).

@e1654d : je ne sais pas encore programmer une fonction dans ma formation sur IOI. Mais je peux te dire que dans les années 60, on ne programmait pas au lycée ! Bac 1980, jamais vu d'ordinateur portable avant 1985, à l'ancêtre des ESPE de l'époque ! Et ce n'était même pas pour programmer, c'était pour écrire et imprimer des cours qu'on tirait ensuite sur duplicateur à alcool. Le bon vieux temps...

Bon, j'avance dans ma formation et je demande de l'aide quand nécessaire.
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Mar 18 Juil 2017 - 21:12
ycombe a écrit:À moins que j'ai loupé un truc, IDLE n'est pas un interprète mais un environnement de développement intégré contenant un éditeur et une interface (improprement baptisée shell) donnant accès à la ligne de commande qui utilise l'interprète standard.


Je crois que t'as loupé un truc : c'est un jeu de mots, que j'ai mis un petit moment à comprendre aussi...
avatar
Marc au Polo
Niveau 2

[Math] Aide python Empty Re: [Math] Aide python

par Marc au Polo Mar 18 Juil 2017 - 21:14
L'environnement de développement (IDE) par défaut du langage de programmation Python est nommé IDLE. Ce sigle signifie officiellement « Integrated DeveLopment Environment », mais le nom fut choisi en référence à Eric Idle, de même que le nom du langage de programmation Python était un clin d’œil à la troupe des Monty Python41.

Eric Idle, né le 29 mars 1943 à South Shields en Angleterre, est un acteur, humoriste, scénariste, réalisateur britannique aussi bien que guitariste et compositeur. Il est surtout connu comme étant l'un des membres de la troupe comique britannique des Monty Python.
https://fr.wikipedia.org/wiki/Eric_Idle

Very Happy
ycombe
ycombe
Monarque

[Math] Aide python Empty Re: [Math] Aide python

par ycombe Mar 18 Juil 2017 - 21:17
e1654d a écrit:Je réagis à l'exemple de programme (majeur / mineur).
La façon de traiter cet exemple (saisie d'une entrée au clavier, traitement puis affichage du résultat) est dans l'esprit des anciens programmes de lycée (c'est la façon de programmer des années 1960).
Le nouveau programme introduit la notion de fonction informatique. On définirait plutôt une fonction comme suit :
Code:

def est_majeur(age) :
    return age >= 18

Ce qui permet après d'écrire un programme plus complexe qui fera si besoin est des appels à la cette nouvelle fonction est_majeur.

Il y avait un collègue de post-bac qui se plaignait de cette ancienne façon de rédiger les programmes : https://www.yannsalmon.fr/naffichez-plus-les-resultats-dalgorithmes/

À l'époque, les programmes de lycée imposaient de faire à l'ancienne. Mais plus maintenant !

Programmation vue comme traitement des données passées en entrée standard, résultats envoyés en sortie standard. The Unix way. Often imitated, never equalled.



_________________
Assurbanipal: "Passant, mange, bois, divertis-toi ; tout le reste n’est rien".

Franck Ramus : "Les sciences de l'éducation à la française se font fort de produire un discours savant sur l'éducation, mais ce serait visiblement trop leur demander que de mettre leur discours à l'épreuve des faits".
ycombe
ycombe
Monarque

[Math] Aide python Empty Re: [Math] Aide python

par ycombe Mar 18 Juil 2017 - 21:22
Marc au Polo a écrit:L'environnement de développement (IDE) par défaut du langage de programmation Python est nommé IDLE. Ce sigle signifie officiellement « Integrated DeveLopment Environment », mais le nom fut choisi en référence à Eric Idle, de même que le nom du langage de programmation Python était un clin d’œil à la troupe des Monty Python41.

Eric Idle, né le 29 mars 1943 à South Shields en Angleterre, est un acteur, humoriste, scénariste, réalisateur britannique aussi bien que guitariste et compositeur. Il est surtout connu comme étant l'un des membres de la troupe comique britannique des Monty Python.
https://fr.wikipedia.org/wiki/Eric_Idle

Very Happy

Razz Bon, j'avais bien loupé un truc.

(J'ai lu Integrated Development and Learning Environment pour IDLE.)


_________________
Assurbanipal: "Passant, mange, bois, divertis-toi ; tout le reste n’est rien".

Franck Ramus : "Les sciences de l'éducation à la française se font fort de produire un discours savant sur l'éducation, mais ce serait visiblement trop leur demander que de mettre leur discours à l'épreuve des faits".
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Dim 8 Avr 2018 - 23:50
Bonsoir,
je déterre le sujet pour une question.
J'écris des algorithmes, qui fonctionnent lorsque je les lance tout de suite, mais quand je les enregistre (que ce soit avec le menu "enregistrer" ou "sauvegarder sous"), lorsque je les ouvre de nouveau depuis le dossier où ils sont enregistrés, ils ne fonctionnent plus. J'ai le message barbare "UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 55: ordinal not in range(128)".
Où est-ce que je fais mal ?
Merci.
ycombe
ycombe
Monarque

[Math] Aide python Empty Re: [Math] Aide python

par ycombe Lun 9 Avr 2018 - 0:12
Furby a écrit:Bonsoir,
je déterre le sujet pour une question.
J'écris des algorithmes, qui fonctionnent lorsque je les lance tout de suite, mais quand je les enregistre (que ce soit avec le menu "enregistrer" ou "sauvegarder sous"), lorsque je les ouvre de nouveau depuis le dossier où ils sont enregistrés, ils ne fonctionnent plus. J'ai le message barbare "UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 55: ordinal not in range(128)".
Où est-ce que je fais mal ?
Merci.
Problème d'encodage. Tu écris en UTF8 et tu te relis en ASCII, ou un truc comme ça.


_________________
Assurbanipal: "Passant, mange, bois, divertis-toi ; tout le reste n’est rien".

Franck Ramus : "Les sciences de l'éducation à la française se font fort de produire un discours savant sur l'éducation, mais ce serait visiblement trop leur demander que de mettre leur discours à l'épreuve des faits".
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Lun 9 Avr 2018 - 8:50
Bon, merci. Mais vu que je n'y comprends rien, y a t-il un moyen simple de surmonter ce problème ?
Gilles B.
Gilles B.
Niveau 7

[Math] Aide python Empty Re: [Math] Aide python

par Gilles B. Lun 9 Avr 2018 - 9:17
Voici un lien qui devrait t'aider.
Furby
Furby
Niveau 9

[Math] Aide python Empty Re: [Math] Aide python

par Furby Lun 9 Avr 2018 - 12:22
Encore une fois, merci, mais tout ça est pire que du chinois pour moi.
Si je comprends bien (je pense que non), il faudrait donc que je re-configure mon ordinateur ?
C'est trop me demander.
avatar
e1654d
Niveau 7

[Math] Aide python Empty Re: [Math] Aide python

par e1654d Lun 9 Avr 2018 - 17:40
En Python 3, l'encodage par défaut est UTF8. Par conséquent, il suffit d'enregistrer ses scripts en UTF8 et on n'a rien à configurer au niveau Python proprement dit (pour enregistrer en UTF8, normalement il doit y avoir un menu déroulant ou une option du même genre dans la boit de dialogue Enregistrer sous ; dans d'autres éditeurs, ce réglage se trouve sous Propriétés).

De façon plus immédiate : en supprimant toute lettre accentuée et tout caractère "spécial", on élimine le problème parce que ce problème d'encodage ne se pose normalement pas pour les fichiers qui sont entièrement composés de lettres et caractères usuels en anglais (en fait ceux du codage ASCII).
Voir le sujet précédentRevenir en hautVoir le sujet suivant
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum