<jupyter_start><jupyter_text>Formation Python École <NAME> 1**<NAME>, 11 novembre 2021** Exemple 1 : Les types numériques<jupyter_code>a = 10
b = 5
c = a/b
print(c)
type(c)<jupyter_output><empty_output><jupyter_text>Exemple 2 : Les chaines de caractères<jupyter_code>chaine = "Bonjour chers enseignants"
chaine
nom = 'Maxime'
chaine = 'Bonjour à toi ' + nom
chaine
chaine = 'bla'
chaine = chaine*3
print(chaine)
print((chaine + ' ') * 5)<jupyter_output><empty_output><jupyter_text>Exemple 3 : Listes et indexes<jupyter_code># Indexes simples d'une liste
liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print('Premier : ', liste[0])
print('3ieme : ', liste[2])
print('Dernier : ', liste[-1])
print('Avant dernier : ', liste[-2])
# Indexes 'slice' d'une liste
liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print('Du premier au troisième : ', liste[:3])
print('Du 5ième au dernier : ', liste[4:])
print('Du 2ième à l\'avant dernier : ', liste[1:-1])
print('Du 1er au dernier en prenant un sur deux: ', liste[::2])
# Les listes peuvent contenir n'importe quel type
liste = ['a', 2, 2.5, 'nom', 'test']
liste
# Même d'autres listes (jusqu'à l'infini)
liste1 = [1, 2, 3]
liste2 = [3, 2, 1]
liste3 = [liste1, liste2]
liste3
# Les index sur des listes composées se font de la liste extérieure à la liste intérieure
print('Premiere valeur de la première liste : ', liste3[0][0])
print('Premiere valeur de la deuxième liste : ', liste3[1][0])
print('Dernière valeur de la deuxième liste : ', liste3[1][-1])
(3.0 / 10e-16) * 10e-16 == 3<jupyter_output><empty_output><jupyter_text>Exemple 4 : Opérateurs booléens<jupyter_code># Exemple D'opérateurs booléens
print('3 < 2  : ', 3 < 2)
print('3 < 4  : ', 3 < 4)
print('3 == 3 : ', 3 == 3)
print('3 >= 3 : ', 3 >= 3)
print('4 != 3 : ', 4 != 3)
# Le problème avec les floats et '==' :
print('3.0 == 3.0 : ', 3.0 == 3.0)
eps = 10e-16
print('(3.0 / eps) * eps == 3.0 : ', (3.0 / eps) * eps == 3.0)
print('(3.0 / eps) * eps : ', (3.0 / eps) * eps, ' (Précision machine)')<jupyter_output><empty_output><jupyter_text>Quizz 1 : Expressions conditionnellesPourquoi le script suivant n'affiche pas 'Le nombre est zéro' quand `number = 0` ?<jupyter_code>number = 0

# Je suis évalué en premier
if number % 2 == 0:
    # Si la condition est vraie le segment suivant est exécuté et le code termine
    print('Le nombre est pair')
    
elif number == 0:
    # Si la condition est vraie le segment suivant est exécuté et le code termine
    print('Le nombre est zéro')

# Si TOUTES Les conditions précédents ne sont pas vraies le code qui suit est exécuté
else:
    print('Le nombre est impair')
# Les expressions if peuvent être combinées en ajoutant une tabulation :
number = 1
string = 'a'

if number >= 1:
    if string == 'b':
        pass
    elif string == 'a':
        print('It worked')<jupyter_output><empty_output><jupyter_text>Exemple 5 : La boucle `for`<jupyter_code># Instancier nos variables
liste_de_nombres = [18, 4, 13, 8, 13, 13, 4, 16, 18, 10, 17, 15, 7, 5, 4]
nombres_pairs = 0

for nombre in liste_de_nombres:
    if nombre % 2 == 0:
        nombres_pairs += 1  # 'Increment operator'
nombres_pairs
# N'importe quel itérateur peut être utilisé dans une boucle for
phrase = "Le Pape Jean-Paul II mange une pomme"
nombre_de_mots = 1

for letter in phrase:
    if letter == ' ':
        nombre_de_mots +=1
nombre_de_mots
# Un exemple plus complexe : Créer une matrice aléatoire
import random  # une librairie pour générer des valeurs aléatoires
lignes = 4
colonnes = 4
ligne = [] # Une liste
matrice = [] # Une liste

# Creér la matrice
for _ in range(lignes):  # range(5) = [0, 1, 2, 3, 4]
    for _ in range(colonnes):  # _ : représente une variable qu'on est obliger de déclarer mais qu'on va pas utiliser
        # Ajouter un chiffre aléatoire pour chaque colonne
        nombre_aleatoire = random.randint(0, 10)  # Un nombre aléatoire entre 0 et 10
        ligne.append(nombre_aleatoire)
    # Ajouter la ligne à la matrice
    matrice.append(ligne)
    # créer une ligne vide
    ligne = []
    
# imprimer la matrice ligne par ligne
for ligne in matrice:
    print(ligne)<jupyter_output><empty_output><jupyter_text>Exemple 6 : Boucle `while`<jupyter_code># différence entre deux nombres
nombre1 = 4
nombre2 = 12
compteur = 0

while nombre1 < nombre2 :
    nombre1 += 1
    compteur += 1

print(compteur)
compteur  == (12 - 4)
# Programme qui imprime une phrase tant qu'on ne l'arrête pas

while True:
    print('Quand es-ce que ça s\'arrête ?')
# Programme qui trouve le zéro du polynome y = x^3

a = -100
b = 200
error = b - a

while error > 0.001:
    # point milieu
    c = (b + a) / 2
    # Polynôme au point milieu
    y = c ** 3
    # redéfinir l'interval
    if y < 0 :
        a = c
    elif y > 0:
        b = c
    # Important de calculer le paramètre du while sinon la boucle va être infinie
    error = b - a
        
print('f(x) : ', y)
print('x : ', c)<jupyter_output><empty_output><jupyter_text>Jeu 1 : Devine mon nombre<jupyter_code>import random

print('Bienvenue à devine le nombre entre 0 et 10!')
nombre = random.randint(0, 10)
nombre_utilisateur = -1  # Un nombre impossible d'être égal au nombre de l'ordinateur

while nombre_utilisateur != nombre:
    # Les 'input' sont toujours des strings alors on les transforme en 'int'
    nombre_utilisateur = int(input("Entrer votre tentative : "))
    
    if nombre_utilisateur > nombre:
        print('Votre nombre est trop haut')
    elif nombre_utilisateur < nombre:
        print('Votre nombre est trop bas')
        
# Le else statement s'exécute à la fin de la boucle while
else:
    print('Félicitation vous avez réussi')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12267986565317306, 'fraction_numerical': 0.0390666430970479, 'mean_word_length': 3.6721717588769613, 'pattern_counts': {'":': 0, '<': 42, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '436130', 'license': 'MIT', 'n_tokens_mistral': 2305, 'n_tokens_neox': 2169, 'n_words': 697, 'path': 'Cours1/Seance_1.ipynb', 'repo_name': 'olivecha/Formation_Python_2021', 'size': '5689'}