Open In Colab

Données atomique, Variables, types, structure de données

Python typage dynamique

Le typage dynamique consiste à laisser le langage réaliser cette opération de typage « à la volée », lors de l'exécution du code.

Un langages statiquement typés demandent au programmeur de déclarer expressément, pour chaque variable qu'il introduit dans son code, son typage.

Le typage dynamique est une solution très commode pour le développement rapide de programmes, où le type des objets manipulés

  • n'est pas forcément connu à l'avance,
  • ou bien le programmeur veut permettre par commodité le changement de type d'une variable.

Les types de Python

  • numérique
  • string
  • booléen

Operateurs

  • Arithmétique: +, -, *, /, %, **, //
  • de comparaison: ==, !=, >, <, >=, <=
  • logique: and, or, not
  • d’identité entre objets: is, is not
  • d’appartenance: in, not in
  • binaire: &, |, ^, ~, <<, >>

Casting (pour changer de type)

  • int
  • float
  • str
  • bin
  • hex

Type numérique

  • int
  • float
  • complex
In [ ]:
y = 10
In [ ]:
# y -> str(y)
str(y)
Out[ ]:
'10'
In [ ]:
x = 3
print(type(x))
type(x)
<class 'int'>
Out[ ]:
int
In [ ]:
print(10, type(10),  '10', type('10'), "10", type("10"))
10 10
In [ ]:
# toujours x
x = 3.0
type(x)
Out[ ]:
float
In [ ]:
x = 'abc d'
type(x)
Out[ ]:
str
In [ ]:
z = 2 + 3j
type(z)
Out[ ]:
complex
In [ ]:
b = 0b0011
print(b)
3
In [ ]:
h = 0xff
print(h)
255
In [ ]:
ba = 0b1100
bb = 0b0011
#&     0000
#|     1111
#      0110
print(ba, bb, ba | bb, ba & bb, ba >> 1, bb << 1)
12 3 15 0 6 6

0123 << 1 => 1230

In [ ]:
coche1 = 0b101
coche2 = 0b001


cochecase1 = coche2 & 0b100
print(cochecase1)
0
In [ ]:
x = 7
print(bin(x), type(bin(x)))
0b111 <class 'str'>

Representation vs valeur

Ne pas confondre la représentation (un encodage) d'une valeur, le nom d'une valeur, la référence d'une valeur et la valeur.

les chaines de caractères (immutable)

soit ' soit "

sur plusieurs ligne on triple la quote ou double quote

In [ ]:
s = 'abcd'
st = "xyz"
In [ ]:
un_grand_texte = '''
Voici un texte
sur plisieurs lignes
   avec des tabulations
       ou autre chose ...
   bla bla
'''
In [ ]:
x = "x=\\blabla\\"
x
Out[ ]:
'x=\\blabla\\'
In [ ]:
un_grand_texte_bis = """
Voici un texte
sur plisieurs lignes
   avec des tabulations
       ou autre chose ...
   bla bla
"""
print(un_grand_texte_bis)
Voici un texte
sur plisieurs lignes
   avec des tabulations
       ou autre chose ...
   bla bla

In [ ]:
un_grand_texte_bis
Out[ ]:
'\nVoici un texte\nsur plisieurs lignes\n   avec des tabulations\n       ou autre chose ...\n   bla bla\n'

definir cette chaine : L'école

In [ ]:
un_grand_texte
Out[ ]:
'\nVoici un texte\nsur plisieurs lignes\n   avec des tabulations\n       ou autre chose ...\n   bla bla\n'
In [ ]:
print(un_grand_texte)
Voici un texte
sur plisieurs lignes
   avec des tabulations
       ou autre chose ...
   bla bla

In [ ]:
un_autre_grand_texte = """
Voici un texte
sur plisieurs lignes
   avec des tabulations
       ou autre chose ...
   bla bla
"""

Les booléens python entre C et Java

In [ ]:
# True et False type bool
print(True, False, type(True), type(False))
True False <class 'bool'> <class 'bool'>
In [ ]:
# Mais aussi comme en C, toute valeur non 0 est vraie et la valeur 0 est fausse
x = -10
if (x):
  print("OK")
else:
  print("KO")
OK
In [ ]:
print(True+False,type(True+False))
1 <class 'int'>