Bases syntaxiques de Python#

print('hello world!')
hello world!
import sys
print(sys.version)
3.9.13 (main, Jul 22 2022, 09:23:34) 
[GCC 9.4.0]
world = "world"
# Utilisez une interpolation pour afficher le contenu de la variable world dans la String "hello ___!"

# Le code ci-dessous est valide, l'erreur est uniquement liée à Jupyter Notebook.
# world = input('hello ?')
print(f'hello {world} !')
hello world !

Types#

## Affichez les types (fonction type()) de : 8, "test", [], {}

print("type de 8 :", type(8))
print("type de \"test\" :", type("test"))
print("type de [] :", type([]))
print("type de {} :", type({}))
type de 8 : <class 'int'>
type de "test" : <class 'str'>
type de [] : <class 'list'>
type de {} : <class 'dict'>

Conditions#

import random
num = random.randint(0, 100)
# Ecrivez une condition permettant d'afficher si num est inférieur à 50, inférieur à 75 ou à défaut, affichez num. 

if num < 50:
    print("num est inférieur a 50")
elif num < 75:
    print("num est inférieur a 75")
else : print(num)
95

Fonctions#

# Ecrivez une fonction simple imprimant "hello user, votre role est X"
# user et role sont des paramètres de la fonction. 
# Utilisez deux manières différentes de transmettre les paramètres. 

def greetingsv1(user, role) :
    print(f"hello {user}, votre role est {role}")
    
user = "esteban"
role = "etudiant"
greetingsv1(user, role)
        
# Modifiez cette fonction pour qu'elle retourne sa sortie plutot que de l'afficher directement.
# Faites en sorte que le role par défaut soit "user"
    
def greetingsv2(user, role = "user") :
    return f"hello {user}, votre role est {role}"

print(greetingsv2("Dio"))
print(greetingsv2("Dio","Dieu vivant"))
hello esteban, votre role est etudiant
hello Dio, votre role est user
hello Dio, votre role est Dieu vivant
global_var = 'global'

def global_test():
    local_var = 'local'
    # testez l'accès à global_var et local_var

print(global_var)
###print(local_var)    

    # définissez une nouvelle variable globale (global_var2) avec une valeur et testez l'accès local

global_var2 = 42
print(global_var2)

    # Testez l'accès aux variables global_var2 et local_var
global
42

Listes#

# Convertissez cette chaine de caractères en une liste

str_ex = 'a,b,c,d'
print(str_ex.split(','))

# Créez une liste contenant les carrés des nombres 5,10,15,20

sqrt_list = [x**2 for x in range(5,25,5)]
print(sqrt_list)

# Affichez les deux premiers éléments de la liste

print(sqrt_list[:2])

# Affichez le dernier élément de la liste

print(sqrt_list[-2:])
['a', 'b', 'c', 'd']
[25, 100, 225, 400]
[25, 100]
[225, 400]
values = ["a","b","c","d"]

# Affichez successivement les valeurs de la variable values
    
for i in values:
    print(i)
    
# Affichez ces même valeurs, ainsi que l'index de chaque valeur que vous pouvez obtenir à l'aide de enumerate(). 

for count, value in enumerate(values):
    print(count, ':', value)
a
b
c
d
0 : a
1 : b
2 : c
3 : d
# A l'aide de la fonction range(), générez les nombres de 1 à 9 et affichez la valeur de chacun au carré
nb_range = range(1,10)

for nb in nb_range:
  print(nb**2)

# Faites la même chose avec une liste des nombres 0,5,10,15,20 en utilisant range().

nb_range2 = range(0,21,5)
for nb in nb_range2:
  print(nb**2)
1
4
9
16
25
36
49
64
81
0
25
100
225
400
# Ajoutez un élément à la liste letters et affichez la liste. 

letters = ['a','b','c','d']
letters += 'e'
print(letters)

# Remplacez la lettre en seconde position par la lettre Z

letters[2]= 'z'
print(letters)

# Essayez les mêmes opérations en utilisant cette fois la variables letters_t
letters_t = ('a','b','c','d')

##letters_t += 'e'
##print(letters_t)
##letters_t[2]= 'z'
##print(letters_t)"""

# Que pouvez-vous conclure ? 
### la variable letters_t n'est pas une liste
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'z', 'd', 'e']
# Testez si la variable letters contient la lettre Z
if 'Z' in letters: 
    print("oui Z est présent")
else : print("non Z est pas là")

test = 'Z' in letters
print(test)
non Z est pas là
False
# Déclarez une liste contenant les chiffres de 0 à 9

nb_range = range(10)
nb_list = list(nb_range)
print(nb_list)

# Ajoutez le nombre 5 à la position 1

nb_list.insert(1, 5)
print(nb_list)

# Quelle est la longueur de la liste ? 

print(len(nb_list))

# Quelle est la valeur max dans la liste ? 

print(max(nb_list))

# Quelle est la somme de cette list ? 

print(sum(nb_list))

# En une seule ligne, affichez le nb à la position 1 et supprimez le de la liste

print(nb_list[1]); del nb_list[1]
print(nb_list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 5, 1, 2, 3, 4, 5, 6, 7, 8, 9]
11
9
50
5
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l1 = ['a','b','c']
l2 = [1,2,3]

# Affichez une sortie a = 1, ... sur la base de ces deux listes. 

for v1,v2 in zip(l1,l2):
    print(f"{v1} = {v2}")
a = 1
b = 2
c = 3

Dictionnaires#

student = {'name':'bob', 'level': 5}
type(student)
dict
# Ajoutez à ce dict une nouvelle clé contenant la liste 'courses' avec les valeurs 'python' et 'javascript', ajoutez 1 à la clé level
student['courses'] = ['python','javascript']
student['level'] += 1
print(student)
{'name': 'bob', 'level': 6, 'courses': ['python', 'javascript']}
# Affichez chaque valeur sur une ligne 

for key, value in student.items():
    print(value)


# Affichez chaque paire sous la forme 'clé = valeur'

for key, value in student.items():
    print(f"{key} = {value}")
bob
6
['python', 'javascript']
name = bob
level = 6
courses = ['python', 'javascript']
# Testez l'affichage d'une clé inexistante en utilisant la syntaxe var['key'] ou var.get('key')

#print(student['test'])
## lead to -> Key Error 

print(student.get('prout'))
## lead to -> None
None
# Créez une liste students contenant notre dict student et ajoutez un second dict similaire. 

students = []
students.append(student)
student2 = {'name':'billy', 'level': 42, 'courses': ['angular']}
students.append(student2)
print(students)

## Affichez chaque paire de chaque objet 

for stud in students:
    for key,value in stud.items() :
        print(key, value)
[{'name': 'bob', 'level': 6, 'courses': ['python', 'javascript']}, {'name': 'billy', 'level': 42, 'courses': ['angular']}]
name bob
level 6
courses ['python', 'javascript']
name billy
level 42
courses ['angular']
keys_list = ['a', 'b', 'c']
values_list = [1,2,3]

# Sur la base de ces deux listes, créez un dictionnaires associant les clés (values_1) aux valeurs (values_2)

keys_list = ['a', 'b', 'c']
values_list = [1,2,3]

dict_from_list = dict(zip(keys_list, values_list))
print(dict_from_list)
#--------------------------
pairs = {k:v for k,v in zip(keys_list, values_list)}
print(pairs)
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3}
# Avec la liste de tuples suivantes, crééz un dictionnaire sous la forme {1:a, 2:b}
tuple_ex = [(1,'a'),(2,'b')]

print(dict(tuple_ex))
{1: 'a', 2: 'b'}

Sets#

# Initialiser un set contenant les valeurs 1,2,3 et vérifier son type 

set1 = set('123')
type(set1)
print(set1)

# Faites une union avec les valeurs 3,4,5, observez le set

print(set1.union('345'))

# Testez les fonctions difference, symmetric_difference et intersection
set2 = set('345')

print(set1.difference(set2))
print(set1.symmetric_difference(set2))
print(set1.intersection(set2))

# Quels usages peut-on imaginer pour cette structure de données ? 
{'2', '3', '1'}
{'5', '3', '1', '4', '2'}
{'2', '1'}
{'5', '1', '4', '2'}
{'3'}
#The END