IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Python 2 Vs 3


Sujet :

Python

  1. #21
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    C'est normal, soit tu exécutes le fichier depuis le terminal avec python mon_script.py, soit tu l’exécutes depuis ton éditeur et il ne faut alors pas donner la commande puisque tu es dans l'idle, donc dans un environnement python

  2. #22
    Membre averti
    Homme Profil pro
    inventeur
    Inscrit en
    Avril 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : inventeur

    Informations forums :
    Inscription : Avril 2020
    Messages : 38
    Par défaut
    Merci

    Au départ, je voulais vous répondre : je ne comprends rien à vos réponses.

    Mais après avoir vu une vidéo et relu mon tuto, j'ai compris ce que vous vouliez dire.

    En fait, faut passer par le MSD => Invite de commande => qui serait le VRAI terminal ?

  3. #23
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Il ne faut pas confondre le terminal system (que tout ordinateur possède, indépendamment du système d'exploitation, et dans lequel, si python est installé on peut exécuter un script python en faisant

    python mon_script.py

    en prenant soin que votre script soit dans le dossier courant (si vous êtes pas au point là dessus, il faut ouvrir un tuto commande unix ou windows https://windows.developpez.com/cours...e/?page=page_4).

    Après il y a le terminal python.

    Si dans votre terminal système vous taper juste python, vous aller basculer dans un terminal python. Et la vous pourrez taper du python directement. Vous vous en rendrez compte car vous verrez la version de python chargée, et le prompt ensuite aura changé.

    Faire quit() pour revenir au terminal system.

    Si maintenant vous utiliser un IDE, qui vous offre la possibilité d'écrire votre script dans ce logiciel, et offre aussi un raccourci pour l'éxécuter via F5 par exemple, et bien dans ce cas votre IDE intègre directement un terminal python, et vous éxécutez via F5.

    Et forcément si vous taper

    python mon_script.py

    dans le terminal python au lieu du terminal system, ca va pas bien se passer.

  4. #24
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 872
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par xa-moros Voir le message
    En fait, faut passer par le MSD => Invite de commande => qui serait le VRAI terminal ?
    Il y a 2 façons d'utiliser Python
    1. entrer dans "idle". Ca t'ouvre une fenêtre fond blanc dans laquelle tu tapes les instructions Python une à une qui sont exécutées directement. C'est pratique pour tester les exemples à 4/5 lignes mais ensuite ça devient difficile surtout si tu te trompes sur la 5° ligne (obligé de tout retaper)
    2. créer un script Python qui pourra être exécuté ensuite par Python. Là tu n'entres pas dans idle, tu prends un éditeur quelconque ("notepad", "notepad++", "vi", etc) dans lequel tu écris ton code entier. Tu sauvegardes ce code dans un fichier nommé ".py" par convention (ex "toto.py") puis tu ouvres une fenêtre terminal (MsDos sous Windows, shell sous Linux, ce que toi tu nommes "vrai" terminal et qui n'est en fait que le terminal de ton OS), tu vas là où le fichier "toto.py" se trouve et tu tapes "python toto.py" pour demander à Python d'exécuter le script (sous réserve que le binaire "python" soit inclus dans ton PATH mais c'est le cas par défaut sous Linux et les Python modernes le font tout seul quand on les installe dans Windows)

    idle permet aussi d'exécuter un script mais perso je trouve ça façon de faire un peu lourde (surtout si ensuite tu commences à créer plusieurs scripts qui s'utilisent les uns les autres).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #25
    Membre averti
    Homme Profil pro
    inventeur
    Inscrit en
    Avril 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : inventeur

    Informations forums :
    Inscription : Avril 2020
    Messages : 38
    Par défaut
    Merci,

    je vais essayer de digérer tout ça

  6. #26
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 799
    Par défaut
    Bonjour,

    La programmation ne s'apprend pas en 5 minutes...

    On est tous passé par là !

    Il y a deux difficultés pour toi qui est débutant,
    • Apprendre l'algorithmie (savoir résoudre un problème de manière logique et informatique)
    • Apprendre la syntaxe (c'est comme apprendre pour la première fois une langue littéraire)


    Autant en anglais par exemple, tu te mélanges dans les mots on pourra peut-être comprendre ta phrase et ne pas te répondre à côté de la plaque, en langage informatique, si tu te trompes l'interpréteur Python ne le comprendra pas, il t'indiquera le type d'erreur et l'endroit où cette erreur intervient.

    C'est ce dernier point que tu dois apprendre à maîtriser en faisant des recherches et en faisant des petits tests sur ton interpréteur python.

    N'hésite pas à poser des questions, mais ce qui te restera, se sont les recherches par toi même, il faut prendre le temps de comprendre, ne pas aller trop vite et surtout apprendre de ses erreurs.
    Quand j'ai commencé Python, personnellement c'était mon 1er langage, j'avais pas d'idée par où commencer, j'ai donc été m'inscrire sur un forum et je regardais la problématique des membres.
    Je reprenais leur ligne de code, je reproduisais le problème sur un interpréteur, je cherchais l'erreur sur le net, et quand j'avais une solution, je là testais... et si aucune réponse n'était présente je proposais ma solution.
    C'est le meilleur apprentissage en ce qui me concerne, on apprend à
    • réfléchir sans le savoir à l'algorithmie du problème
    • appréhender les erreurs de syntaxe du langage
    • rechercher sur le net en français mais aussi en anglais


    C'est un moyen rapide d'entrer dans le bain... mais l'interpréteur était mon meilleur ami, l'éditeur au début perso, ne m'a servi à rien, car pour apprendre, je devais reproduire, réécrire non pas 1x mais des dizaines de fois, pour que ça rentre. Si j'écris 1x, t'es sûr que deux jours après j'ai oublié. En anglais, si je dis le mot 1x, c'est pas pour cela que je vais le connaître à vie, il faut que je l'utilise régulièrement...

    Bonne continuation...

  7. #27
    Membre averti
    Homme Profil pro
    inventeur
    Inscrit en
    Avril 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : inventeur

    Informations forums :
    Inscription : Avril 2020
    Messages : 38
    Par défaut
    Oui, merci fred

    je crois que t'as bien résumé ma situation

    côté logique, je ne suis pas un crack, mais je peux me débrouiller
    c'est vraiment le langage qu'il faut que j'apprenne.

    Et c'est super gentil de me dire que je peux revenir poser des questions.
    D'ailleurs, j'en ai déjà une autre.

    Comme je suis le tuto déjà cité ci-dessus, je n'arrive pas en l'ayant suivi à résoudre un exercice posé qui n'a pas sa solution.
    Ecrire un programme qui fait :
    *
    **
    ***
    ****
    *****

    je peux facilement l'écrire avec les chiffres mais j'ai toujours pas compris comment lui dire d'écrire x fois le même caractère

    ---

    En fait, si je me mets à Python, c'est parce qu'on me dit que c'est le langage le plus simple pour commencer.

    Mon but in fine, c'est de réaliser la map que j'ai conçu pour les nombres premiers.
    Et peut-être essayer de calculer des gros nombres premiers.
    Ainsi que d'essayer de concevoir une IA (selon l'idée d'un biologiste vu que j'ai une formation là-dedans)
    Et peut-être un programme de bourse...
    => Grosso modo, même si rien ne fonctionne, j'ai des idées à vouloir mettre en pratique

    Donc, je ne sais pas si c'est le langage qu'il faut apprendre. Je n'ai pas envie de mélanger plusieurs langages en même temps. Déjà me concentrer sur le tuto de 400 p sur Python. Ce sera déjà pas mal. ^^

    En tout cas, vous êtes sympa.


    ----

    Je préfère continuer d'écrire tous mes problèmes sur le même topic, sinon, j'en créerai plein.
    J'espère que ça le fait.

    Bonne fin de week-end.

  8. #28
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    Tu peux commencer par cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(5):
        print('*')
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ch = ''
    for i in range(5):
        ch = ch + '*'
        print(ch)

  9. #29
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 872
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par xa-moros Voir le message
    je peux facilement l'écrire avec les chiffres mais j'ai toujours pas compris comment lui dire d'écrire x fois le même caractère
    Tu peux créer une fonction basée sur l'exemple de marco056.
    Ensuite, Python offre effectivement certains raccourcis syntaxiques ex print("*" * 10).

    Citation Envoyé par xa-moros Voir le message
    Et peut-être essayer de calculer des gros nombres premiers.
    Euh... là Python risque d'être incompétent. Ce n'est pas qu'il ne saura pas le faire, c'est juste qu'il n'est pas prévu pour le faire. En effet, Python se veut assez universel. Il est assez bon pour pouvoir aborder tout problème informatique mais comme il n'est pas spécialisé pour un problème (ce qui serait fatalement au détriment d'autres trucs) il fait tout mais pas super vite. Et pour calculer de "gros" nombres premiers...

    Enfin si tu veux essayer, voici déjà une fonction qui teste si un nombre est/n'est pas premier
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def isPremier(n):
    	if n in (1, 2, 3): return n != 1
    	if (n%2) == 0: return False
    	i=3
    	while True:
    		(q, r)=divmod(n, i)
    		if r == 0: return False
    		if q < i: return True
    		i+=2
    	# while
    # isPremier()
    Ensuite t'as qu'à essayer de regarder le temps que ça prend pour tester de "gros" nombres avec cette fonction...

    Citation Envoyé par xa-moros Voir le message
    Donc, je ne sais pas si c'est le langage qu'il faut apprendre.
    http://sametmax.com/python-meilleur-...ellent-partout.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #30
    Membre averti
    Homme Profil pro
    inventeur
    Inscrit en
    Avril 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : inventeur

    Informations forums :
    Inscription : Avril 2020
    Messages : 38
    Par défaut
    Merci

    J'ai essayé vos codes, ça fonctionne.

    Celui de marco, je le comprends littéralement.

    Celui de Sve@r, je ne le comprends pas. Mais je vais tenter par moi-même. Je sais que le tuto l'aborde à un moment donné.
    Je viens de tester pour un nombre "relativement" grand, c'est correct dans un premier temps pour ce que je veux faire.

    Bonne journée

  11. #31
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 799
    Par défaut
    Les deux codes sont pas comparables, déjà ils ne font pas la même chose, mais le niveau de difficulté n'a rien à voir non plus.

    Pour comprendre celui de marco, être débutant suffit.
    D'autres solutions existent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(1, 6):
         print(i * '*')
    Pour celui de Sve@r, il faut des bases supplémentaires dans le langage et dans l'algorithmie, sans compter les problèmes de performance qui peuvent en découler et qui complique encore ce problème.

  12. #32
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 872
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par xa-moros Voir le message
    Celui de marco, je le comprends littéralement.
    Il est trop fort ce marco

    Citation Envoyé par xa-moros Voir le message
    Celui de Sve@r, je ne le comprends pas.
    Oui, c'est le lot des génies que de rester incompris...
    Déjà je teste les 3 premiers nombres évidents (on peut éventuellement monter encore un peu avec 5, 7 etc) en sachant que 1 n'est pas premier. Ce test est obligatoire pour 1, 2 et 3 car l'algo ne fonctionne pas pour ces nombres là.
    Ensuite j'élimine les pairs (assez évident) pour pouvoir me concentrer sur les impairs. Et pour eux, je regarde si un des nombres impairs inférieurs divise parfaitement ce nombre (reste à 0) et dans ce cas ben il n'est pas premier. La fonction divmod() est intéressante pour ça car elle renvoie à la fois le quotient et le reste (sinon on eut pu faire par les opérateurs classiques division et modulo). Et comme le premier diviseur testé commence à 3, c'est pour ça que l'algo ne fonctionne pas pour 3.
    Et si on atteint un certain seuil où le quotient devient plus petit que le diviseur, alors c'est gagné (on gagne donc la moitié des tests). Parce que s'il existe un nombre x qui divise n et qui donne q < x ; alors on aurait fatalement trouvé q qui divise n et qui donne x lors des tests précédents.

    Citation Envoyé par xa-moros Voir le message
    Je viens de tester pour un nombre "relativement" grand, c'est correct dans un premier temps pour ce que je veux faire.
    Oui après tout dépend de tes besoins concernant le temps de recherche. Mais en tout cas c'est pas avec Python que tu vas pouvoir trouver rapidement du bitcoin. Pour info le dernier nombre premier trouvé vaut 2 ** 82589933 - 1 et fait 24 millions de chiffres... (déjà Python met 10mn rien qu'à le sortir alors avant de vérifier qu'il est/n'est pas premier... )
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #33
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 16h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 13h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 15h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo