PYTHON - Les bases : Différence entre versions

De PedroWiki
(Liens utiles)
 
(22 révisions intermédiaires par le même utilisateur non affichées)
Ligne 8 : Ligne 8 :
 
* [https://www.python.org/about/gettingstarted/ Python pour les débutants].
 
* [https://www.python.org/about/gettingstarted/ Python pour les débutants].
 
* [https://www.learnpython.org/ Learn Python].
 
* [https://www.learnpython.org/ Learn Python].
 +
* [https://github.com/gto76/python-cheatsheet Python CheatSheet].
 +
* [https://pythontutor.com/ Python Tutor].
 +
* [https://futurecoder.io/ Future Coder].
  
 
= Généralités =
 
= Généralités =
Ligne 15 : Ligne 18 :
 
* Pas de déclaration des variables nécessaire.
 
* Pas de déclaration des variables nécessaire.
 
* Indentation "standard" python: 4 espaces.
 
* Indentation "standard" python: 4 espaces.
 +
* Indentation importante pour l'évaluation des boucles, besoin d'une indentation cohérente.
  
 
= Le couteau suisse: Print =
 
= Le couteau suisse: Print =
Ligne 49 : Ligne 53 :
  
 
== Chaînes de caractères / strings ==
 
== Chaînes de caractères / strings ==
 +
 +
=== Généralités ===
  
 
* Délimitées par des simples quotes ' ou des doubles quotes ".
 
* Délimitées par des simples quotes ' ou des doubles quotes ".
 
* L'utilité des doubles quotes est de pouvoir inclure des apostrophes dans ses chaînes.
 
* L'utilité des doubles quotes est de pouvoir inclure des apostrophes dans ses chaînes.
 +
* Les chaînes sont "immutables" (par leurs méthodes). Il faut assigner le retour des méthodes à des variables intermédiaires.
 +
 +
=== Opérateurs ===
 +
 +
* On peut utiliser l'opérateur '''+''' pour concaténer des chaines.
 +
 +
string = "Hello" + " " + "world"
 +
 +
* On peut utiliser l'opérateur '''*''' pour "multiplier" une chaîne.
 +
 +
string = "Hello" * 5
 +
 +
=== Formatage ===
 +
 +
* Python utilise une syntaxe de formatage de chaînes de caractère similaire à celle du langage C, pour générer de nouvelles chaînes basées sur:
 +
** Une chaîne de formatage, mélangeant du texte et des spécifieurs d'arguments (%s, %d...)
 +
** Un opérateur '''%''' qui va instancier les variables d'un tuple à la place des spécifieux d'arguments.
 +
 +
nom = "Jules"
 +
age = 46
 +
print("Hello %s!" % nom)
 +
print("Are we sure %s is %d?" % (nom,age))
 +
 +
* '''NB:''' on peut utiliser le spécifieur %s sur un object de type liste. L'affichage fait alors appel à la méthode repr de l'objet liste pour l'afficher sous forme de chaine.
 +
 +
myList = [1,2]
 +
print("Ma liste: %s" % myList)
 +
 +
* les spécifieurs d'arguments les plus basiques sont:
 +
** '''%s''': Une chaîne ou n'importe quel objet ayant une représentation de type chaîne.
 +
** '''%d''': Un entier.
 +
** '''%f''': Un flottant.
 +
** '''%.<number of digits>f''': Un flottant avec un nombre fixe de chiffres après la virgule.
 +
** '''%x/%X''': Représentation Hexadécimale d'un entier (minuscule/majuscule).
 +
 +
=== Méthodes ===
 +
 +
Les objects strings embarquent des méthodes:
 +
 +
machaine.upper()
 +
machaine.lower()
  
 
== Nombres ==
 
== Nombres ==
Ligne 66 : Ligne 113 :
 
  print(number2)
 
  print(number2)
 
  print(number3)
 
  print(number3)
 +
 +
= Structures de données =
 +
 +
== Listes ==
 +
 +
<u>Généralités:</u>
 +
* Les listes sont assez similaire à des tableaux.
 +
* Les listes peuvent contenir tout type de variable.
 +
* Les listes peuvent contenir autant d'item qu'on le souhaite.
 +
* L'accès à un index qui n'existe pas provoque une erreur/une exception.
 +
* On peut utiliser l'opérateur '''+''' pour concaténer 2 listes.
 +
 +
list1 = [1,2,3]
 +
list2 = [4,5,6]
 +
print(list1 + list2)
 +
 +
* On peut utiliser l'opérateur '''*''' pour "multiplier" une liste.
 +
 +
list = [1,2,3]
 +
print(list * 3)
 +
 +
<u>Syntaxe:</u>
 +
 +
Initialisation:
 +
AList = []
 +
ou
 +
AList = [1,2,3]
 +
 +
Méthode d'ajout d'un élément dans la liste:
 +
AList.append(<element>)
 +
 +
Accès à un élément:
 +
print(AList[0])
 +
 +
Exception sur accès à un index inexistant:
 +
IndexError: list index out of range
 +
 +
Longueur d'une liste:
 +
len(AList)
 +
 +
Méthode de comptage d'occurence d'un élément dans une liste:
 +
x = object()
 +
x_list = [x] * 10
 +
if x_list.count(x) == 10:
 +
    print("La liste contient 10 éléments x")
  
 
= Operators =
 
= Operators =
Ligne 99 : Ligne 191 :
  
 
* Opérateur: '''and'''
 
* Opérateur: '''and'''
 +
 +
== Opérateurs arithmétiques ==
 +
 +
* Somme: '''+'''
 +
 +
number = 1 + 2
 +
 +
* Produit: '''*'''
 +
 +
number = 2 * 3
 +
 +
* Puissance/power: '''**'''
 +
 +
number = 2 ** 3
 +
 +
* Division: '''/'''
 +
 +
number = 4 / 2
 +
 +
* [https://fr.wikipedia.org/wiki/Modulo_(op%C3%A9ration) Modulo]: '''%'''
 +
 +
number = 11 % 3
 +
 +
* '''ATTENTION:''' ces opérateurs ont une priorité d'évaluation entre eux.
  
 
= Structures de contrôle =
 
= Structures de contrôle =
Ligne 106 : Ligne 222 :
 
<u>Usage:</u>
 
<u>Usage:</u>
 
  if (condition):
 
  if (condition):
     action
+
     action1
 +
else:
 +
    action2
 +
 
 +
ou
 +
 
 +
if (condition):
 +
    action1
 +
elif condition2:
 +
    action2
 +
...
 +
else:
 +
    default_action
  
 
<u>Example:</u>
 
<u>Example:</u>
Ligne 116 : Ligne 244 :
 
  if isinstance(numVar, int) and numVar == 3:
 
  if isinstance(numVar, int) and numVar == 3:
 
     print("Valeur numérique: %d" % numVar)
 
     print("Valeur numérique: %d" % numVar)
 +
 +
== For ==
 +
 +
<u>Usage:</u>
 +
for x in <values>:
 +
    print x
 +
 +
<u>Example:</u>
 +
AList = []
 +
AList.append(1)
 +
AList.append(2)
 +
AList.append(3)
 +
for x in AList:
 +
    print(x)
 +
 +
[[Category:Python]]
 +
[[Category:Language]]
 +
[[Category:Scripting]]
 +
[[Category:Devops]]

Version actuelle datée du 25 juin 2024 à 15:45

Introduction

Cet article sert de bloc note lors de mon apprentissage du langage Python. Il a plus vocation à être un pense bête qu'un vrai support de formation.

Liens utiles

Généralités

  • Langage fortement objet.
  • Non typé.
  • Pas de déclaration des variables nécessaire.
  • Indentation "standard" python: 4 espaces.
  • Indentation importante pour l'évaluation des boucles, besoin d'une indentation cohérente.

Le couteau suisse: Print

  • La BASE: Commande d'affichage.

Usage:

print("chaine de caractère")

ou

print(variable)
  • Affichage d'une variable en forçant le type:

Usage:

stringVar = "toto"
print("String: %s" % stringVar)
intVar = 1
print("Int: %d" % intVar)
floatVar = 15.0
print("Float: %f" % floatVar)

Variables

Affectation

Simple:

myvar = value
print(myvar)

Multiple:

varA, varB = 1, 2
print(varA)
print(varB)

Chaînes de caractères / strings

Généralités

  • Délimitées par des simples quotes ' ou des doubles quotes ".
  • L'utilité des doubles quotes est de pouvoir inclure des apostrophes dans ses chaînes.
  • Les chaînes sont "immutables" (par leurs méthodes). Il faut assigner le retour des méthodes à des variables intermédiaires.

Opérateurs

  • On peut utiliser l'opérateur + pour concaténer des chaines.
string = "Hello" + " " + "world"
  • On peut utiliser l'opérateur * pour "multiplier" une chaîne.
string = "Hello" * 5

Formatage

  • Python utilise une syntaxe de formatage de chaînes de caractère similaire à celle du langage C, pour générer de nouvelles chaînes basées sur:
    • Une chaîne de formatage, mélangeant du texte et des spécifieurs d'arguments (%s, %d...)
    • Un opérateur % qui va instancier les variables d'un tuple à la place des spécifieux d'arguments.
nom = "Jules"
age = 46
print("Hello %s!" % nom)
print("Are we sure %s is %d?" % (nom,age))
  • NB: on peut utiliser le spécifieur %s sur un object de type liste. L'affichage fait alors appel à la méthode repr de l'objet liste pour l'afficher sous forme de chaine.
myList = [1,2]
print("Ma liste: %s" % myList)
  • les spécifieurs d'arguments les plus basiques sont:
    • %s: Une chaîne ou n'importe quel objet ayant une représentation de type chaîne.
    • %d: Un entier.
    • %f: Un flottant.
    • %.<number of digits>f: Un flottant avec un nombre fixe de chiffres après la virgule.
    • %x/%X: Représentation Hexadécimale d'un entier (minuscule/majuscule).

Méthodes

Les objects strings embarquent des méthodes:

machaine.upper()
machaine.lower()

Nombres

Integers

number1 = 1
print(number1)

Floats

number2 = float(7)
number3 = 7.2
print(number2)
print(number3)

Structures de données

Listes

Généralités:

  • Les listes sont assez similaire à des tableaux.
  • Les listes peuvent contenir tout type de variable.
  • Les listes peuvent contenir autant d'item qu'on le souhaite.
  • L'accès à un index qui n'existe pas provoque une erreur/une exception.
  • On peut utiliser l'opérateur + pour concaténer 2 listes.
list1 = [1,2,3]
list2 = [4,5,6]
print(list1 + list2)
  • On peut utiliser l'opérateur * pour "multiplier" une liste.
list = [1,2,3]
print(list * 3)

Syntaxe:

Initialisation:

AList = []

ou

AList = [1,2,3]

Méthode d'ajout d'un élément dans la liste:

AList.append(<element>)

Accès à un élément:

print(AList[0])

Exception sur accès à un index inexistant:

IndexError: list index out of range

Longueur d'une liste:

len(AList)

Méthode de comptage d'occurence d'un élément dans une liste:

x = object()
x_list = [x] * 10
if x_list.count(x) == 10:
   print("La liste contient 10 éléments x")

Operators

Comparaison

  • Opérateur: ==

Sum / Concatenation

  • Opérateur: +

Example:

one = 1
two = 2
three = one + two
print(three)

ou

str1 = "Hello"
str2 = "World"
strFull = str1 + " " + str2
print(strFull)
  • ATTENTION cela implique qu'on ne peut pas mélanger les variables numbers et strings lors de l'usage de cet opérateur.

Example non fonctionnel:

one = 1
two = 2
string = "chaine"
print(one + two + string)

Logical AND

  • Opérateur: and

Opérateurs arithmétiques

  • Somme: +
number = 1 + 2
  • Produit: *
number = 2 * 3
  • Puissance/power: **
number = 2 ** 3
  • Division: /
number = 4 / 2
number = 11 % 3
  • ATTENTION: ces opérateurs ont une priorité d'évaluation entre eux.

Structures de contrôle

If

Usage:

if (condition):
    action1
else:
    action2

ou

if (condition):
    action1
elif condition2:
    action2
...
else:
   default_action

Example:

if stringVar == "Value":
    print("Chaine: %s" % stringVar)

Conditions multiples:

numVar = 3
if isinstance(numVar, int) and numVar == 3:
    print("Valeur numérique: %d" % numVar)

For

Usage:

for x in <values>:
    print x

Example:

AList = []
AList.append(1)
AList.append(2)
AList.append(3)
for x in AList:
    print(x)