1797
Comentário:
|
2120
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 69: | Linha 69: |
== Exercício 2 == O programa abaixo importa o modulo acima. Anote em um pedaço de papel em que ordem os marcadores "-> N" e os pontos I e II aparecerão na saída do programa. Depois rode o programa para saber se acertou. {{{ #!python print '=> ponto I' import execucao_pergunta print '=> ponto II' }}} |
Python é uma linguagem dinâmica e interpretada, e não tem um pré-processador (como existe em C). A ordem em que os comandos de um programa Python são executados obedece a algumas regras simples.
Para testar seu conhecimento sobre estas regras, faça o seguinte exercício abaixo.
Exercício 1
Observe que a listagem abaixo possui vários comantos print (e um sys.stdout.write) com marcadores numerados assim: "-> N". Anote em um pedaço de papel em que ordem estes marcadores aparecerão na saída do programa, e depois rode o programa para saber se acertou.
1 import sys
2 import atexit
3
4 print '-> 1 inicio'
5
6 def funcaoA():
7 print '-> 2 funcao A'
8 return 'resultado A'
9
10 def funcaoB():
11 print '-> 3 funcao B'
12
13 def funcaoC():
14 print '-> 4 funcao C'
15
16 return funcaoC
17
18 funcaoD = lambda:sys.stdout.write('-> 5 funcao D\n')
19
20 def funcaoE():
21 print '-> 6 funcao E'
22
23 class Classe(object):
24 print '-> 7 bloco de declaracoes da Classe'
25
26 def __init__(self):
27 print '-> 8 inicializacao da instancia da Classe'
28
29 def metodo(self):
30 print '-> 9 metodo da instancia da Classe'
31 return 'resultado metodo'
32
33 if True:
34 print '-> 10 condicional True'
35
36 if False:
37 assert False, 'Isso nunca devia acontecer'
38
39 atexit.register(funcaoE)
40
41 print '-> 11 logo antes do if __main__'
42
43 if __name__=='__main__':
44 print '-> 12 __main__'
45 print funcaoA
46 print funcaoA()
47 print '-> 13 __main__ (cont.)'
48 print funcaoB
49 resultadoB = funcaoB()
50 print resultadoB
51 objeto = Classe()
52 objeto.metodo()
53 resultadoB()
54 print funcaoD
55 funcaoD()
56 print '-> 14 __main__ (final)'
57 print '-> 15 FIM'
Exercício 2
O programa abaixo importa o modulo acima. Anote em um pedaço de papel em que ordem os marcadores "-> N" e os pontos I e II aparecerão na saída do programa. Depois rode o programa para saber se acertou.