# Syntaxe de python
# M2105



# variables : id
x = 0
b = True
chaine = "Bonjour"


# Types et opérateurs :
# deux types numériques : les entiers et les flottants
x = x + 2 * 3 / 7

# booléens et opérateurs not, or et and
b = not (True or False) and b

# L'opérateur de concaténation de chaines est le '+'
chaine = chaine + " à tous"

# La fonction d'affichage print
print("<p>" + chaine + "</p>")

####################################
#       Conditionnelles            #
####################################

# Pas de 'then' mais un ':'
# l'indentation délimite les blocs
if b:
    x = x+1
else:
    x = x-1


###################################
#          Itérations             #
###################################
# Itérations non bornées
while b:
    b = false

# Itérations bornées
for i in range(1,17):
    # i va parcourir 1 à 16
    # mais pas 17
    print(i)


#########################################
#           Tableaux (arrays)           #
#########################################
# initialisation
t = []
u = [7, 10, 33]

# ajout
t.append(True)
t.append(True)

# cases numérotées à partir de 0
t[0] = False
t[1] = True
print(t[0])
print(len(t)) #le nombre de cases de t

# parcours d'un tableau avec for
for i in range(len(t)):
    print("La case " + i + " vaut " + t[i])


########################################
#              Fonctions               #
########################################
# Définition de fonction
def nomDeFonction(a, b):
    #             ^  ^
    #             `--`-- paramètres formels
    x = a + b
    return x


# Appel de fonction
z = nomDeFonction(7, 12)

########################################
#       Tableaux associatifs           #
#           (Hashtables)               #
########################################
# Déclaration
d = {}
dictionnaire = {
    "alpha" : 1,
    "beta"  : 2,
    "omega" : 23,
}

# remplissage
d["true"] = false;
d["alpha"] = "omega";

# accès
chose = dictionnaire["alpha"]
truc  = dictionnaire["beta"]

# Savoir si une case est définie : in
if "gamma" in dictionnaire:
    # dictionnaire possède bien un case gamma
    print(dictionnaire["gamma"])
else:
    # dictionnaire n'a pas de case gamma. Créons en une
    dictionnaire["gamma"] = 33


# parcours d'un tableau associatif
for cle in dictionnaire:
    # cle va parcourir les clefs du tableau associatif
    print("Dictionnaire " + cle + " -> " + dictionnaire[cle])