Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pourquoi Python ?
Search
Boris Feld
November 28, 2011
Programming
2
200
Pourquoi Python ?
Keynote d'ouverture de l'évènement "Vous reprendrez bien un peu de Python" à la Cantine.
Boris Feld
November 28, 2011
Tweet
Share
More Decks by Boris Feld
See All by Boris Feld
BALTO, ONE TEST OUTPUT FORMAT TO UNITE THEM ALL
lothiraldan
0
42
Une révolution dans le monde des tests
lothiraldan
0
230
Mercurial changeset Evolution
lothiraldan
0
160
Python Unicode and Bytes Demystified
lothiraldan
0
210
Django 101
lothiraldan
0
230
Saltpad: A saltstack Web GUI
lothiraldan
5
27k
Mock considered harmful
lothiraldan
2
700
from Sync to Async Python, a AsyncIO migration
lothiraldan
2
710
Microservices késako
lothiraldan
0
120
Other Decks in Programming
See All in Programming
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
3
1.1k
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
230
AWSマネコンに複数のアカウントで入れるようになりました
yuhta28
2
150
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
150
Package Traits
ikesyo
2
230
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.2k
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
0
150
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
500
SpringBoot3.4の構造化ログ #kanjava
irof
2
780
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
230
最近のVS Codeで気になるニュース 2025/01
74th
1
240
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
260
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
89
5.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Cult of Friendly URLs
andyhume
78
6.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
A Philosophy of Restraint
colly
203
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Six Lessons from altMBA
skipperchong
27
3.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Transcript
Pourquoi Python ? FELD Boris - 28 novembre 2011 La
Cantine
Qui suis-je ? Étudiant en école d’ingénieur (UTBM) En stage
Assurance-Qualité chez Dailymotion Développe en Python depuis 2 ans Twitter: @lothiraldan
Python késako ? Créé en 1990 par Guido Von Rossum
Nommé en hommage aux Monty Python 8ème langage le plus populaire selon le Tiobe Index 13 versions majeures de nos jours
Caractéristiques Typage fort Typage dynamique Byte-compilé
Python est utilisé Disqus Eve Online Mozilla (addons.mozilla.org) Inkspace De
nombreux outils que vous utilisez tous les jours.
1) La rapidité
Hello World JAVA public class HelloWorld { public static void
main(String[] args) { System.out.println("Goodbye, World!"); } }
Hello World C #include <stdlib.h> #include <stdio.h> int main(void) {
printf("Goodbye, World!\n"); return EXIT_SUCCESS; }
Hello World Python print "Goodbye, World!"
Lancer les exemples JAVA : $> javac HelloWorld.java $> java
HelloWorld C : $> gcc hello_world.c -o hello_world $> ./hello_world Python : $> python hello_world.py
Simple... Langage concis Permet un développement rapide Multi-paradigme
...mais pas simpliste Fonctionnalités avancées: Décorateurs Générateurs Listes compréhensives Descripteurs
Les truc vraiment cool Pas de gestion « à la
main » de la mémoire Des structures de données faciles à utiliser Introspection avancée
2) La syntaxe
Les types de base an_int = 42 a_float = 3.14
a_list = [1, 2, 3] a_dict = {'key1': 'value1', 'key2': 'value3'} a_complex = complex(1, 2) #Ou complex('1+2j')
L’indentation compte /* Warning: confusing C code! */ if (some
condition) if (another condition) do_something(fancy); else this_sucks(badluck); # Warning: awesome python if some condition: if another condition: do_something(fancy) else: this_dont_sucks(goodluck)
Fonctions def fib(n): if n < 2: return n else:
return fib(n-1) + fib(n-2) fib(10)
Classes class Message(object): def __init__(self, message = ‘’): self.message =
message def print_message(self): print self.message m = Message("Message example") m.print_message()
Import import math math.sqrt(9)
Structure de données a_list = [] a_number = 5 a_list.append(a_number)
another_number = a_list[0]
Syntaxe Une syntaxe simple à écrire et à LIRE L’indentation
obligatoire rend le code clair à écrire et surtout à lire Pas de points-virgules ni d’accolades Très proche du pseudo-code
3) La librairie standard
Types de données Structures de données Dates Chaînes et les
chaînes en unicode Les ensembles (au sens mathématique) Nombres complexes
Formats de fichiers La librairie standard permet de lire et
écrire des fichiers dans ces formats: JSON INI CSV XML HTML
Réseau/Internet Socket BSD Serveur HTML/CGI simple Gérer/Parser des requêtes HTTP
SMTP Client/Serveur XML-RPC
Outils Débogueur Profiling Librairie de Test Unitaires
Autre Cryptographie Compression Regex Sérialisation Encore plus ? http:/ /docs.python.org/
library/
4) Intuitif
Python est intuitif En python tout est objet... On encourage
une seule façon de faire... Et cela permet d’acquérir rapidement des réflexes de programmation.
Un langage objet file.readline() file.read(size) " abc ".strip()
Parcours d’une structure de données Liste: for elem in [1,
2, 3] Dictionnaire: for key in {‘key1’: ‘val1’, ‘key2’: ‘val2’} Chaîne: for letter in ‘mystring’
Longueur d’une structure de donnée Liste: len([1, 2, 3]) Dictionnaire:
len({‘key1’: ‘value1’, ‘key2’: ‘value’}) Chaîne: len(‘mystring’)
Vérifier si une valeur est présente Liste: 4 in [1,
2, 3] Dictionnaire: ‘key3’ in {‘key1’: ‘val1’, ‘key2’: ‘val’} Chaîne: ‘x’ in ‘string’
5) Extensibilité
Interpréteurs CPython, l’interpréteur de référence Jython IronPython PYPY compilateur JIT
Extensibilité Problèmes de performances: Écrivez des modules en C Besoin
d’interfacer python: Avec Java, utilisez Jython Avec .NET, utilisez IronPython
Conclusion C’est un véritable plaisir de coder en Python Donnez
lui sa chance Python vous rendra de grands services même en tant que langage de script
Demo time ! Récupérer le dernier tweet