O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Shell script
Shell script
Carregando em…3
×

Confira estes a seguir

1 de 7 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Al sweigart, cap 3 (20)

Anúncio

Mais de Laboratório de Políticas Públicas Participativas (20)

Mais recentes (20)

Anúncio

Al sweigart, cap 3

  1. 1. AL SWEIGART. Automatize Tarefas Maçantes com Python: Programação Prática para Verdadeiros iniciantes. 2015. Novatec. Capítulo III FUNÇÕES Uma Função é como um miniprograma dentro de um programa. Entendendo melhor o funcionamento da função: def hello(): print('Howdy!') print('Howdy!!!') print('Helo there.') hello() hello() hello() 1- def =definir Função; 2- É o corpo da Função; 3- São chamadas à função. Resultado: 3x, devido a Função fazer essa chamada. Howdy! Howdy!!! Hello there. Howdy! Howdy!!! Hello there. Howdy! Howdy!!! Hello there. Um dos principais propósitos das funções consiste em agrupar códigos que são executados diversas vezes. Removendo os processos de deduplicantion, fazendo com que seus programas sejam mais compactos, e ajudando, por exemplo, o ato de correção de bug na execução de um programa defeituoso.
  2. 2. INSTRUÇÃO DEF COM PARAMETROS. def hello(name): print('Hello' + name) hello(' Dolly') hello(' Angela') hello (' Dercideo') 1- Parâmetro é uma variável em que um argumento é armazenado quando uma função é chamada. 2- Argumento está contido na função. 3- O valor armazenado em um parâmetro é esquecido quando uma função retorna. VALORES DE RETORNO E INSTRUÇÕES RETURN. 1- Em geral, o valor com o qual uma chamada função é avaliada é chamado de valor de retorno da função: len ('hot dog') 7 2- Quando uma função é usada com uma instrução return, o valor de retorno é aquele com o qual essa expressão é avaliada.
  3. 3. import random def getAnswer(answerNumber): if answerNumber ==1: return 'é certo' elif answerNumber ==2: return 'é decidido' elif answerNumber ==3: return 'sim' elif answerNumber ==4: return 'responder novamente' elif answerNumber ==5: return 'pergunte novamente mais tarde' elif answerNumber ==6: return 'concentre-se e pergunte novamente' elif answerNumber ==7: return 'minha repetição é não' elif answerNumber ==8: return'perpectiva não tão boa' elif answerNumber ==9: return 'muito duvidoso' r = random.randint(1,9) fortune =getAnswer(r) print(fortune) Obs: Expressões são compostas de valores e operadores. VALOR NONE (AUSÊNCIA DE VALOR). Valor chamado None que representa ausência de valor. Assim como os valores booleanos, deve ser digitado com letra a primeira Letra Maiúscula. None = Valor sem Valor ( None é usado como um valor de retorno de print ( ). >>> spam = print('hello') hello >>> None==spam True (Semelhante ao loop ou for) ARGUMENTOS NOMEADOS E PRINT ( ) A maioria dos argumentos é identificada pela suposição na chamada à função.
  4. 4. Ex: random.randint (1,10) Ok random.randint (10,1)  Not Ok. Entretanto argumentos nomeados (keyword arguments) São identificados pela palavra- chave inserida antes da função. print('hello') print('world') Argumento end altera o valor para uma string diferente. (Quebra de linha) print('hello', end='') print('world') O Argumento sep substitui a string default de separação. print('cats', 'dogs', 'mice') cats dogs mice print('cats', 'dogs', 'mice', sep=',') cats,dogs,mice Escopo Local e Global: Escopo Local: Existem no escopo local da função Escopo Global: Recebem valor fora de todas as funções. (A variável deve ser de um escopo ou de outro). #Analogia pelo Contêiner, ao qual quando o Contêiner é destruído as variáveis do escopo são esquecidas. Importância:  O código no Escopo global não pode usar nenhuma variável local;  No entanto, um escopo local pode acessar variáveis globais.  O código no escopo local de uma função não pode usar variáveis de nenhum outro escopo.  Podemos usar o mesmo nome para diferentes variáveis se elas estiverem em nomes em escopos distintos. Isso quer dizer que pode haver uma variável local chamada spam e uma variável global de mesmo nome. Porque usar variáveis locais e globais. Facilita no ato de correção de um bug.
  5. 5. Variáveis locais não podem ser usadas no escopo global. def spam(): eggs=313337 spam( ) print(eggs) File "C:/Users/derci/AppData/Local/Programs/Python/Python36-32/AAA.py", line 4, in <module> print(eggs) NameError: name 'eggs' is not defined Escopo local é destruído e não há mais uma variável eggs. Escopo locais não podem usar variáveis de outros escopos locais. def spam(): eggs =99 bacon() print(eggs) def bacon(): ham=101 eggs =0 spam() = RESTART: C:/Users/derci/AppData/Local/Programs/Python/Python36-32/aaaa.py = 99 >>> Variáveis Globais podem ser lidas a partir de um escopo Local def spam(): print(eggs) eggs=42 spam() print(eggs) Como não há nenhum parâmetro chamados eggs nem qualquer código que atribua um valor a eggs na função spam, o python considera como um valor global.
  6. 6. Variáveis Locais com o mesmo Nome. É possível de ser feito, porém não é recomendado. def spam(): eggs ="smap local" print (eggs) # exibe "smap local def bacon(): eggs="bancon local" print (eggs) #exibe "bacon local" spam() print(eggs) # exibe "bacon local" eggs="global" bacon() print(eggs) # exibe "global" bacon local spam local bacon local global Três variáveis Uma chamada eggs existente em um escopo local quando spam( ) é chamada. Uma variável chamada eggs existente em um escopo local quando bancon ( ) é chamada. Uma variável chamada eggs existe no escopo global INSTRUÇÃO GLOBAL Utilizar a instrução global. def spam( ): global eggs eggs = “spam” eggs = “global” spam ( ) print(eggs) >>> Spam
  7. 7. Há quarto regras para dizer se uma variável está em um escopo local ou global:  Se uma variável estiver sendo usada no escopo global (fora de todas as funções).  Se houver uma instrução global para essa variável em uma função, ele será uma variável global.  Caso contrário, se a variável for usada em uma instrução de atribuição na função ela será uma variável local.  Porém, se a variável não for usada em uma instrução de atribuição, ela será uma variável global. TRATAMENTO DE EXCEÇÕES: Para que um programa não falhe como um todo é necessário utilizar uma exceção com as instruções (de cláusula try e de cláusula except), portanto quando um código é colocado em cláusula try e provoca um erro, a execução é transferida para a cláusula except. Após esse código a execução continuará normalmente. def spam(etBy): return 42/etBy try: print(spam(2)) print(spam(12)) print(spam(0)) print(spam(1)) except ZeroDivisionError: print ('ERROR: ARGUMENTO INVALIDO')

×