Note
Go to the end to download the full example code
Quelques examples simples#
Case 1#
Que calcule le programme suivant ?
res = [[1]]
for i in range(1, 10):
row = [1]
for j in range(1, i):
n = sum(res[-1][j - 1: j + 1])
row.append(n)
row.append(1)
res.append(row)
print(res)
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]
Un autre affichage peut peut-être aider.
import pprint
pprint.pprint(res)
[[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1],
[1, 5, 10, 10, 5, 1],
[1, 6, 15, 20, 15, 6, 1],
[1, 7, 21, 35, 35, 21, 7, 1],
[1, 8, 28, 56, 70, 56, 28, 8, 1],
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]
Case 2#
import cProfile
nombres = [9, 7, 5, 4, 6, 7, 3, 1, 7, 8]
def moyenne(ens):
return sum(ens) / len(ens)
def ecarttype(ens):
var = [(n - moyenne(ens)) ** 2 for n in ens]
return (sum(var) / len(var)) ** 0.5
print(moyenne(nombres))
print(ecarttype(nombres))
with cProfile.Profile() as pr:
for n in range(100000):
ecarttype(nombres)
pr.print_stats()
5.7
2.3259406699226015
3400002 function calls in 5.596 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 cProfile.py:117(__exit__)
1000000 1.412 0.000 2.829 0.000 plot_simple_example.py:47(moyenne)
100000 0.547 0.000 5.596 0.000 plot_simple_example.py:51(ecarttype)
100000 2.028 0.000 4.857 0.000 plot_simple_example.py:52(<listcomp>)
1100000 0.395 0.000 0.395 0.000 {built-in method builtins.len}
1100000 1.214 0.000 1.214 0.000 {built-in method builtins.sum}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
Case 3#
def bizarre(ensemble):
# premier zero
ensemble.append(0)
for i in range(len(ensemble)):
if ensemble[i] == 0:
return i
res = [1, 4, 5]
print("bizarre=", bizarre(res))
print("res=", res)
bizarre= 3
res= [1, 4, 5, 0]
Total running time of the script: ( 0 minutes 5.952 seconds)