<jupyter_start><jupyter_text>Travail Ecrit - Python* <NAME>, site de l'Ours* OC informatique* Sujet : chapitres 1-10 du livre *Pensez en Python** <NAME>* Date : jeudi 13 novembre 2018  **Exercice : expression arithmétique**  Initialisez les variables `(a, b, c, x)` avec les valeurs `(2, 3, 4, 5)`.  Calculez l'expression $$y = a x^2 + b x +c$$et imprimez le résultat.<jupyter_code>def fonction(a, b, c, x):
    print(a*x**2+b*x+c)
fonction(2, 3, 4, 5)<jupyter_output>69<jupyter_text>**Exercice : fonction surface**  Importez le module `math`,  définissez une fonction `surface(r)` qui calcule $s = \pi r^2$,  affichez avec un texte descriptif le résultat pour `r=5`<jupyter_code>import math
def surface(r):
    print(math.pi*r**2)
surface(5)<jupyter_output>78.53981633974483<jupyter_text>**Exercice : formule quadratique**  La solution d'une formule quadratique de forme$$ a x^2 + b x +c = 0 $$dépend du terme $\Delta = b^2 - 4 a c$* Si $\Delta < 0$ il n'y a pas de solution* Si $\Delta = 0$ il y a une solution : $x = \frac{-b}{2 a}$* Si $\Delta > 0$ il y a deux solutions : $x_1 = \frac{-b +\sqrt\Delta}{2 a}$ and $x_2 = \frac{-b -\sqrt\Delta}{2 a}$Définissez une fonction `quadratique(a, b, c)` qui retourne la solution à l'équation quadratique dans les 3 cas: `None`, `x`, `[x1, x2]`.Montrez la solution pour `quadratique(1, 2, 3)`, `quadratique(1, 2, 1)` et `quadratique(1, 2, -1)`<jupyter_code>import math
def quadratique(a, b, c):
    delta = b**2-4*a*c
    if delta < 0 :
        print('Pas de solution')
        x = None
    if delta == 0 :
        print('Il existe une solution:')
        x = -b/2*a
        return x
    if delta > 0 :
        print('IL existe deux solutions:')
        x1=(-b + math.sqrt(delta))/2*a
        x2=(-b - math.sqrt(delta))/2*a
        print(x1)
        print(x2)
print(quadratique(1, 2, 3))
print(quadratique(1, 2, 1))
print(quadratique(1, 2, -1))
import math
math.sqrt(25)<jupyter_output><empty_output><jupyter_text>**Exercice : capitalize**  Créez une fonction `capitalize(c)` qui transforme une lettre en majuscule si c'est une minuscule, ou la laisse inchangée autrement.<jupyter_code>def capitalize(c):
    res = [] 
    for s in c:
        if s.isupper():
            res.append(s.capitalize())
        return res
    else:
        return c

capitalize('a'), capitalize('B'), capitalize('3')<jupyter_output><empty_output><jupyter_text>**Exercice : capitalize words**  Créez une fonction `capitalize_words(s)` qui transforme la première lettre de tous les mots en majuscule.<jupyter_code>def capitalize_words(s):
       res = [] 
for c in s:
    res.append(c.capitalize_words())
    return res

capitalize_words('hello world, how are you?')

mot = 'banane'
len(mot)<jupyter_output><empty_output><jupyter_text>**Exercice : tranches**  Expliquez ce que font les 6 opérateurs de **tranches** ci-dessous.<jupyter_code># s[2]   -  Ecrit la 3ème lettre
# s[:2]  -  Ecrit jusqu'à la 3ème lettre
# s[::2] - 

# s[-1]   - Ecrit la dernière lettre
# s[:-1]  -  Ecrit jusqu'à la dernière lettre
# s[::-1] -<jupyter_output><empty_output><jupyter_text>**Exercice : longueur spécifique**   Le fichier `words.text` contient 58110 mots en anglais.  Affichez les $n=5$ premiers mots qui ont une longueur de $m=10$ et affichez leur nombre total.<jupyter_code>fin = open('words.txt')
n = 5
m = 10
for i in c :
    fin.readline()<jupyter_output><empty_output><jupyter_text>**Exercice : répétition**.  Affchez les $m=5$ premiers mots qui sont composé de deux parties répétées (par exemple **bonbon**).<jupyter_code>fin = open('words.txt')
m = 5<jupyter_output><empty_output><jupyter_text>**Exercice : minimum**  Créez une fonction `min(L)` qui retourne le minimum d'une liste et l'index de sa position sous forme de list `[val, pos]`.<jupyter_code>def min(L):
    len(L)
                   
L = [1, 3, 34, -4, -2, 100]
min(L)<jupyter_output><empty_output><jupyter_text>**Exercice : moyenne**  Ecrivez une fonction `mean(L)` qui retourne la moyenne d'une liste..<jupyter_code>def mean(L):
    pass                 
                   
L = [1, 3, 34, -4, -2, 100]
mean(L)<jupyter_output><empty_output>