SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
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.
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.
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.
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.
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.
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
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')

Weitere ähnliche Inhalte

Was ist angesagt?

LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesCarlos Santos
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5garux
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4garux
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Wilson Júnior
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECLW3P Projetos Web
 
Alterar password linux user pam autentication
Alterar password linux user   pam autenticationAlterar password linux user   pam autentication
Alterar password linux user pam autenticationCarlos Eduardo
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comandogarux
 
Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2garux
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesStanislaw Pusep
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3garux
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoesLeandro Barbosa
 

Was ist angesagt? (20)

LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - Funções
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Ruby
RubyRuby
Ruby
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4
 
Scatole Nere
Scatole NereScatole Nere
Scatole Nere
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECL
 
Alterar password linux user pam autentication
Alterar password linux user   pam autenticationAlterar password linux user   pam autentication
Alterar password linux user pam autentication
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comando
 
Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3
 
Shell script
Shell scriptShell script
Shell script
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 

Ähnlich wie Al sweigart, cap 3

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rustBruno Rocha
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelAndrews Medina
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçaossuserc6132d
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinNelson Glauber Leal
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasÉverton Ribeiro
 

Ähnlich wie Al sweigart, cap 3 (20)

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Funcao PHP
Funcao PHPFuncao PHP
Funcao PHP
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Programando em Python - Funções
Programando em Python -  FunçõesProgramando em Python -  Funções
Programando em Python - Funções
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentável
 
Aula4
Aula4Aula4
Aula4
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
PowerShell
PowerShellPowerShell
PowerShell
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadas
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Mehr von Laboratório de Políticas Públicas Participativas

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

Capítulo 4 listas.
Capítulo 4   listas.Capítulo 4   listas.
Capítulo 4 listas.
 
Apresentação do Tainacan Museus - Instituto Brasileiro de Museus - IBRAM
Apresentação do Tainacan Museus - Instituto Brasileiro de Museus - IBRAMApresentação do Tainacan Museus - Instituto Brasileiro de Museus - IBRAM
Apresentação do Tainacan Museus - Instituto Brasileiro de Museus - IBRAM
 
Manual Tainacan - acervos digitais em rede
Manual Tainacan - acervos digitais em redeManual Tainacan - acervos digitais em rede
Manual Tainacan - acervos digitais em rede
 
Capítulo 2 - Python
Capítulo 2 - PythonCapítulo 2 - Python
Capítulo 2 - Python
 
Automatize tarefas maçantes com python - Aula 1
Automatize tarefas maçantes com python - Aula 1Automatize tarefas maçantes com python - Aula 1
Automatize tarefas maçantes com python - Aula 1
 
Algorithms and their others
Algorithms and their othersAlgorithms and their others
Algorithms and their others
 
Seminário Sociologia na era do Big Data
Seminário Sociologia na era do Big DataSeminário Sociologia na era do Big Data
Seminário Sociologia na era do Big Data
 
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
 
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 02 - Museus e red...
 
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
 
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
Oficina Cultura Digital, Museus e Acervos em Rede - Módulo 01 - inteligênci...
 
Métodos Digitais para Análise de Dados - Aula 07 - Fontes de informação dig...
Métodos Digitais para Análise de Dados - Aula 07 - Fontes de informação dig...Métodos Digitais para Análise de Dados - Aula 07 - Fontes de informação dig...
Métodos Digitais para Análise de Dados - Aula 07 - Fontes de informação dig...
 
Extração de Dados do Facebook com o NetVizz
Extração de Dados do Facebook com o NetVizzExtração de Dados do Facebook com o NetVizz
Extração de Dados do Facebook com o NetVizz
 
Métodos Digitais para Análise de Dados - Aula 06 - O digital como espaço soc...
Métodos Digitais para Análise de Dados - Aula 06 - O digital como espaço soc...Métodos Digitais para Análise de Dados - Aula 06 - O digital como espaço soc...
Métodos Digitais para Análise de Dados - Aula 06 - O digital como espaço soc...
 
Encarando o Big Data: Tornando a Sociologia Relevante
Encarando o Big Data: Tornando a Sociologia RelevanteEncarando o Big Data: Tornando a Sociologia Relevante
Encarando o Big Data: Tornando a Sociologia Relevante
 
Os Usos Literários do Espaço de Alta Dimensão
Os Usos Literários do Espaço de Alta DimensãoOs Usos Literários do Espaço de Alta Dimensão
Os Usos Literários do Espaço de Alta Dimensão
 
Métodos Digitais para Análise de Dados - Aula 05 - Sociabilidade em rede e ca...
Métodos Digitais para Análise de Dados - Aula 05 - Sociabilidade em rede e ca...Métodos Digitais para Análise de Dados - Aula 05 - Sociabilidade em rede e ca...
Métodos Digitais para Análise de Dados - Aula 05 - Sociabilidade em rede e ca...
 
Seminário - Apresentação do Artigo - Big Data and Historical Social Science
Seminário - Apresentação do Artigo - Big Data and Historical Social ScienceSeminário - Apresentação do Artigo - Big Data and Historical Social Science
Seminário - Apresentação do Artigo - Big Data and Historical Social Science
 
Métodos Quantitativos e Pesquisa em Ciências Sociais - Ramos, 2013 (Síntese d...
Métodos Quantitativos e Pesquisa em Ciências Sociais - Ramos, 2013 (Síntese d...Métodos Quantitativos e Pesquisa em Ciências Sociais - Ramos, 2013 (Síntese d...
Métodos Quantitativos e Pesquisa em Ciências Sociais - Ramos, 2013 (Síntese d...
 
Minicurso - Geoprocessamento/Qgis
Minicurso - Geoprocessamento/QgisMinicurso - Geoprocessamento/Qgis
Minicurso - Geoprocessamento/Qgis
 

Al sweigart, cap 3

  • 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. 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. 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. 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. 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. 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. 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')