Commit 230bdbdf authored by Alessandro CERIONI's avatar Alessandro CERIONI
Browse files

Initial commit

parents
%% Cell type:markdown id: tags:
# Qu'est-ce que Python ?
cf. https://fr.wikipedia.org/wiki/Python_(langage)
%% Cell type:markdown id: tags:
* Python est un langage de programmation **interprété, multi-paradigme et multiplateformes**
%% Cell type:code id: tags:
``` python
"Hello, world!"
```
%%%% Output: execute_result
'Hello, world!'
%% Cell type:code id: tags:
``` python
"Hello, " + "world!"
```
%%%% Output: execute_result
'Hello, world!'
%% Cell type:code id: tags:
``` python
1+2
```
%%%% Output: execute_result
3
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
* Il favorise la **[programmation impérative](https://fr.wikipedia.org/wiki/Programmation_imp%C3%A9rative) [structurée](https://fr.wikipedia.org/wiki/Programmation_structur%C3%A9e), fonctionnelle et orientée objet**
%% Cell type:markdown id: tags:
on verra tout cela...
%% Cell type:markdown id: tags:
* Il est doté d'un
* d'un **typage dynamique [fort](https://fr.wikipedia.org/wiki/Typage_fort)**,
%% Cell type:code id: tags:
``` python
"Hello" + 1
```
%%%% Output: error
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-465e48023fdd> in <module>()
----> 1 "Hello" + 1
TypeError: Can't convert 'int' object to str implicitly
%% Cell type:markdown id: tags:
* d'une **gestion automatique de la mémoire par ramasse-miettes** et
* d'un **système de gestion d'exceptions** ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
%% Cell type:code id: tags:
``` python
1/0
```
%%%% Output: error
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-11-05c9758a9c21> in <module>()
----> 1 1/0
ZeroDivisionError: division by zero
%% Cell type:code id: tags:
``` python
try:
1/0
except Exception as e:
print(e)
```
%% Cell type:markdown id: tags:
# Un petit peu d'histoire
%% Cell type:markdown id: tags:
* Crée par Guido van Rossum, au "Centrum voor Wiskunde en Informatica" d'Amsterdam
* 20 février 1991 : première version, v. 0.9.0
* Décembre 2008 : publication de la version 3.0
* 25 mars 2019 : publication de la version 3.7.3 (la plus recente au jour d'aujourd'hui)
%% Cell type:markdown id: tags:
# Licence
%% Cell type:markdown id: tags:
"Python Software Foundation Licence", cf. https://docs.python.org/3/license.html
%% Cell type:markdown id: tags:
# Implémentations du langage
cf. https://fr.wikipedia.org/wiki/Python_(langage)#Impl%C3%A9mentations_du_langage
%% Cell type:markdown id: tags:
# Quelques distributions
* https://www.anaconda.com/distribution/ : multi-plateforme, orientée Data Science
* https://winpython.github.io/ : portable, pour Windows
%% Cell type:markdown id: tags:
# Principales utilisations de Python
%% Cell type:markdown id: tags:
* https://www.quora.com/What-is-the-most-famous-software-written-in-Python
%% Cell type:markdown id: tags:
...on parlait de **[programmation impérative](https://fr.wikipedia.org/wiki/Programmation_imp%C3%A9rative) [structurée](https://fr.wikipedia.org/wiki/Programmation_structur%C3%A9e)**...
%% Cell type:markdown id: tags:
# Les instructions de base
%% Cell type:markdown id: tags:
## Instructions d'assignation
%% Cell type:code id: tags:
``` python
a = 3
b = 2
print(a+b)
```
%% Cell type:markdown id: tags:
### Pour connaître les variables qui sont définies dans le _scope_ actuel :
%% Cell type:code id: tags:
``` python
dir()
```
%%%% Output: execute_result
['In',
'Out',
'_',
'__',
'___',
'__builtin__',
'__builtins__',
'__doc__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_dh',
'_i',
'_i1',
'_i2',
'_ih',
'_ii',
'_iii',
'_oh',
'_sh',
'a',
'b',
'exit',
'get_ipython',
'quit']
%% Cell type:markdown id: tags:
### Pour effacer une variable :
%% Cell type:code id: tags:
``` python
z = 2
del(z)
```
%% Cell type:code id: tags:
``` python
z
```
%%%% Output: error
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-4-a8a78d0ff555> in <module>()
----> 1 z
NameError: name 'z' is not defined
%% Cell type:markdown id: tags:
## Instructions conditionnelles
%% Cell type:code id: tags:
``` python
if a > b:
print(a)
else:
print(b)
```
%% Cell type:markdown id: tags:
### Indentation : espaces ou tabulation ?
"Use 4 spaces per indentation level.", cf. https://www.python.org/dev/peps/pep-0008/
%% Cell type:code id: tags:
``` python
if a > 1:
print('La valeur de la variable a est supérieure à 1.')
elif a < 1:
print('La valeur de la variable a est inférieure à 1.')
else:
print('La valeur de la variable a est égale à 1.')
```
%% Cell type:markdown id: tags:
## Instructions de bouclage
%% Cell type:code id: tags:
``` python
a = 0
while a < 5:
a += 1
print(a)
```
%% Cell type:markdown id: tags:
N.B. : Il n'y a pas de `do...while`, mais l'on peut l'emuler
%% Cell type:code id: tags:
``` python
a = 0
while True:
a += 1
print(a)
if a >= 5:
break
```
%% Cell type:code id: tags:
``` python
for i in range(3):
print(i)
```
%% Cell type:code id: tags:
``` python
for i in range(0, 3):
print(i)
```
%% Cell type:code id: tags:
``` python
for i in range(1, 3):
print(i)
```
%% Cell type:code id: tags:
``` python
help(range)
```
%% Cell type:markdown id: tags:
# Types de données simples
%% Cell type:markdown id: tags:
## Nombres entiers
%% Cell type:code id: tags:
``` python
a = 1
type(a)
```
%%%% Output: execute_result
int
%% Cell type:code id: tags:
``` python
a+1
```
%%%% Output: execute_result
2
%% Cell type:code id: tags:
``` python
b = 2
```
%% Cell type:code id: tags:
``` python
a+b
```
%%%% Output: execute_result
3
%% Cell type:markdown id: tags:
## Nombres en virgule flottante
%% Cell type:code id: tags:
``` python
a/2
```
%%%% Output: execute_result
0.5
%% Cell type:code id: tags:
``` python
type(a/2)
```
%%%% Output: execute_result
float
%% Cell type:markdown id: tags:
division entière :
%% Cell type:code id: tags:
``` python
a//2
```
%%%% Output: execute_result
0
%% Cell type:markdown id: tags:
## Booléens
%% Cell type:code id: tags:
``` python
a == b
```
%%%% Output: execute_result
False
%% Cell type:code id: tags:
``` python
a != b
```
%%%% Output: execute_result
True
%% Cell type:code id: tags:
``` python
type(a>0)
```
%%%% Output: execute_result
bool
%% Cell type:code id: tags:
``` python
if True:
print('Cool!')
```
%% Cell type:code id: tags:
``` python
z = a==b
```
%% Cell type:markdown id: tags:
### Comment faire des contrôles sur le type ?
%% Cell type:code id: tags:
``` python
type(z) == bool
```
%%%% Output: execute_result
True
%% Cell type:code id: tags:
``` python
isinstance(z, bool)
```
%%%% Output: execute_result
True
%% Cell type:markdown id: tags:
## Chaînes de caractères
%% Cell type:code id: tags:
``` python
b = "ceci est une chaîne de caractères"
```
%% Cell type:code id: tags:
``` python
b
```
%%%% Output: execute_result
'ceci est une chaîne de caractères'
%% Cell type:code id: tags:
``` python
type(b)
```
%%%% Output: execute_result
str
%% Cell type:code id: tags:
``` python
c = """
Ceci est une châine de caractères
sur plusieurs lignes
"""
```
%% Cell type:code id: tags:
``` python
c
```
%%%% Output: execute_result
'\nCeci est une châine de caractères\nsur plusieurs lignes\n'
%% Cell type:code id: tags:
``` python
print(c)
```
%% Cell type:markdown id: tags:
### Opérations sur les chaînes de caractères
%% Cell type:code id: tags:
``` python
b + " !"
```
%%%% Output: execute_result
'ceci est une chaîne de caractères !'
%% Cell type:code id: tags:
``` python
"!"*3
```
%%%% Output: execute_result
'!!!'
%% Cell type:code id: tags:
``` python
3*"!"
```
%%%% Output: execute_result
'!!!'
%% Cell type:code id: tags:
``` python
len(b)
```
%%%% Output: execute_result
33
%% Cell type:code id: tags:
``` python
dir(b)
```
%%%% Output: execute_result
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__getnewargs__',
'__gt__',
'__hash__',
'__init__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mod__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__rmod__',
'__rmul__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'capitalize',
'casefold',
'center',
'count',
'encode',
'endswith',
'expandtabs',
'find',
'format',
'format_map',
'index',
'isalnum',
'isalpha',
'isdecimal',
'isdigit',
'isidentifier',
'islower',
'isnumeric',
'isprintable',
'isspace',
'istitle',
'isupper',
'join',
'ljust',
'lower',
'lstrip',
'maketrans',
'partition',
'replace',
'rfind',
'rindex',
'rjust',
'rpartition',
'rsplit',
'rstrip',
'split',
'splitlines',
'startswith',
'strip',
'swapcase',
'title',
'translate',
'upper',
'zfill']
%% Cell type:code id: tags: