Mise en situation

Qu’est-ce qui est affiché par la dernière ligne ?


In [1]:
class Account:
    def __init__(self, id):
        self.id = id
        id = 666 
 
acc = Account(123)
print(acc.id)


123

Qu’est-ce qui est affiché par la dernière ligne ?


In [2]:
confusion = {}
confusion[1] = 1
confusion['1'] = 2
confusion[1.0] = 4
 
somme = 0
for k in confusion:
    somme += confusion[k]
 
print(somme)
print(confusion)


6
{'1': 2, 1: 4}

Qu’est-ce qui est affiché par la dernière ligne ?


In [3]:
x = True
y = False
z = False
 
if x or y and z:
    print "yes"
else:
    print "no"


yes

Classer la liste par ordre décroissant de quantité :


In [4]:
inventaire = [("pommes", 22),("melons", 4),("poires", 18),("fraises", 76),("prunes", 51)]
#Classer cette liste selon la quantité de chaque fruit par ordre décroissant

In [5]:
inventaire_inverse = [(qtt, nom_fruit) for nom_fruit, qtt in inventaire]
inventaire_inverse.sort(reverse=True)
inventaire = [(nom_fruit, qtt) for qtt , nom_fruit in inventaire_inverse]
print(inventaire)


[('fraises', 76), ('prunes', 51), ('pommes', 22), ('poires', 18), ('melons', 4)]

calculer la somme d’une liste de nombres


In [6]:
import numpy as np
import numpy.random as nprnd
liste = nprnd.randint(1000, size=1000)
print type(list(liste))
print sum(list(liste))
%timeit sum(list(liste))


<type 'list'>
487128
10000 loops, best of 3: 67.9 µs per loop

In [7]:
print(reduce(lambda x,y: x+y, liste))
%timeit reduce(lambda x,y: x+y, liste)


487128
The slowest run took 5.09 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 117 µs per loop

In [8]:
print np.sum(liste)
%timeit np.sum(liste)


487128
The slowest run took 16.72 times longer than the fastest. This could mean that an intermediate result is being cached.
100000 loops, best of 3: 2.21 µs per loop

Calculer la somme d’une liste des nombres impairs :


In [9]:
liste = [2,1,1,2,4,1,3]

In [10]:
sum([i for i in liste if i % 2 ==1])


Out[10]:
6

Transformez cette liste pour qu'il ne reste que des éléments unique :


In [11]:
liste = [2,1,1,2,4,1,3]
list(set(liste))


Out[11]:
[1, 2, 3, 4]

Meilleur pratique pour ouvrir un fichier:


In [12]:
%%writefile test.txt
Ceci est la ligne numéro 1
et la ligne numéro deux
d'un fichier texte qui au final contiendra
quatre lignes !


Overwriting test.txt

In [13]:
# 1) Comment ouvrir un fichier en lecture en traitant les exceptions possibles ?
my_file = 'test2.txt'
try:
    f = open(my_file)

    try:
        all = f.readlines()        
        print("FILE : {file} contains {numlines:06d} lines ".format(file=my_file,numlines=len(all)))
    except EXPECTED_EXCEPTION_TYPES as e:
        print("ERROR READING FILE : {file}".format(file=my_file))
        print(e)
    finally:
        f.close()

except (IOError, OSError) as e:
    print("ERROR OPENING FILE : {file}".format(file=my_file))
    print(e)
# https://pyformat.info/


ERROR OPENING FILE : test2.txt
[Errno 2] No such file or directory: 'test2.txt'

In [14]:
my_file = 'test.txt'
with open(my_file) as f:
    all = f.readlines()
    print all
    print("FILE : {file} contains {numlines:06d} lines ".format(file=my_file,numlines=len(all)))


['Ceci est la ligne num\xc3\xa9ro 1\n', 'et la ligne num\xc3\xa9ro deux\n', "d'un fichier texte qui au final contiendra\n", 'quatre lignes !']
FILE : test.txt contains 000004 lines 

Connaissances web framework python :

Python Web frameworks

Citer 5 web frameworks python, lesquels connaissez-vous ?

  1. Django
  2. Flask
  3. Pyramid
  4. Web2Py
  5. Turbogears2
  6. Falcon
  7. Bottle
  8. CherryPy
  9. Muffin
  10. Tornado

Quels sont les fonctions essentielles d’un web framework ?

certaines fonctions de base incluent :

  • URL routing
  • HTML, XML, JSON, and other output format templating
  • Database manipulation
  • Security against Cross-site request forgery (CSRF) and other attacks
  • Session storage and retrieval

Quels sont les avantages / inconvénients de ces frameworks ?

Django vs Flask vs Pyramid: Choosing a Python Web Framework Pirates use Flask, the Navy uses Django

Performance of some python web frameworks


In [ ]: