<jupyter_start><jupyter_text>Introduction au language Python<NAME>, <NAME>, le 31.05.19Sources:* [Pensez en Python](https://allen-downey.developpez.com/livres/python/pensez-python/) par <NAME>,* [Site officiel de Python](https://www.python.org/)* [w3schools.com](https://www.w3schools.com/python/python_intro.asp)Exemples:* Quelques exemples ont été directement copiés de _Pensez Python_.Images:* PrintScreen  Menu* [Introduction](Introduction)* [Console](Console)* [Exécution d'un script](Execution-d'un-script)* [Le langage](Le-langage)    * [La fonction input](La-fonction-input())* [Affection](Affection)    * [Opérations arithmétiques](Opérations-arithmétiques)  Introduction Pyhton a été créé en 1990 par le programmateur néerlandais <NAME>. Ce langage de programmation orienté objet est un langage qui a été conçu pour être facile à apprendre. Sa logique et facilité de lecture est un grand avantage. Grâce à cela, il est très accessible aux personnes débutantes dans le monde de la programmation.  Console Python est un langage qui peut être exécuté des différentes façons. Une d'entre elles est l'exécution dans la console (Linux ou Windows). Une invite >>> (prompt) est affichée afin d'entrer le code souhaité et recevoir une réponse instantanée. Cette méthode est utilisée pour exécuter des commandes basiques ou faire des tests. Voici quelques captures d'écrans avec des exemples:* Exemple 1: `print('Hello World')`* Exemple 2: `2+5` ![Python Hello World.png](./img/Python-Hello%20World.png) Dans Jupyter Notebook, `In[i]` serait notre prompt `(>>>)` et `Out[i]` la console.  Execution d'un script Python peut être utilisé comme un langage de script. Il peut être enregistré dans un fichier ``.py``. Et exécuté dans un programme dans un ordre précis. Le programme l'interprète et donne le résultat.Thonny est un des ces programmes compatibles avec Python. ![Thonny.png](./img/Thonny.png) Nous pouvons voir la console, l'état des variables et le contenu du fichier `test.py`  Le langage Python est un langage qui fonctionne avec des valeurs. Chacune de ces valeurs ont un `type`. Que ce soit des lettres, des nombres entiers ou des nombres à virgules, Python les définit d'une manière spécifique:* str : Ce type est attribué aux valeurs se formant grâce à une chaîne des caractères.* int : Ce type est attribué aux nombres entiers.* float : Ce type est accordé aux nombres à virgules. Les chaînes des caractères (string) sont de type __str__<jupyter_code>type('Hello, World!')<jupyter_output><empty_output><jupyter_text>Les nombres entiers (integers) appartiennent au type __int__<jupyter_code>type(2)<jupyter_output><empty_output><jupyter_text>Les nombres à virgule (floating-point numbers) leur est accordé le type __float__<jupyter_code>import math
type(math.pi)<jupyter_output><empty_output><jupyter_text>Néomoins, d'autres types sont aussi présents dans Python. Le type __bool__ est un type qui se caractérise pour avoir deux valeurs définies: `True` ou `False`. La plupart du temps ces valeurs sont utilisées dans les expressions booléennes; pour définir un état ou des comparaisons.<jupyter_code>type(True), type(False)
5 == 5, 6 == 5
5 != 6, 5 > 6, 5 < 6, 5 >= 6, 5 <= 6<jupyter_output><empty_output><jupyter_text>Les types peuvent être également utilisés comme fonctions. `int()` Transforme une chaîne de caractères composée de chiffres comme un __int__<jupyter_code>int('32')<jupyter_output><empty_output><jupyter_text>`float()` Transforme des entiers et des chaînes de caractères en __float__<jupyter_code>float(32)
float('35')<jupyter_output><empty_output><jupyter_text>`str()` Convertit son argument en un chaîne.<jupyter_code>str(32)
str(35.5415)<jupyter_output><empty_output><jupyter_text>La fonction `input()` Cette fonction a comme but de laisser l'opportunité à l'utilisateur d'utiliser le clavier et la souris pour compléter des informations. L'utilisateur peut alors lui-même assigner des variables.<jupyter_code>question = "Age? "
reponse = raw_input(question)
reponse<jupyter_output><empty_output><jupyter_text>Il est important de souligner que dans la langue française il existe l'apostrophe (`'`) ceci est un problème, car Python va l'interpréter comme la fermeture ou ouverture d'une chaîne des caractères. C'est pour cela qu'on utilise `""`.  Affection Dans Python, il est possible de créer nos propes variables et leur donner une valeur précise.Les programmateurs doivent donner des noms à leurs variables. Ces noms doivent pouvoir expliquer à quoi ces variables servent.Ces variables doivent suivre certains critères:* Il ne faut jamais commencer une variable par un chiffre. Les caractères spéciaux ne sont pas non plus admis.* Dans le but d'avoir des variables lisibles. Les programmateurs utilisent  les `_` à la place des espaces.* On ne peut pas utiliser les mots clés réservés par Python Exemple d'une bonne affection:<jupyter_code>message = 'Ceci est un message ayant comme type: str'
x = 5
y = 2.5<jupyter_output><empty_output><jupyter_text>Exemple d'affections erronées.<jupyter_code>76trombones = 'grande parade'
plus@ = 1000000 # Caractère '@' non admis.
class = 'Théorie avancée de la fermentation alcoolique'<jupyter_output><empty_output><jupyter_text>Voici une liste des mots réservés de Python:       False    class    finally    is    return        None    continue    for    lambda    try        True    def    from    nonlocal    while        True    del    global    not    with        and    elif    if    or    yield        as    else    import    pass            assert    break    in    raise       Ces valeurs peuvent être utilisées et nous pouvons faire des opération avec celles-ci. Afin d'affricher les variables nous pouvons les imprimer avec `print()` ou directement sur l'entrée.<jupyter_code>print(message)
print(x)
print(y)
x<jupyter_output><empty_output><jupyter_text>Opérations arithmétiques Grâce à Python il est également possible d'effectuer des opérations arithmétiques. Or vous ne pouvez pas les appliquer pour les chaînes des caractères.Il y deux exceptions: `+` et `*`. Vous pouvez enchaîner des chaînes des caractères grâce à l'addition et vous pouvez les répéter grâce à la multiplication.<jupyter_code>x+y, x*y, x/y, x**y<jupyter_output><empty_output><jupyter_text>Python respecte l'ordre des opérations. `40 * 2 + 5 != 40 * (2 + 5)`<jupyter_code>40 * 2 + 5 
40 * (2 + 5)<jupyter_output><empty_output><jupyter_text>Avec les chaînes des caractères.<jupyter_code>premier = 'plate'
second = 'forme'
premier + second
premier*5<jupyter_output><empty_output><jupyter_text>Comme vous avez pu constater précédemment. J'ai écrit la chose suivante: `import math`. Grâce à cela, il m'a été possible d'importer un module. Dans ce cas, le module `math` rassemble toutes les opérations possibles pour effectuer des opérations plus compliquées.<jupyter_code>math.sqrt(2) / 2 #Racine carrée de 2 divisée par 2<jupyter_output><empty_output><jupyter_text>Vous pouvez apprendre plus sur le module appliquant: `help(math)`<jupyter_code>help(math)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08325046171331155, 'fraction_numerical': 0.011365250745844581, 'mean_word_length': 5.342342342342342, 'pattern_counts': {'":': 0, '<': 71, '<?xml version=': 0, '>': 77, 'https://': 3, 'lorem ipsum': 0, 'www.': 2, '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': '16', 'dir': 'jupyter-structured-clean-dedup', 'id': '157808', 'license': 'MIT', 'n_tokens_mistral': 2377, 'n_tokens_neox': 2307, 'n_words': 814, 'path': 'exam/Stefani_Massimo_ Introduction_Python/Stefani_Massimo_intro_Python.ipynb', 'repo_name': 'Bugnon/oc-2018', 'size': '7079'}