@ccueil Colles

Exercices de programmation en Python

Structures algorithmiques de base: tests, boucles, fonctions, …



Algorithmes et programmes généraux

Exercice 1:
  1. Que fait le programme suivant:
    n=int(input("Combien de semaines avant les vacances ?"))
    print("Plus que ",n," semaines avant les vacances !")
    
  2. Modifier ce programme pour qu'il affiche le nombre de jours de cours avant les vacances
  3. Modifier ce programme pour que l'affichage soit toujours sans faute (et s'il n'y a pas plusieurs semaines ou plusieurs jours )
Exercice 2:
  1. Que calcule le programme suivant:
    n=int(input("Entrer n: "))
    s=0
    for i in range(n+1):
        s=s+i
        print("i= ",i, " - s= ",s)
    
  2. Modifier le programme précédent pour qu'il calcule, à un nombre n donné (ou demandé à l'utilisateur), les sommes:
    • 1+1/2+1/3+1/4+ ... +1/n
    • 1+1/22+1/32+1/42+ ... +1/n2
    • 1+1/21+1/22+1/23+ ... +1/2n
  3. Qu'observe-t'on pour les valeurs de ces sommes lorsque n est de plus en plus grand (n=10, n=100, n=1000, …) ?
Exercice 3:
  1. Que calcule et affiche le programme suivant ?
    def f(x):
        y=3*x**2+2
        return y
    
    print(f(1))
    
    x=3
    print(f(x))
    
  2. On considère maintenant la fonction polynomiale: P(x)=x4-101324x3-101323x2-202650x. On sait que cette fonction admet une racine (c'est-à-dire une solution de l'équation P(x)=0) qui est un nombre entier strictement positif.
    Déterminer la valeur de cette racine.
Exercice 4:
Le programme suivant permet de demander une date à l'utilisateur et de récupérer la date actuelle:

from datetime import datetime
date=datetime.now()
ja=date.day;ma=date.month;aa=date.year
# ja, ma, et aa sont: jour, mois et année actuels

dn=input('Votre date de naissance ? (format jj/mm/aaaa) :')
dn=dn.split('/');
jn=int(dn[0]);mn=int(dn[1]);an=int(dn[2])
# jn, mn, et an sont: jour, mois et année de naissance saisis
  1. Tester le programme précédent. Afficher entre autre les différentes valeurs des jours, mois et années.
  2. Écrire un programme, en complément du programme précédent, qui demande à l'utilisateur sa date de naissance et affiche son age.
  3. Compléter ce programme pour qu'il affiche dans combien de temps, nombre de mois et de jours, est l'anniversaire de la personne.
Exercice 5:
  1. Que fait le programme suivant ? Qu'affiche-t'il ?
    from random import randint 
    d=randint(1,6)
    if (d==6): 
       print("Gagné")
    else:
       print("Dommage")
    
  2. En s'aidant du programme précédent, créer un programme qui lance 1000 fois un dé et qui compte le nombre de 6 obtenus.
    Calculer alors, et afficher, le pourcentage de 6 obtenus.

Avec des listes

Exercice 6:
  1. Que font les programmes suivants:
    s="je vais travailler ce soir" 
    for i in range(1,10):
        print(s)
    
    et
    s="je vais travailler ce soir" 
    print(s*10)
    
    Le chaîne spéciale "\n" permet, dans une chaîne de caractères, d'aller à la ligne.
    Essayer:
    s="je vais travailler ... \n ... ce soir\n\n" 
    print(s*10)
    
  2. Écrire un programme qui affiche les lignes ci-dessous, avec 5 lignes, puis n lignes, n étant demandé à l'utilisateur:
    * 
    **
    ***
    ****
    *****
    ...         
    
  3. Modifier ce programme pou'il affiche maintenant le "sapin" ci-dessous, à 5 lignes, puis n lignes, n étant demandé à l'utilisateur:
        *
       ***
      *****
     *******
    *********
    ...
    
Exercice 7:
  1. Quels sont les affichages successifs du programme suivant ?
    s="je vais travailler ce soir "
    print(s[3])
    print(s[3:7])
    print(len(s))
    
    for i in range (len(s)):
        print(s[i])
    
  2. Compléter le programme précédent de manière à ce qu'il compte le nombre de "a" dans la chaîne s précédente.
  3. Reprendre la question précédente pour compter et afficher le nombre de mots.
  4. Bien sûr, il est interessant de tester le programme avec divers textes dans la chaîne s.
Exercice 8:

Le programme suivant permet de décomposer les chiffres qui composent un nombre: le nombre n est converti en chaîne de caractères. Cette chaîne s peut alors être manipulée comme un tableau.
Qu'affiche le programme suivant ?
n=412
s=str(n)
print(s[2])

for i in s:
    print(i)

print(s[0]+s[1]+s[2])
print(int(s[0])+int(s[1])+int(s[2]))
  1. Écrire un programme qui, à un nombre donné (ou demandé à l'utilisateur), retourne la somme des chiffres qui le compose.
    Par exemple, pour n=412, le programme retourne 4+1+2=7.
  2. Écrire un programme qui, à un nombre donné (ou demandé à l'utilisateur), retourne la somme des carrés des chiffres qui le compose.
    Par exemple, pour n=412, le programme retourne 42+12+22=21.
  3. Un nombre heureux est un nombre entier qui, lorsqu'on ajoute les carrés de chacun de ses chiffres, puis les carrés des chiffres de ce résultat et ainsi de suite jusqu'à l'obtention d'un nombre à un seul chiffre égal à 1.
    Par exemple 7 et 13 sont heureux: 72=49, puis 42+92=97, puis 92+72=130, puis 12+32+02=10, puis 12+02=1

    De même pour 13: 12+32=10, puis 12+02=1.

    par contre 12 n'est pas heureux: 12+22=5 ≠ 1.

    Écrire un programme qui, à un nombre donné (ou demandé à l'utilisateur), retourne s'il est heureux ou non.
Exercice 9:
  1. Écrire un programme qui construit une liste de 5 nombres entiers aléatoires compris entre 1 et 6. (voir par exemple exercice 5)
  2. Compléter le programme précédent pour qu'il affiche de plus:
    • "paire": si 2 chiffres sont identiques
    • "brelan": si 3 chiffres sont identiques
    • "carré": si 4 chiffres sont identiques
    • "yams": si les 5 chiffres sont identiques
  3. Modifier le programme précédent pour compter, sur 1000 tirages de 5 chiffres, le nombre de paires, de brelans, de carrés et de yams obtenus.
Exercice 10:
n entiers, (2<n<100) de nombres entiers aléatoires compris entre 0 et 500.


Top Programmation en python