Mon prénom est Alysson, développeuse Python, Java et Javascript, amatrice de logiciel libre, GNU/Linux. Future diplômée de la HELHa, j'ai découvert le développement à l'âge de 14 ans avec le C que j'ai vite lâché pour Python peu de temps après.
Python 3.6.1 documentation
Je suis sur le point de terminer mes études d'ingénieur en informatique à l'INSA de Lyon. Actuellement, et jusqu'en septembre, j'effectue mon projet de fin d'études au laboratoire CITI, à Lyon, sur le thème des réseaux de capteurs sans fil.
J'aime automatiser des choses et participer à des projets innovants sur des systèmes distribués. J'ai une affection particulière pour le web, grâce à l'ouverture qu'il permet et à l'innovation qu'il entretient.
Pas à jour depuis mars 2015
Une base de données (database en anglais) est un conteneur dans lequel il est possible de stocker des données de façon structurée. Cette structure permet au programme informatique connectée à celle-ci de faire des recherches complexes.
SQLite
SQLite est une bibliothèque écrite en C. SQLite est parfait pour les petits projets. Sa particularité est d'être intégré directement à un programme et ne répond donc pas à la logique client-serveur. Il est le moteur de base de données le plus distribué au monde puiqu'il est intégré à de nombreux logiciels grand public comme FireFox, Skype, Adobe, etc. Le logiciel pèse moins de 300 ko et peut donc être intégré à des projets tournant sur de petites supports comme les smartphones. Souvent aucune installation n'est nécessaire pour l'utiliser.
De Sam sur Sam & Max via SebSauvage.
Je lis régulièrement des commentaires de batailles d’opinions sur le PEP8. Pas mal sont en fait dues à un manque de compréhension de son application. Je vais donc vous montrer des codes et les transformer pour qu’ils soient plus propre.
Rappelez-vous toujours que des recommandations stylistiques sont essentiellement arbitraires. Elles servent à avoir une base commune, et il n’y en pas de meilleures.
De Sam sur Sam & Max via SebSauvage.
Après 2 ans de Python 3 quasi-fulltime, je peux vous le dire, je ne veux plus coder en Python 2. Et on va voir pourquoi.
De Thuban
Après avoir perdu du temps avec GTK, je me suis tourné vers la bibliothèque Tk que j'avais pu croiser auparavant. Et aujourd'hui, je suis convaincu que c'est la plus adaptée à mes besoin, à la fois simple et puissante. Pour apprendre à programmer, elle est à mon avis la plus pratique.
Pourquoi TkInter me paraît être le meilleur choix ?
- Disponible pour python
- Léger et rapide.
- Bien pensé et permet de rapidement créer une interface graphique.
- Stable
- Multi-plateforme.
TP
Via Fabien sur D*
This project tries to provide a lot of piece of Python code that makes life easier.
Via son auteur : Stéphane Bausson sur D*
Electronic flora written in Python based on wxPython library
De Full Circle Magazine FR via Sandrine Marquis sur D*
Entre deux numéros, nous venons enfin de terminer la Collection Python, Vol. 1, qui comporte les 60 premiers articles de la série.
Sur Coursera par Bill Boyd de la Wesleyan University.
The goal of the course is to introduce students to Python Version 3.x programming using hands on instruction. It will show how to install Python and use the Spyder IDE (Integrated Development Environment) for writing and debugging programs. The approach will be to present an example followed by a small exercise where the learner tries something similar to solidify a concept. At the end of each module there will be an exercise where the student is required to write simple programs and submit them for grading. It is intended for students with little or no programming background, although students with such a background should be able to move forward at their preferred pace. The course is four modules long and is designed to be completed in four weeks.
Sur Real Python via Alatitude77 sur D*
- "Generators are functions that can be paused and resumed on the fly, returning an object that can be iterated over. Unlike lists, they are lazy and thus produce items one at a time and only when asked. So they are much more memory efficient when dealing with large datasets. This article details how to create generator functions and expressions as well as why you would want to use them in the first place."
De Entwanne sur Zeste de Savoir via Yax sur D*
Avez-vous déjà vu… un code pythonique ?
« Pythonique », c'est un terme que l'on rencontre souvent au sein d'articles ou sur des forums, pour qualifier un code Python bien conçu, un code idiomatique (en accord avec les règles d'usage du langage, et donc compréhensible par tout développeur).
Seulement, la distinction entre un bon code et un autre peut s'avérer floue, cet article a justement pour but de détailler les règles qui font qualifier un code de pythonique ou non.
Via Sebsauvage
Pyjobs est un projet libre initié par la société algoo (dont je suis le dirigeant) et qui a pour objectif de stimuler la mise en relation des professionnels python. La version initiale proposait simplement d'agréger les annonces pour des postes python à partir de différents jobboards.
Aujourd'hui, la plateforme propose les fonctionnalités suivantes :
- Agrégation d'annonces provenant de 10 jobboards (nous attendons vos contributions pour en ajouter des supplémentaires - c'est désormais relativement facile gràce aux outils en ligne de commande et aux sélecteurs CSS)
- Proposition de statistiques sur les annonces publiées sur les 4 derniers mois
- Flux RSS "complet" (détail des annonces dans le flux, pas juste les titres comme ça se fait souvent)
- Fil twitter pour ne plus louper aucune opportunité
- Publication sur github des annonces
- Recherche des opportunités par mote-clés et par géolocalisation
- Annuaire des entreprises qui recrutent en python et recherche géo-localisée
Sur nvie.com.
- "One of my top favorite features of the Python programming language is generators. They are so useful, yet I don't encounter them often enough when reading open source code. In this post I hope to outline their simplest use case and hope to encourage any readers to use them more often."
"we're all consenting adults here"
Un objet est une structure de données, comme les variables, qui peut contenir elle-même d'autres variables et fonctions.
En python tout est objet.
Notes | |
---|---|
Opérateur | + - * / |
Modulo : reste d'une division | % |
Part entière d'une division | // |
Opérateur de comparaison | < > <= >= == != |
Types de données | int, float, srting, bool |
Mots-clef | and, or, not, is |
Mots-clef(2) | break, continue |
Booléens | True, False |
Échappement | \ |
Saut à la ligne | \n |
Incrémentation | += |
Permutation | a,b = b,a |
Déclaration simultanée | x = y = 3 |
Commentaire | # |
Chemin en 1<sup>ère</sup> ligne de code | #!/usr/bin/python3.4 |
Encodage | # --coding:utf-8 - |
Concaténation | + |
sequence[0] | Index 0 de la sequence |
sequence[x:] | De x à la fin de la sequence |
sequence[:x] | Du début de la sequence à x |
del | Supprime une variable, ou les éléments d'une sequence |
Notes générales | |
---|---|
Terminal -> interpréteur | python3.4 |
Lancer un script | python ./fichier.py |
- Un nombre décimal s'écrit avec un "."
- Un prédicat est une condition simple dont la valeur est vraie ou fausse
- L'indentation prend toujour 4 espaces
- if element in sequence:
- Une fonction définie dans une classe est appelée méthode : objet.methode()
- Un objet est issu d'une classe
- La classe est une forme de type de donnée, sauf qu'elle permet de définir des fonctions et variables propres au type
- Le point "." symbolise une relation d'appartenance
- objet.methode(arguments)
- ma_liste = list() ou ma_liste = []
- Les méthodes de chaînes, où l'objet d'origine n'est jamais modifié et qui renvoient un nouvel objet . Les méthodes de listes, qui ne renvoient rien mais modifient l'objet d'origine.
Fonction | |
---|---|
Définition | Succession d'instruction pré-enregistré |
Exemple | def fonction(parametre1, parametre2): |
Documentation | """docstring""" |
Pour afficher la docstring | help(fonction) |
return | renvoie la valeur et arrête le déroulement de la fonction |
Fonction lambda | lambda argument: instruction |
Exemple | f = lambda x: x * x |
Fonction prédéfinies | |
---|---|
type() | Retourne le type de la variable |
print() | Retourne un affichage console |
input() | Receptionne une réponse utilisateur |
int() | Définie comme étant un integer |
str() | Définie comme étant une string |
len() | Renvoie la longueur d'une sequence |
Méthode partie 1 | Methodes de la classe str |
.lower() | Change la case en minuscule |
.upper() | Met tout en majuscule |
.capitalize() | La 1ère lettre en majuscule |
.strip() | Retire les espaces en début et fin de chaîne |
.center(x) | Centre la chaîne au milieu de x |
.format(x) | Formatage de chaîne avec des variables |
count() | Compter |
find() | Rechercher |
replace() | Remplacer |
Méthode partie 2 | Methodes de la classe list |
.append(x) | Ajoute x à la fin de la liste |
.insert(x, y) | On insere y à l'indice x |
y.extend(x) | On concatène la liste x à la liste y (alternative +=) |
y.remove(x) | Supprime les éléments (pas par l'indice !) x de la liste y |
- print("Je m'appelle {0} {1} et j'ai {2} ans.".format(prenom, nom, age))
- adresse = """
{no_rue}, {nom_rue}
{code_postal} {nom_ville} ({pays})
""".format(no_rue=5, nom_rue="rue des Postes", code_postal=75003, nom_ville="Paris", pays="France")
Structure conditionelle | Boucle "while" | Boucle "for" |
---|---|---|
if condition: | while condition: | for element in sequence: |
elif condition: | ....incrémentation | |
else: |
Module | import |
---|---|
Note : documentation | help("module") |
Note : navigation | |
Retour interpréteur | Q |
Avancer d'une page | espace |
Avancer d'une ligne | entrée |
fichier.pyc dans le dossier _pycache_ | Fichier généré par Python contenant le code "compilé" du module |
if _name_ == "_main_": | Si la condition est True vous pouvez mettre un code qui sera exécuté si le fichier est lancé directement comme un exécutable |
from module import fonction | from module import * |
Espace de noms | import module as nom |
Mathématiques | math |
Racine carré | .sqrt() |
Arrondi au superieur | ceil() |
os (windows) | .system("pause") |
Aléatoire | random |
[0, x[ | randrange(x) |
[x, y[ | randrange(x, y) |
Exception | |
---|---|
try: | Bloc de test |
except NameError: | Une variable n'a pas été définie |
except TypeError: | Une erreur de type |
except ZeroDivisionError: | Division par zéro |
except type_de_l_exception as exception_retournee: | |
else: | Exécute une action si aucune erreur ne survient dans le bloc |
finally: | Exécute une action quelle que soit le résultat de l'exécution |
....pass | Permet de passer outre l'erreur |
....assert | Moyen de s'assurer, avant de continuer, qu'une condition est respectée |
....raise TypeDeLException("message à afficher") |
Sur OC
- "Tkinter (Tk interface) est un module intégré à la bibliothèque standard de Python, bien qu'il ne soit pas maintenu directement par les développeurs de Python. Il offre un moyen de créer des interfaces graphiques via Python."