Annonce

Réduire
Aucune annonce.

Les boucles - COURS N°4

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

  • Tutoriel Les boucles - COURS N°4

    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.

    PROBLÉMATIQUE

    En utilisant la boucle while et for, écrivez un programme qui compte de 0 à 10.

    QU'EST-CE QU'UNE BOUCLE?

    Une boucle permet de répéter un certains nombre de fois des instructions

    Deux boucles existent en python
    • La boucle for "pour"
    • La boucle while "tant que"


    Pour cela un plan s'impose
    1. La boucle for
    2. La boucle while
    3. Quand utiliser while ou for?



    I) LA BOUCLE FOR

    La boucle for est sans nul doute la boucle la plus souvent utilisé, est à regret celle que l'on étudie après la boucle while. C'est une erreur! Il est bien dommage de ne pas profiter de ses avantages (gain du nombre de lignes, simplicité, ...) pour résoudre nos problèmes.

    Code:
    >>> for letter in "chaine":
    ...     print(letter)
    ... 
    c
    h
    a
    i
    n
    e
    On fait:
    1. initialiser la variable de boucle (ici letter)
    2. incrémenter à la position suivante, la valeur letter prend comme valeur le caractère suivant
    3. vérifier que cette variable ne dépasse pas la dernière lettre



    Code:
    >>> for item in ["chaine", "test", "etc"]:
    ...     print(item)
    ... 
    chaine
    test
    etc
    II) LA BOUCLE WHILE

    La boucle while est utilisé plus comme une condition d'arrêt, exemple, tant que le compteur n'est pas nul, on continue le traitement.

    On peut donc répéter des instructions tant que la condition est remplie.

    Code:
    >>> compteur = 3
    >>> while compteur > 0:
    ...     print(compteur)
    ...     compteur -= 1
    ... 
    3
    2
    1
    III) QUAND UTILISER WHILE OU FOR?

    Très souvent la boucle for est préférable à la boucle while.

    While sera utilisée dans le cas où on connaît l'évènement permettant l'arrêt de la boucle.
    Avec la boucle while vous risquez la boucle infinie (jamais agréable), faire attention à ce qu'on fait, c'est moins safe.

    EXERCICES


    1) Résoudre la problématique

    2) Créez un éditeur de texte, permettant d'ajouter des mots dans une phrase dont la condition d'arrêt est le "."

    Code:
    Entrer votre mot ou '.' pour terminer la phrase :Bonjour
    Entrer votre mot ou '.' pour terminer la phrase :ça va
    Entrer votre mot ou '.' pour terminer la phrase :.
    >>> chaine
    'Bonjour ça va.'
    3) Créez une liste ou un tuple fixe de 5 nombres et affichez leur somme.

    Code:
    >>> liste = [12, 5, 9, 7, 7]
    >>> ...
    40
    EXERCICES SUPPLEMENTAIRES

    Voici les prochains exercices

    4) Demandez 10 nombres à l'utilisateur et indiquer le plus grand nombre parmi ces 10 nombres
    Modifiez ensuite le code afin que l'on est le plus grand nombre et sa position.

    5) Demandez un nombre de départ et afficher sa factorielle

    6) Demandez un nombre de départ et afficher sa table de multiplication sous cette forme
    1 x ... = ...
    2 x ... = ...

    etc.

    7) Demandez un nombre de départ, ce nombre représentant le nombre de 0 ajouté dans une liste vide.

    8) Ecrivez un code permettant à l’utilisateur de saisir un nombre quelconque de valeurs, qui devront être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le nombre de valeurs qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie terminée, le programme affichera le nombre de valeurs négatives et le nombre de valeurs positives.

    9) Ecrivez un code constituant un tableau, à partir de deux tableaux de même longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ.
    exemple :
    [1, 3, 5, 7]
    [2, 4, 6, 8]

    [3, 7, 11, 15]

    10) Toujours à partir de deux tableaux précédemment saisis, écrivez un code qui calcule le schtroumpf des deux tableaux.Pour calculer le schtroumpf, il faut multiplier chaque élément du tableau 1 par chaque élément du tableau 2, et additionner le tout. Par exemple si l'on a :
    [4, 8, 7, 12]
    [3, 6]

    3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279

    Bon courage à tous et bonne journée !
    Dernière modification par fred, 22 avril 2013, 21h40.

  • #2
    Merci pour le cours.
    Code:
    # Exercice 1
    
    # à l'aide de for
    
    
    for number in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
        print (number)
    
    # à l'aide de while
    
    number = 1
    while number < 11 :
        print(number)
        number += 1
    
    # Exercice 2
    
    
    mot = input ("Entrer votre mot ou '.' pour terminer la phrase : ")
    list=[]
    list=mot
    while mot == "."
         list.append
    return
    
    for n in countfrom(10):
        print n
        if n > 20: break # Si on ne break pas, on est en boucle infinie
                         # car le générateur ne s'arrête pas
    
    
    # Exercice 3
    
    Somme tuple
    
    tuple = [12, 5, 9, 7, 7]
    somme=sum(tuple[:5])
    print(somme)
    
    # Exercice 4
    
    a = input ("donner 10 nombre séparées d'une virgule : ")
    list= [a] # J'intégre la liste
    m = max (a) # je soumet le nombre max à ma variable m
    print ("le nombre le plus grand est : ", m)
    
    
    # Exercice 5
    # Définition de la fonction sans import de la lib math
    def fact(x) : 
        x=int(x)
        result = 1 
        while (x>1) : 
            result=result*x 
            x=x-1 
        return result
    
    # Lancement de la demande et affichage du résultat
    x = input ("donner un nombre X : ")
    print(fact(x)," est le factorielle de X!")
    
    # Exercice 6
    numerateur = 1
    number = input ("Donnez un nombre :")
    while numerateur <=10:
          print(numerateur, "* ", number, " = ", numerateur*number)
          numerateur +=1
    
    
    # Exercice 7
    
    liste = []
    number = input ("donnez un nombre : ")
    liste = [number]
    print (liste)
    
    
    
    # Exercice 9
    
    from scipy import *
    
    tab1 = array([1,2,3,4])
    tab2 = array([6,7,8,9])
    
    print (tab1+tab2)
    
    
    # Exercice 10
    
    from scipy import *
    
    tab1 = array([1,2,3,4])
    tab2 = array([6,7,8,9])
    
    print (tab1*tab2)

    Il me reste le 8 à finir. Ils n'ont pas l'air compliqué. Mais j'ai à faire. Je m'en occupe d'ici ce soir. J'espère progresser en reprenant tout à zéro pour avoir des bases solides.
    Dernière modification par DreAmuS, 20 septembre 2015, 15h43.

    Commentaire


    • #3
      Exercice 1

      Utilisation de range pour ta boucle for

      Exercice 2

      Code:
      list=[]
      list=mot
      Plusieurs erreurs,
      1. Mettre 1 espacement entre opérateur et variables.
      2. Le fait d'assigner deux valeurs différentes est inutiles, car tu écrases la 1ère valeur par la 2ème.
      3. Utilisation du mot clé list pour une variable, à ne pas faire.

      Commentaire


      • #4
        Merci pour ces précisions, je m'en suis rendus compte effectivement, de ce fait j'ai opté pour Liste au lieu du mot dédié python list. De plus, c'est une mauvaise manie que j'ai de rester :
        1) scolaire avec les listes Liste = [] , c'est certain qu'en affectant une 2e valeur derrière j'ai écrasé la mémoire de la 1e
        2) J'oublis souvent les espacements en python, une mauvaise manie du php.

        merci énormément pour ces conseils que je note sur mon bloc note personnel.

        Commentaire


        • #5
          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/python3.5
          
          print ("**********Exercice 1**********")
          for i in range(11):
          	print (i)
          
          print ("**********Exercice 2**********")
          choix = ""
          chaine = ""
          while (choix != "."):
          	choix = input ("Entrez votre mot ou '.' pour terminer la phrase :")
          	chaine += choix + " "
          print (chaine)
          
          print ("**********Exercice 3**********")
          mon_tuple = (12, 5, 9, 7, 7)
          somme = 0
          print (mon_tuple)
          for x in mon_tuple:
          	somme += x
          
          print (somme)
          
          print ("**********Exercice 4**********")
          ma_liste = list ()
          for x in range(10):
          	ma_liste.append(int (input ("Veuillez rentrer un nombre : ")))
          
          print (ma_liste)
          nbr_max = max(ma_liste)
          print (nbr_max)
          print (ma_liste.index(nbr_max))
          
          print ("**********Exercice 5**********")
          def fact (n):
          	""" fact (n) : Calcul la factorielle de n (entier >= 0) """
          	if n < 2:
          		return 1
          	else:
          		return n*fact(n-1)
          
          print ( fact (int (input ("Veuillez rentrer un nombre : "))))
          
          print ("**********Exercice 6**********")
          nbr = int (input ("Veuillez choisir un nombre : "))
          for i in range (1,11):
          	print ("{} * {} = {}".format (nbr, i, nbr*i))
          
          print ("**********Exercice 7**********")
          ma_liste = list ()
          nbr = int (input ("Veuillez rentrer un nombre : "))
          for i in range (nbr):
          	ma_liste.append(0)
          
          print (ma_liste)
          
          print ("**********Exercice 8**********")
          limite = int (input ("Veuillez choisir combien de nombre vous souhaitez entrer : "))
          ma_liste = list ()
          nb_neg = 0
          nb_pos = 0
          for i in range(limite):
          	ma_liste.append (int (input ("Entrez un nombre : ")))
          	if (ma_liste[i] < 0):
          		nb_neg += 1
          	else:
          		nb_pos += 1
          
          print ("Nombre de nombre négatif : {}".format (nb_neg))
          print ("Nombre de nombre positif : {}".format (nb_pos))
          
          print ("**********Exercice 9**********")
          def rempliList (liste):
          	for i in range(4):
          		liste.append (int ( input ("Veuillez rentrer un nombre : ")))
          
          	return liste
          
          ma_liste = list ()
          ma_liste1 = list ()
          ma_liste2 = list ()
          
          ma_liste1 = rempliList (ma_liste1)
          print (ma_liste1)
          ma_liste2 = rempliList (ma_liste2)
          print (ma_liste2)
          
          for x in range(4):
          	ma_liste.append (ma_liste1[x] + ma_liste2[x])
          
          print (ma_liste)
          
          print ("**********Exercice 10**********")
          schtroumpf = 0
          for x in range(4):
          	for y in range(4):
          		schtroumpf += int (ma_liste1[x] * ma_liste2[y])
          	pass
          print (schtroumpf)

          Commentaire


          • #6
            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
            
            print("**********Exercice 1**********")
            for i in range(11):
            	print(i)
            
            print("**********Exercice 2**********")
            choix = ""
            chaine = ""
            while(choix != "."):
            	choix = input("Entrez votre mot ou '.' pour terminer la phrase :")
            	chaine += choix + " "
            print(chaine)
            
            print("**********Exercice 3**********")
            mon_tuple = (12, 5, 9, 7, 7)
            somme = 0
            print(mon_tuple)
            for x in mon_tuple:
            	somme += x
            
            print(somme)
            
            print("**********Exercice 4**********")
            ma_liste = list()
            for x in range(10):
            	ma_liste.append(int(input("Veuillez rentrer un nombre : ")))
            
            print(ma_liste)
            nbr_max = max(ma_liste)
            print(nbr_max)
            print(ma_liste.index(nbr_max))
            
            print("**********Exercice 5**********")
            def fact(n):
            	""" fact(n) : Calcul la factorielle de n (entier >= 0) """
            	if n < 2:
            		return 1
            	else:
            		return n*fact(n - 1)
            
            print(fact(int(input("Veuillez rentrer un nombre : "))))
            
            print("**********Exercice 6**********")
            nbr = int(input("Veuillez choisir un nombre : "))
            for i in range(1,11):
            	print("{} * {} = {}". format(nbr, i, nbr*i))
            
            print("**********Exercice 7**********")
            ma_liste = list()
            nbr = int(input("Veuillez rentrer un nombre : "))
            for i in range(nbr):
            	ma_liste.append(0)
            
            print(ma_liste)
            
            print("**********Exercice 8**********")
            limite = int(input("Veuillez choisir combien de nombre vous souhaitez entrer : "))
            ma_liste = list()
            nb_neg = 0
            nb_pos = 0
            for i in range(limite):
            	ma_liste.append(int(input("Entrez un nombre : ")))
            	if (ma_liste[i] < 0):
            		nb_neg += 1
            	else:
            		nb_pos += 1
            
            print("Nombre de nombre négatif : {}".format (nb_neg))
            print("Nombre de nombre positif : {}".format (nb_pos))
            
            print("**********Exercice 9**********")
            def rempliList(liste):
            	for i in range(4):
            		liste.append(int(input("Veuillez rentrer un nombre : ")))
            
            	return liste
            
            ma_liste = list()
            ma_liste1 = list()
            ma_liste2 = list()
            
            ma_liste1 = rempliList(ma_liste1)
            print(ma_liste1)
            ma_liste2 = rempliList(ma_liste2)
            print(ma_liste2)
            
            for x in range(4):
            	ma_liste.append(ma_liste1[x] + ma_liste2[x])
            
            print(ma_liste)
            
            print("**********Exercice 10**********")
            schtroumpf = 0
            for x in range(4):
            	for y in range(4):
            		schtroumpf += int(ma_liste1[x] * ma_liste2[y])
            print(schtroumpf)

            Commentaire

            Chargement...
            X