| | | | |

4.1 Funções Predefinidas e Módulos

Compre o e-book deste material aqui!

4.1.1 Funções Predefinidas

Como o nome indica, funções predefinidas são aquelas disponíveis por padrão na linguagem de programação, i.e. sem a necessidade de serem explicitamente definidas no código. As funções predefinidas do Python podem ser consultadas em

https://docs.python.org/3/library/functions.html

Nós já vinhamos utilizando várias dessas funções.

Entrada e Saída de Dados

Na entrada e saída de dados, utilizamos

  • input entrada

    Essa função lê uma linha digitada no prompt, converte-a em uma string e a retorna. Admite como entrada uma string que é impressa no prompt antes da leitura.

  • print saída

    Essa função recebe um objeto e o imprime em formato texto, por padrão, no prompt de saída.

    1>>> s = input('Olá, qual o seu nome? ')
    2Olá, qual o seu nome? Fulane
    3>>> print(f'Bem vinde, {s}!')
    4Bem vinde, Fulane!

Construtores de Dados

Temos as funções que constroem objetos de classes de números:

  • bool() booleano

    Recebe um objeto e retorna outro da classe bool.

    1>>> bool(0)
    2False
    3>>> bool(1)
    4True
    5>>> bool('')
    6False
    7>>> bool('0')
    8True
  • int() inteiro

    Recebe um número ou string x e retorna um objeto da classe int.

    1>>> int(-2.1)
    2-2
    3>>> int(3.9)
    43
    5>>> int(5.5)
    65
    7>>> int('51')
    851
  • float() decimal

    Recebe um número ou string x e retorna um objeto da classe float.

    1>>> float(1)
    21.0
    3>>> float('-2.7')
    4-2.7
  • complex() complexo

    Recebe as partes real e imaginária de um número complexo ou uma string e retorna um objeto da classe complex.

    1>>> complex(2,-3)
    2(2-3j)
    3>>> complex('-7+5j')
    4(-7+5j)

Para a construção de objetos de classes de coleção de dados, temos:

  • dict() dicionário

    Recebe um mapeamento ou um iterável e retorna um objeto da classe dict.

  • list() lista

    Recebe um iterável e retorna um objeto da classe list.

  • set() conjunto

    Recebe um iterável e retorna um objeto da classe set.

  • str() string

    Recebe um objeto e retorna um outro da classe str.

  • tuple() n-upla

    Recebe um iterável e retorna um objeto da classe tuple.

Alguns construtores de iteráveis especiais são:

  • range() sequência de números

    Recebe até três inteiros start, stop, step e retorna um objeto range, um iterável com início em start (incluído) e término em stop (excluído).

    1>>> list(range(5))
    2[0, 1, 2, 3, 4]
    3>>> tuple(range(-10,1,2))
    4(-10, -8, -6, -4, -2, 0)
  • enumerator() enumeração

    Recebe um iterável e retorna um objeto enumerate, um iterável de tuples que enumera os objetos do iterável de entrada.

    1>>> cores = ['amarelo', 'azul', 'vermelho', ]
    2>>> list(enumerate(cores))
    3[(0, 'amarelo'), (1, 'azul'), (2, 'vermelho')]

4.1.2 Módulos

Módulos são bibliotecas computacionais, i.e. um arquivo contendo funções (e/ou constantes) que podem ser incorporadas e usadas em outros programas. Existem vários módulos disponíveis na linguagem Python, para citar alguns:

  • math módulo de matemática elementar

  • random módulo de números randômicos

  • numpy módulo de computação matricial

  • matplotlib módulo de vizualização gráfica

  • sympy módulo de matemática simbólica

  • torch módulo de aprendizagem de máquina

Nesta seção vamos apenas introduzir o módulo math. Mais a frente, também fazemos uma introdução aos módulos numpy e matplotlib.

Módulo math

O módulo math fornece acesso a constantes e funções matemáticas elementares para números reais. Para importar o módulo em nosso código, podemos usar a instrução import. Por exemplo,

1>>> import math
2>>> help(math)

Então, para usar algum recurso do módulo usamos math. seguido do nome do recurso que queremos. Por exemplo,

1>>> math.e
22.718281828459045

retorna o número de Euler3333endnote: 33Leonhard Paul Euler, 1707-1783, matemático e físico suíço. Fonte: Wikipédia: Ronald Fisher. em ponto flutuante.

Alternativamente, podemos importar o módulo com o nome que quisermos. Por padrão, usa-se

1>>> import math as m
2>>> m.pi
33.141592653589793

Ainda, pode-se importar apenas um ou mais recursos específicos, por exemplo

1>>> from math import pi, sin, cos
2>>> sin(pi)**2 + cos(pi) == 1
3False
Exemplo 4.1.1.

Considere um polinômio de segundo grau da forma

p(x)=ax2+bx+c. (4.1)

O seguinte código, computa as raízes de p para valores dos coeficientes fornecidos por usuária(o).

1import math as m
2
3# entrada de dados
4a = float(input('Digite o valor de a:\n'))
5b = float(input('Digite o valor de b:\n'))
6c = float(input('Digite o valor de c:\n'))
7
8# discriminante
9delta = b**2 - 4*a*c
10
11# raízes
12# raízes distintas
13if (delta > 0):
14  x1 = (-b + m.sqrt(delta))/(2*a)
15  x2 = (-b - m.sqrt(delta))/(2*a)
16# raiz dupla
17elif (delta == 0):
18  x1 = -b/(2*a)
19  x2 = x1
20# raízes complexas
21else:
22  real = -b/(2*a)
23  img = m.sqrt(-delta)/(2*a)
24  x1 = complex(real, img)
25  x2 = x1.conjugate()
26
27print(f'x1 = {x1}')
28print(f'x2 = {x2}')

4.1.3 Exercícios

E. 4.1.1.

Desenvolva um código que computa e imprime a hipotenusa h de um triângulo retângulo com catetos a e b fornecidos por usuária(o).

Resposta.

Dica: use h = math.sqrt(a**2 b**2)+.

E. 4.1.2.

Um triângulo de lados a, b e c, existe se

|bc|<a<b+c. (4.2)

Desenvolva um código que verifica e informa a existência de um triângulo de lados fornecidos por usuária(o).

Resposta.

Dica: verifique a condição (m.fabs(b-c) < a) and (a < bc)+

E. 4.1.3.

Considere um triangulo com as seguintes medidas

[Uncaptioned image]

Desenvolva um código que computa e imprime o valor da altura de um triangulo de lados a, b e c fornecidos por usuária(o).

Resposta.

Dica: use a lei dos cossenos e relações fundamentais de triangulo retângulo para obter o valor da altura h.

E. 4.1.4.

Desenvolva um código em que a(o) usuária forneça um ângulo θ em graus e seja computado e impresso os sen(θ) e cos(θ).

Resposta.

Dica: consulte as funções math.sin, math.cos.

E. 4.1.5.

Desenvolva um jogo em que a(o) usuária(o) tenha três tentativas para adivinhar um número inteiro entre 0 a 51 (incluídos).

Resposta.

Dica: O módulo random fornece a função random.randint(a, b) que retorna um inteiro axb.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!