0% acharam este documento útil (0 voto)
152 visualizações4 páginas

Introdução À Computação Usando Python p73-74

Leitura obrigatória - Algoritmos - UFMS Módulo 5

Enviado por

Gabriel Roberto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
152 visualizações4 páginas

Introdução À Computação Usando Python p73-74

Leitura obrigatória - Algoritmos - UFMS Módulo 5

Enviado por

Gabriel Roberto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 4

PERKOVIC, Ljubomir.

Introdução à computação usando Python: um foco no


desenvolvimento de aplicações. Rio de Janeiro: LTC, 2016. ISBN 9788521630937.Seção
3.3. p. 73-74.
Definições de Função São Instruções de “Atribuição”
Para ilustrar que as funções são, na realidade, instruções Python normais, semelhantes às instruções de atribuição, usamos este
pequeno programa:

Módulo: dynamic.py

s = input('Digite quadrado ou cubo:')


2 if 5 == 'quadrado':
def fOx):
return x*x
else:
def fOx):
return xxx

Nele, a função () é definida dentro de um programa em Python, assim como uma instrução de atribuição pode estar em um
programa. A definição real de f() depende da entrada informada pelo usuário em tempo de execução. Digitando cubo após o
aviso, a função f () é definida para ser a função cúbica:

»
Digite quadrado ou cubo: cubo
» f(3)
2

Porém, se o usuário digitar quadrado, então f( ) serd a função quadrática.

AVISO o . .
Primeiro Defina a Função, Depois a Use

Python não permite chamar uma função antes que ela seja definida, assim como uma variável não pode ser usada em uma expressão antes
que ela seja atribuída.
Sabendo disso, tente descobrir por que a execução desse módulo resultaria em um erro:

print(£(3))
def f(x):
return x**2 + 1
Resposta: quando um mddulo é executado, as instruges Python são executadas de cima para baixo. A instrução print (f(3) ) falhará
porque o nome f ainda não estava definido no momento de sua execução.
Haverá um erro quando executarmos esse módulo?
def g(x):
return f(x)
def fOx):
return x**2 + 1
Resposta: não, porque as funções f( ) e g( ) não são executadas quando o módulo é executado, são apenas definidas. Depois
que elas
forem definidas, elas poderdo ser executadas sem problemas.
Comentários
Os programas em Python deverão ser bem documentados por dois motivos:

1. O usvário do programa deverá entender o que o programa faz.


2. O desenvolvedor que desenvolve e/ou mantém o código deverá entender como o programa funciona.

A documentação para o desenvolvedor do programa e o mantenedor futuro é importante porque o código não documentado é mais
difícil de manter, mesmo pelo programador que o escreveu. Essa documentação é feita principalmente usando comentários escritos
pelo desenvolvedor da função logo em seguida ao programa.
Um comentário é qualquer coisa que vem após o simbolo # em uma linha. Veja como acrescentamos um comentário para
explicar a implementação da função f():

Módulo: ch3.py

, def f(x):
return x**2 +1 # £(x) deve ser avaliado como x*x + 1

O comentário — qualquer coisa que vem após # na linha — é ignorado pelo interpretador Python.
Embora os comentdrios sejam necessários, também ¢ importante ndo comentar demais. Os comentários não devem dificultar a
leitura do programa. O ideal é que seus programas utilizem nomes de varidvel significativos e simples, em um codigo bem
projetado, de modo que o programa seja autoexplicativo, ou quase isso. Isso é realmente mais fácil de conseguir em Python do que
na maioria das outras linguagens. Os comentdrios devem ser usados para identificar os principais componentes do programa e
explicar as partes mais complicadas.

Docstrings
As funções também devem ser documentadas para os usudrios da função. As funções embutidas que ja vimos até aqui possuem
uma documentagdo que pode ser vista usando a função help( ). Por exemplo:

>> help(len)
Help on built-in function len in module builtins:

len(...)
len(object) -> integer

Return the number of items of a sequence or mapping.

Se usarmos help em nossa primeira função f (), surpreendentemente obteremos alguma documentação também.
> help(f)
Help on function f in module _main_:

f(x)

Porém, para obtermos algo mais útil, o desenvolvedor da função precisa incluirum comentário especial na definição da função, que
será apanhado pela ferramenta help(). Esse comentário, chamado de docstring, é uma string que deverá descrever o que a função
faz e deverá ser colocado diretamente abaixo da primeira linha de uma definição de função. Veja como incluiriamos a docstring
'retorna x**2+1" ànossa função f():

Módulo: ch3.py

4 def f(x):
'retorna x**2 + 1º
3 return x**2 +1 # calcula x**2 + 1 e retorna valor obtido

Vamos também acrescentar uma docstring à nossa função hello():


Modulo: ch3.py

def hello(name):
"uma função hello personalizada’
2 print('Hello,' + name + * ')

Com as docstrings no Iugar, a função help()as usara como parte da documentagdo da função. Por exemplo, a docstring
‘retorna x**2+1' ¢ exibida quando se visualiza a documentagio para a função f():

>>> help(f)
Help on function f in module _main_:

f(x)
retorna x**2 + 1

De modo semelhante, a docstring é exibida quando se visualiza a documentação para hello():

>>> help(hello)
Help on function hello in module _main_:

hello(name)
uma funcdo hello personalizada
Problema Prático 3.11

Acrescente a docstring retorna a média de x e y à função média() e a docstring exibe os números negativos
contidos na lista lst à função negativos() dos Problemas Práticos 3.8 e 3.10. Verifique seu trabalho usando a
ferramenta de documentação help(). Você deverá receber, por exemplo:

>>> help(média)
Ajuda sobre a função média no módulo —main :

média(x, y)
retorna à média de x e y

Você também pode gostar