Annonce

Réduire
Aucune annonce.

Les entrées sorties - COURS N°1

Réduire
Ceci est une discussion importante.
X
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel Les entrées sorties - COURS N°1

    Bonjour,

    À savoir : Ce tutoriel risque d'être modifié, changé de place, voir même supprimé selon les décisions de l'équipe hackademics. Sa présence, est dû aux attentes des membres du forum participant au cours Python.

    Tout conseils, modifications à votre demande, sera envoyé par MP.

    Aucune réponse ne sera donnée dans ce post, seule les questions d'incompréhension du tutoriel seront acceptées.

    LES ENTREES SORTIES

    Dans ce cours nous allons parler des entrées sorties.
    Les entrées correspondant aux données envoyées dans le programme.
    Les sorties correspondant aux données envoyées par le programme.

    Pour cela un plan s'impose
    1. Les chaînes de caractères
    2. Les variables
    3. La fonction print()
    4. La fonction input()


    Comment on travaille?

    Bonne question, pour débuter, on travaillera sur l'interpréteur (avec le prompt >>>) et la version python 3.x

    I) LES CHAÎNES DE CARACTÈRES

    Les chaînes de caractères sont très importantes, elles permettent l'affichage de plusieurs caractères sur une seule ligne. Elles sont immutables, c'est à dire qu'elles ne se modifient pas, on reverra cela un peu plus tard...
    a) Sa représentation
    On représente une chaîne de caractères par un guillemet (") à chaque extrémité de la chaîne
    Exemple : "Exemple de chaîne de caractères en python"
    b) Sur plusieurs lignes
    On peut placer plusieurs chaînes de caractères sur plusieurs lignes à l'aide du triple quotes (""").

    Exemple : """Ligne 1
    Ligne 2
    Ligne 3"""
    c) Quel est le type d'une chaîne de caractères?
    Le type est str (raccourci de string), il permettra de savoir si on a le droit ou non d'utiliser les méthodes (fonctions) liées à cette classe (str).

    Par exemple pour rendre totalement en majuscule : "durand".upper()

    upper() est une méthode de la classe str permettant de transformer durand en DURAND.
    d) Les différentes méthodes de chaînes de caractères
    Tous cela est documenté et avec un peu de pratiques et les exemples, vous pourrez comprendre leur intérêt.

    Je vous laisse découvrir à l'aide de votre interpréteur.

    Si vous n'aimez pas l'anglais, c'est bien dommage (les meilleures doc sont dans la langue de Shakespeare) mais avec un peu de recherche via google vous trouverez des exemples en français.

    II) LES VARIABLES

    Les variables sont très utiles pour stocker une valeur (entier, chaîne de caractères, objets, ...) et être utilisés autant de fois que l'on souhaite.

    Les variables rendent lisible et compréhensible un code dans le cas où le nom de cette variable est correctement choisi.
    a) Pour une chaîne de caractères

    exemple : chaine = "Bonjour, je m'appelle"
    b) Pour un entier

    exemple : n = 12

    Remarque importante

    Vous avez sans doute remarqué l'espace entre variable et l'opérateur =, c'est très important de le respecter, ça fait partie du guide python, j'en parlerais plus tard...

    III) LA FONCTION PRINT()

    C'est une fonction de sortie, qui permettra l'affichage sur l'écran.

    Depuis la version 3.x, print est une fonction (cela est dû au fait du rapprochement de printf, une fonction du langage C), avant, la version 2.x, print était une instruction.

    Son utilisation est simple,

    Code:
    >>> chaine = "Bonjour je m'appelle"
    >>> print(chaine)
    Bonjour je m'appelle
    >>> print(chaine+" Fred")
    Bonjour je m'appelle Fred
    Vous remarquerez l'opérateur + permettant de concaténer (faire la jonction) 2 chaînes de caractères entre elles.

    IV) LA FONCTION INPUT()

    C'est une fonction d'entrée qui permettra de stocker une donnée utilisateur dans une variable en le questionnant.

    Depuis la version 3.x input() permet d'interroger l'utilisateur et de renvoyer une chaîne de caractères dans une variable. Dans la version 2.x son équivalent était raw_input(), inexistant dans la version 3.x

    Son utilisation est simple,

    Code:
    >>> chaine = input("Entrez votre chaine : ")
    Entrez votre chaine : Bonjour je m'appelle
    >>> print(chaine+" Fred")
    Bonjour je m'appelle Fred
    EXERCICES


    1) Demandez le nom, prenom et âge à l'utilisateur, placez chacune de ces informations dans une variable et affichez à l'écran sous cette forme

    Monsieur DURAND Stéphane a 25 ans

    Pour ceux qui sont dans un niveau intermédiaire ou plus, peuvent présenter des solutions plus élaborées (ne pas hésiter).

    2) Demandez l'année de naissance de l'utilisateur et affichez son âge (on est en 2013) sous cette forme

    Vous avez 25 ans

    Pour cela vous devrez utiliser la fonction int().

    Code:
    >>> n = "12"
    >>> n = int(n)
    >>> n
    12
    Bonne soirée,
    Dernière modification par fred, 30 mars 2013, 08h37. Motif: Remarque d'un élève

  • #2
    J'ai décidé de refaire tout le parcours python afin de me remémorer les bases et ce que j'aurais pu oublier. J'en profite pour participer à tes cours.


    Code:
    #Exercice 1
    
    # coding: utf8
    # Instruction demandée
    
    nom = input("Quel est votre nom ? ")
    prenom = input("Quel est votre prénom ? ")
    age = float(input("Quel est votre âge ? "))
    
    # Imprime la réponse
    
    print("\tBonjour Mr",nom,prenom,"\tVous avez:",age,"ans")
    
    Pour l'exercice 2 je me doute que tu souhaite juste un year - 2015 mais j'ai penser plus précis d'utiliser la lib datetime.now.
    
    #Exercice 2
    
    # coding: utf8
    # coding: cp152
    # Instruction demandée
    
    from datetime import datetime
    
    
    year = input("Quel est votre année de naissance ? ")
    
    age = datetime.now().year - int(year)
    
    print ("Vous avez " + str(age) + " ans")
    Si entre deux tu a des conseils etc..., si tu es disponible sur tes cours cela me fera plaisir, j'essais vraiment de me perfectionner en ce langage. Merci.

    Commentaire


    • #3
      Pour l'exercice 1, il est pas utile de caster en flottant l'âge...

      Pour le reste bonne idée d'utiliser datetime, mais c'est vrai que le débutant n'y pensera pas, n'ayant pas vu encore comment importer des modules et surtout comment les utiliser.

      Commentaire


      • #4
        Code:
        #!/usr/bin/env python
        # -*- coding: utf-8 -*-
        
        nom = input("nom : ")
        prenom = input("prénom : ")
        age = input("âge : ")
        
        print("Monsieur", nom.upper(), prenom.capitalize(), "a", age, "ans")
        
        adn = input("année de naissance : ")
        adn = int(adn)
        x = 2016 - adn
        print("Vous avez", x, "ans")
        †vKs|

        Commentaire


        • #5
          Question :

          Erreur :

          Code:
          $ python exo-fred-1.py 
          nom : Vardy
          Traceback (most recent call last):
            File "exo-fred-1.py", line 3, in <module>
              nom = input("nom : ")
            File "<string>", line 1, in <module>
          NameError: name 'Vardy' is not defined
          Après recherche, probable conflit python 2 & 3.

          Code:
          #!/usr/bin/env python
          Error. Again.
          †vKs|

          Commentaire


          • #6
            Question :

            Erreur :

            Code:
            $ python exo-fred-1.py 
            nom : Vardy
            Traceback (most recent call last):
              File "exo-fred-1.py", line 3, in <module>
                nom = input("nom : ")
              File "<string>", line 1, in <module>
            NameError: name 'Vardy' is not defined
            Après recherche, probable conflit python 2 & 3.

            Code:
            #!/usr/bin/env python
            Error. Again.
            †vKs|

            Commentaire


            • #7
              En python version 3.x ça doit passer... Dans le cas où tu utilises la version 2.x, remplaces input par raw_input.

              Commentaire


              • #8
                Bonjour,

                Merci pour ce cours.

                Voici le code que j'ai essayé de faire.
                Merci pour vos critiques afin que je puisse m'améliorer.

                Code:
                #!/usr/bin/python
                from datetime import date
                
                print ("**********Exercice 1**********")
                chaine = "Bonjour, je m'appelle"
                nom = input ("Entrez votre nom : ")
                prenom = input ("Entrez votre prénom : ")
                age = input ("Entrez votre age : ")
                
                print ("{} {} {}, j'ai {} ans.". format (chaine, nom, prenom, age))
                
                print ("**********Exercice 2**********")
                birth_year = input ("En quelle année es tu né(e) ? : ")
                birth_year = int(birth_year)
                cur_year = date.today().year
                age	= cur_year - birth_year
                print ("Vous avez {} ans.". format (age))

                Commentaire


                • #9
                  Bonjour,
                  Malheureusement, on ne peut éditer un message.
                  J'ai supprimé pas mal d'espaces pour respecter les conventions Python.
                  Voici le nouveau code.
                  Désolé pour la place que cela prend :
                  Code:
                  #!/usr/bin/python3.5
                  from datetime import date
                  
                  print("**********Exercice 1**********")
                  chaine = "Bonjour, je m'appelle"
                  nom = input("Entrez votre nom : ")
                  prenom = input("Entrez votre prénom : ")
                  age = input("Entrez votre age : ")
                  
                  print("{} {} {}, j'ai {} ans.". format(chaine, nom, prenom, age))
                  
                  print("**********Exercice 2**********")
                  birth_year = input("En quelle année es tu né(e) ? : ")
                  birth_year = int(birth_year)
                  cur_year = date.today().year
                  age = cur_year - birth_year
                  print("Vous avez {} ans.". format(age))

                  Commentaire

                  Chargement...
                  X