Ce cours est destiné à des débutants n'ayant jamais écrit une ligne de code. Il vous permettra de découvrir les principes de bases de la programmation en Python, un langage polyvalent, moderne et très populaire. Durant nos 12 heures ensemble nous découvrirons les bases du langage qui vous permettrons de continuer votre apprentissage seuls.
Notre angle pour ce cours de Python est la "Data Science", ou science des données. Une pratique dont on a entendu de plus en plus parler avec la vulgarisation des termes "Big Data". Ces termes sont de jolis mot-valises, mais que recouvre la data science ? Statistiques descriptives, inférentielles, visualisation, exploration, bases, gestion et contrôle des données...
Notre objectif en 6 séances de data science, c'est de pouvoir comprendre et utiliser les 9 lignes de codes suivantes :
import csv
print "I am data-scientist. I am a data-scientist. I am a data-scientist."
mon_csv = csv.reader(open('fichier.csv', 'r'))
output = csv.writer(open('sortie.csv', 'w'))
for line in mon_csv:
colonne_2 = line[1]
colonne_3 = line[2]
colonne_4 = colonne_2 + colonne_3
new_line = line + [colonne_4]
output.writerow(new_line)
Nous n'allons pas construire de logiciel complexe, ni devenir des développeurs confirmés, ni même faire de la modélisation prédictive sur des données massives issues du web. Juste un peu de data-science.
Linguiste-informaticien de formation (à Paris 7), j'ai travaillé dans la création et la gestion de corpora linguistiques à destination de projets de recherche (reconnaissance de la parole, faciale). Je suis arrivé à Sciences Po il y a 4 ans. J'y travaille comme data-scientist au Cevipof et au médialab. Mon travail s'apparente à celui d'un ingénieur de recherche. J'apporte mon expertise en traitement de données à divers projets de recherche de la communauté de chercheurs de Sciences Po.
- Quel est votre background ? Votre formation ? Votre master ?
- Quelle expérience avez-vous en informatique en général ? En programmation ?
- Que recherchez-vous en prenant ce cours d'introduction à la programmation ? Quelle utilisation pensez-vous faire de ce que vous allez apprendre ?
Coder s'apprend en codant, et en demandant des solutions à Stack Overflow. Et en partageant son code avec d'autres codeurs. Et éventuellement en suivant ce cours.
- Learn Python : le mooc officiel python. Un cours bien construit qui manque un peu d'exercices au départ à mon gout...
- Version Datacamp : le même cours sur le site de Datacamp, découpé en chapitres.
- Codecademy : un second mooc construit autour d'exercices. Pas assez d'explication à mon goût lorsqu'on atteind les niveaux les plus avancés.
- freeCodeCamp : 100% gratuit, et vos dons à freeCodeCamp sont déductibles des impôts !
- Stack Overflow : LE site qui répondra à toutes vos questions techniques de code. Tapez une question de programmation dans google, ce sera la première réponse.
- Documentation Python : la documentation officielle du langage python. Elle est moche, mais c'est ici que vous trouverez le descriptif des fonctions du langage. Exemple : la fonction print()
- Vidéo de conférences : toujours important d'écouter parler les data-scientists eux-mêmes...
- Huuuuuge list : une riche liste très générale de ressources de programmation. Elle vous servira si vous cherchez à aller plus loin que ce cours.
- Le site github du cours contient le résumé des séances et les exercices du semestre précedent. Je mettrai à jour les séances au fur et à mesure.
- Le pad partagé me permet de faire l'appel, sans écorcher la prononciation d'un nom de famille et sans perdre de temps.
Il y a de nombreuses manières de coder en python : éditeur de texte + terminal sur sa machine, Integrated Development Environment ou solution en ligne. Pour ce cours d'introduction, nous allons utiliser la solution en ligne : Repl.it.
Connectez-vous y à l'aide de votre adresse sciencespo.fr et créez votre premier Repl en choisissant le langage Python3
Remarque : Python se décline en deux versions concurrentes : actuellement 2.7 et 3.6. Les deux versions sont fonctionnelles, activement développées et contiennent tout ce qu'il nous faudra pour ce cours.
L'environnement de programmation minimal présenté contient : un éditeur de code (à gauche) et un terminal (à droite). L'éditeur permet d'écrire des commandes, d'organiser son code, de construire ses algorithmes. Le terminal permet d'exécuter le code.
Si vous le souhaitez, vous pouvez également installer Python sur votre machine, et coder à l'aide d'un IDE ou d'un éditeur de texte de votre choix.
Sur Macintosh, python 2.7 est installé par défaut. Sur Windows python 3.6 est peut-être déjà installé.
De nombreux guide plus ou moins clairs existent en ligne pour vous apprendre à installer un environnement de programmation sur votre ordinateur. En voici un !
Si votre machine est sous Linux, je n'ai rien à vous apprendre.
Afficher le message "Hello, World!" est une tradition de l'enseignement de la programmation informatique. C'est toujours le premier exercice demandé. Tapez la ligne de code suivante dans l'éditeur de texte :
print("Hello, World!")
C'est votre premier script en python. Cliquez sur run. Vous êtes développeur•e.
variable_1 = "Mon deuxième message"
variable_2 = 42
print(variable_1)
print(variable_2)
Une variable est un contenant, on y met une valeur. On assigne la valeur 42 à la variable dont le nom est variable_2. On utilise ensuite la fonction print() pour afficher dans le terminal les valeurs de variable_1 et variable_2.
entier = 2
decimal = 5.43
booleen = True
chaine = "du texte du texte du texte"
rien = None
Il existe 5 types primitifs de variables :
- les entiers ou integer, abrégé int
- les décimaux ou float
- les booléens ou boolean, abrégé bool : ils peuvent prendre 2 valeurs, True ou False, vrai ou faux
- les chaînes de caractères ou string, abrégé str
Une fonction prend un ou plusieurs paramètres (ou aucun !), on les inclus entre parenthèses à la suite du nom de la fonction. Elle effectue une opération sur ces paramètres et renvoie un resultat.
Les fonctions type() et print() sont des fonctions de base du langage Python. Il est possible de définir ses propres fonctions ou d'importer des fonctions développées par d'autres développeurs.
variable_x = 2
print(type(variable_x))
variable_x = 34.465
print(type(variable_x))
variable_x = False
print(type(variable_x))
variable_x = "Je vous demande de vous arrêter."
print(type(variable_x))
La fonction type() permet de connaître le type d'une variable. type(variable_x) renvoie le type de la variable de nom variable_x. print(type(variable_x)) imprime le résultat.
Notons qu'il est possible de réassigner une valeur différente à une variable, à l'infini.
L'addition, la soustraction, la multiplication, la division et le modulo sont utilisable en python de la façon suivante
variable_x = 2 + 2
variable_y = variable_x * 3
variable_z = variable_x + variable_y % 2
print(variable_z)
Les différents types primitifs de variables ne permettent pas les mêmes opérations : il est possible d'additionner deux strings ensemble mais pas de les multiplier. Diviser un entier par un entier donnera un entier. Un booléen ne permet pas d'opérations mathématiques. Etc...
Il est crucial de commenter son code. L'apprentissage du code passe par la lecture de code d'autres développeurs et le partage du sien. De façon à permettre la compréhension de son code et d'en maximiser la lisibilité, il est nécessaire de respecter les conventions de format et de commenter son code de manière claire.
# nombre d'élèves au cours Data Science for Dummies
students = 27
# nombre d'absents au cours du lundi 12 février
didnotcome = 0
# division par zero
print(students / didnotcome) # oh non !
Les commentaires sont précédés d'un dièse.
À voir à la séance 2
booleen = True
toto = "Yey!"
tata = "Oh no!"
if booleen == True:
print(toto)
print(toto)
else:
print(tata)
À la semaine prochaine !