Le guide ultime du débutant Python

30 octobre 2021

Table des matières

  • Configuration de l'environnement
    • Configuration de l'environnement local
    • Comment obtenir Python
    • Comment installer Python
    • Installation de Windows
    • Installation Unix/Linux
    • Installation MAC
    • Configuration de Path pour Python
    • Définition du chemin pour Unix/Linux
    • Définition du chemin pour Windows
  • Variables d'environnement Python
    • Exécuter Python
  • Syntaxe de base
    • Identificateurs Python
    • Déclaration Python
    • Indentations en Python
    • Commentaires en Python
    • Obtenir des commentaires
    • Afficher la sortie
  • Types de variables
    • Affectation de valeurs aux variables
    • Types de données Python
    • Cordes
    • Tuples
    • Listes
    • Nombres
  • Opérateurs de base
    • Opérateur d'assignation
    • Opérateur au niveau du bit
    • Opérateur logique
    • Opérateur arithmétique
    • Opérateur de comparaison
    • Opérateur d'identité
    • Opérateur d'adhésion
  • La prise de décision
    • Si déclaration
    • sinon
    • Imbriqué si
    • Si-elif-else-échelle
    • Raccourci si déclaration
    • Instruction if-else abrégée
  • Boucles
    • Pendant que la boucle
    • Pour la boucle
    • Boucles imbriquées
    • Instructions de contrôle de boucle
    • Continuer la déclaration
    • Déclaration de rupture
    • Déclaration de réussite
  • Nombres
    • Conversion de type de nombre
    • Fonctions de nombres aléatoires
    • Fonctions trigonométriques
    • Fonctions mathématiques
  • Cordes
    • Création d'une chaîne
    • Opérateurs spéciaux de chaîne
    • Opérateurs de formatage de chaîne
    • Caractères d'échappement
    • Méthodes de chaîne intégrées
  • Tuples
    • Accéder aux valeurs dans les tuples
    • Mise à jour des tuples
    • Opérateurs Tuple de base
    • Fonctions Tuple intégrées
    • Indexation et découpage
    • Suppression d'un tuple
  • Listes
    • Accéder aux valeurs dans les listes
    • Mise à jour des listes
    • Opérateurs de liste de base
    • Fonctions et méthodes de liste intégrées
    • Indexation et découpage
    • Supprimer l'élément Listes
  • dictionnaire
    • Création d'un dictionnaire
    • Ajouter des éléments dans un dictionnaire
    • Suppression d'éléments du dictionnaire
    • Méthodes du dictionnaire Python
  • Date et l'heure
    • Tuple de temps
    • Module de temps
    • Module Calendrier
  • Les fonctions
    • Comment définir une fonction
    • Appel d'une fonction
    • Passer par référence
    • Passer par valeur
    • Arguments de la fonction
    • Arguments de longueur variable
    • Arguments requis
    • Arguments par défaut
    • Arguments de mots clés
    • Fonctions anonymes
  • Modules
    • Déclaration d'importation
    • L'instruction from import
    • La déclaration d'importation *
    • Localisation des modules
    • Les fonctions locals() et globals()
    • Espaces de noms et portée
    • La fonction dir( )
    • La fonction recharge()
  • Fichiers E/S
    • Ouverture d'un dossier
    • Attributs d'objet de fichier
    • Fermeture d'un dossier
    • Avec déclaration
    • La méthode Write
    • La méthode de lecture
    • La méthode renommer()
    • La méthode remove()
    • Emplacement du fichier
  • Des exceptions
    • Qu'est-ce qu'une exception ?
    • Gérer une exception
    • Lever une exception
    • Liste des exceptions standard
    • Exceptions définies par l'utilisateur
    • Assertions en Python
  • Classes et objets
    • Création de cours
    • Objets de classe
    • Accéder aux attributs
    • Attributs de classe intégrés
    • Collecte des ordures
    • Héritage de classe
    • Remplacer les méthodes
    • Expressions régulières
    • Fonction de correspondance
    • Fonction de recherche
    • Modificateurs d'expression régulière
    • Modèles d'expressions régulières
    • Classes de personnages
    • Cas de répétition
    • Ancres
  • Programmation CGI
    • Navigation sur le Web
    • En-tête HTTP
    • Variables d'environnement CGI
    • Méthode GET
    • Méthode POST
    • Utilisation de cookies dans CGI
    • Comment ça marche?
  • Accès à la base de données MySQL
    • Création d'une table de base de données
    • INSÉRER Opération
    • LIRE Opération
    • Opération de mise à jour
    • Opération SUPPRIMER
    • Effectuer des transactions
    • Opération COMMIT
    • Opération ROLLBACK
    • Déconnexion de la base de données
    • Gestion des erreurs
  • Réseaux
  • Envoi d'e-mail
  • Programmation multithread
  • Traitement XML
    • Qu'est-ce que XML ?
    • Architectures et API d'analyseurs XML
    • Analyse XML avec les API SAX
      • La méthode make_parser
      • La méthode d'analyse
      • La méthode parseString
  • Programmation de l'interface graphique
    • Widgets Tkinter
  • Gestion de la géométrie
  • Articles recommandés

Réseaux

Python offre deux niveaux d'accès aux services réseau. Au niveau inférieur, vous pouvez accéder à la prise en charge de base des sockets dans le système d'exploitation, ce qui vous permet d'implémenter des serveurs et des clients pour les protocoles orientés connexion et sans connexion.

Python possède des bibliothèques qui fournissent un accès de niveau supérieur aux protocoles réseau au niveau de l'application tels que FTP, HTTP, etc.



Que sont les sockets ?

Les sockets sont les extrémités d'un canal de communication. Il peut communiquer au sein d'un processus, entre processus ou entre opérations sur différents continents.

Les sockets peuvent être implémentés sur plusieurs types de canaux différents : UDP, TCP, etc. le prise offre une classe spécifique pour gérer les transports standard ainsi qu'une interface générique pour contrôler le reste.

Oui Non Terme La description
un taperLa communication entre les deux points de terminaison SOCK_DGRAM pour les protocoles sans connexion et SOCK_STREAM pour les protocoles orientés connexion.
deux DomaineLes protocoles utilisés comme mécanisme de transport. Ces valeurs sont des constantes, comme AF_INET, PF_INET, PF_UNIX, PF_X25, etc.
3 PortLe serveur écoute les clients appelant sur un ou plusieurs ports. Un port peut être un numéro de port Fixnum, une chaîne contenant un numéro de port.
4hostnameUne chaîne peut être un nom d'hôte, un IPV6 adresse dans les deux-points ou un quadrilatère pointé addressUne chaîne qui spécifie une adresse INADDR_BROADCAST.Une chaîne de longueur nulle qui spécifie INADDR_ANYUn entier qui est interprété comme une adresse binaire dans l'ordre des octets de l'hôte.
5 protocoleGénéralement zéro, il peut être utilisé pour identifier une variante d'un protocole dans un domaine et un type.

le prise Module

Vous devez utiliser le socket.socket() pour créer une prise.

s = socket.socket (socket_family, socket_type, protocol=0)

Oui Non Méthode La description
un s.écouter()Il configure et démarre un écouteur TCP.
deux s.bind()Il lie l'adresse (nom d'hôte, paire de numéros de port) à socket.
3 s.connect()Il initie activement la connexion au serveur TCP.
4 s. accepter ()Il accepte passivement les connexions client TCP, attendant l'arrivée de la connexion (bloquant).
5s.recv() Il reçoit Message TCP 6 s.close() Il ferme le socket sept s.sendto() Il transmet UDP message 8 s.recvfrom() Il reçoit le message UDP 9 socket.gethostname() Il renvoie le nom d'hôte.
dix envoyer()Il transmet un message TCP

Modules Internet Python

Oui Non Protocole Fonction commune N° de port Module Python
un GopherTransferts de documents70gopherlib, urllib
deux FTPTransferts de fichiersvingtftplib, URL
3 POP3Récupération des e-mails110poplib
4 TelnetLignes de commande23telnetlib
5 IMAP4Récupération des e-mails143imaplib
6 HTTPles pages Web80httplib, urllib, xmlrpclib
sept NNTPNouvelles Usenet119nntplib
8 SMTPEnvoi d'e-mail25smtplib

Envoi d'e-mail

SMTP (Simple Mail Transfer Protocol) est un protocole qui gère l'envoi d'e-mails de routage et d'e-mails entre serveurs de messagerie.

Python propose le module smtplib, qui définit un objet de session client SMTP utilisé pour envoyer du courrier à la machine Internet avec un démon d'écoute ESMTP ou SMTP.

SYNTAXE

|__+_|

Quelques détails sur les paramètres −

  • host − C'est l'hôte qui exécute votre serveur SMTP. Vous pouvez spécifier l'adresse IP du nom de domaine ou d'un hôte.
  • port − Si vous proposez un argument hôte, vous devez spécifier un port sur lequel le serveur SMTP écoute.
  • local_hostname - Si le serveur SMTP s'exécute sur la machine locale, vous pouvez spécifier uniquement l'hôte local comme option.

L'objet SMTP a une méthode d'instance connue sous le nom de sendmail, qui est utilisée pour effectuer le travail d'envoi d'un message. Il a trois paramètres -

  • L'expéditeur - La chaîne avec l'adresse de l'expéditeur.
  • Les destinataires − La liste des chaînes, une pour chaque destinataire.
  • Le message - Le message sous la forme d'une chaîne formatée comme spécifié dans les diverses RFC.

Envoi d'un e-mail HTML avec Python

Lorsque vous envoyez un message texte en utilisant Python, le contenu est traité comme un simple texte. Si vous incluez des balises HTML dans un message texte, celui-ci s'affiche sous forme de balises HTML simples et le texte n'est pas formaté selon la syntaxe HTML. Python vous offre la possibilité d'envoyer un message HTML sous la forme d'un message HTML réel.

Lors de l'envoi de l'e-mail, vous pouvez spécifier une version Mime, un type de contenu et un jeu de caractères pour envoyer un e-mail HTML.

Envoi de pièces jointes par e-mail

Si vous souhaitez envoyer un e-mail avec un contenu mixte, vous devez définir l'en-tête de type de contenu sur multipart/mixed. Les sections de texte et de pièces jointes peuvent être spécifiées dans des limites.

Une limite est commencée entre deux traits d'union suivis du numéro unique, qui ne peut pas apparaître dans la partie message d'un e-mail. Un bord final qui indique la dernière section de l'e-mail doit également se terminer par deux traits d'union. Les fichiers joints sont encodés avec la fonction pack(m) pour avoir un encodage base64 avant transmission.

Programmation multithread

L'exécution de divers threads est similaire à l'exécution de différents programmes.

  • Plusieurs threads d'un processus partagent le même espace de données avec un thread principal et partagent des informations entre eux plus rapidement que s'il s'agissait de processus séparés.
  • Les threads sont parfois connus comme des processus légers et ne nécessitent pas beaucoup de mémoire. Ils sont moins chers que les méthodes.

Un thread se compose d'un début, d'une séquence d'exécution et d'une conclusion. Il a un pointeur d'instruction qui garde une trace où le contexte est en cours d'exécution.

  • Il peut être interrompu.
  • Il peut être temporairement mis en attente pendant que d'autres threads sont en cours d'exécution - c'est ce qu'on appelle céder.

Commencer un nouveau fil

Pour générer un thread différent, vous devez appeler la méthode suivante qui est disponible dans le module thread -

thread.start_new_thread ( fonction, args[, kwargs] )

Cette méthode offre un moyen rapide et efficace de créer de nouveaux threads à la fois sous Windows et sous Linux. Il revient immédiatement et le thread enfant démarre et appelle la fonction avec la liste d'arguments transmise. Lorsque la fonction revient, le thread se termine.

Ici, l'argument est un tuple d'arguments qui utilise un tuple vide pour appeler la fonction sans passer les arguments.

Le module de filetage

Le nouveau module de threading de Python 2.4 fournit une prise en charge des threads plus puissante et de haut niveau que le module de thread de la section précédente.

Le module threading expose les méthodes du module thread et fournit quelques techniques supplémentaires

    threading.activeCount()− Il renvoie plusieurs objets threads qui sont actifs.threading.currentThread()− Il renvoie plusieurs objets threads dans le contrôle de thread de l'appelant.threading.enumerate()− Il retourne la liste des objets threads qui sont actuellement actifs.Cours()− C'est le point d'entrée d'un thread.début()− Il démarre un thread en appelant la méthode run.rejoindre ([heure])− Il attend que les threads se terminent.est vivant()− Il vérifie si un thread est toujours en cours d'exécution.obtenirNom()− Il renvoie le nom d'un thread.setName()− Il définit le nom d'un fil.

Synchronisation des threads

Un module de threading fourni avec Python inclut un mécanisme de verrouillage qui vous aide à synchroniser les threads. Un nouveau verrou est créé en appelant le verrouiller () méthode, et il renvoie le nouveau verrou.

le blocage La méthode de l'objet de verrouillage est utilisée pour forcer les threads à s'exécuter. le blocage Le paramètre vous permet de contrôler le thread qui attend pour acquérir le verrou.

Si la blocage est mis à 0, le thread retourne immédiatement avec une valeur 0 si un verrou ne peut pas être acquis et avec un 1 si le verrou a été acquis.

le Libération() La méthode du verrou est utilisée pour libérer le verrou lorsqu'il n'est plus nécessaire.

File d'attente prioritaire multithread

Le module File d'attente vous aide à créer un nouvel objet file d'attente contenant un nombre spécifique d'éléments. Ce sont les méthodes suivantes pour contrôler la file d'attente -

    avoir()− Il supprime et renvoie l'élément de la file d'attente.mettre()− Il ajoute l'élément à la file d'attente.qtaille()− Il renvoie plusieurs éléments qui sont actuellement dans la file d'attente.vide()− Il renvoie True si la file d'attente est vide. Faux sinon.complet()− Il renvoie True si la file d'attente est pleine ; sinon, Faux.