<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>a=2
b=3
c=4
x=5
y=a*x^2+b*x+c
print(y)<jupyter_output><empty_output><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):
    s=math.pi*r^2
    print(s, '=', 'la surface de rayon r')<jupyter_output><empty_output><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>def quadratique(a, b, c):
t=b^2-4a*c
    if b^2-4a*c < 0:
        print (None)
    elif b^2-4a*c = 0:
        x=(-b/(2a))
        print(x)
    else b^2-4*a*c > 0:
        q=(-b+(math.sqrt(t)))/(2*a)
        s=(-b-(math.sqrt(t)))/(2*a)
        print(q, s)
    
    
    
print(quadratique(1, 2, 3))
print(quadratique(1, 2, 1))
print(quadratique(1, 2, -1))<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):
    if type (c) ==str:
        
        if c is str(c.upper()):
            return
        else c is not str(c.upper()):
            a=c.upper()
            print(a)
    

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):
    for i in s:
        x=s.upper()
        print(x)
    

capitalize_words('hello world, how are you?')<jupyter_output>HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?
HELLO WORLD, HOW ARE YOU?<jupyter_text>**Exercice : tranches**  Expliquez ce que font les 6 opérateurs de **tranches** ci-dessous.<jupyter_code>s=['a', 'b', 'c', 'd', 'e',]

s[::2]
s[:2]
s[::-1]


# s[2]   - Cela affiche le troisième élément d'une liste
# s[:2]  - Cela affiche le 2 premier élément d'une liste
# s[::2] - Cela prend un élément sur 2 d'une liste et l'affiche

# s[-1]   -Cela prend le dernier élément d'une liste
# s[:-1]  -Cela prend tout sauf le dernier élément
# s[::-1] -Cela affiche la liste à l'envers<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')
for n in fin:
    if len(n) < 10:
        break
    else len(n) >10:
        print(n)
n = 5
m = 10<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')

for m in fin:
    if m[0:((len(m)/2)-1)] == m[((len(m)/2)-1):(len(m)-1)]
    print(i)
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):
    x=len(L)
    print(L[-1], x)
    
                   
L = [1, 3, 34, -4, -2, 100]
min(L)<jupyter_output>100 6<jupyter_text>**Exercice : moyenne**  Ecrivez une fonction `mean(L)` qui retourne la moyenne d'une liste..<jupyter_code>def mean(L):
    x=sum(L)
    print(x/2)
                   
L = [1, 3, 34, -4, -2, 100]
mean(L)<jupyter_output>66.0
{'fraction_non_alphanumeric': 0.15032414910858996, 'fraction_numerical': 0.02674230145867099, 'mean_word_length': 3.7932038834951456, 'pattern_counts': {'":': 0, '<': 43, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '8113', 'license': 'MIT', 'n_tokens_mistral': 2145, 'n_tokens_neox': 2044, 'n_words': 602, 'path': 'usr/pir/Test 1-10/TE1_thinkpy_exam.ipynb', 'repo_name': 'Bugnon/oc-2018', 'size': '4953'}