Compre o e-book deste material aqui!
Python é uma linguagem de programação dinâmica em que as variáveis/objetos são declaradas/os automaticamente ao receberem um valor/dado. Por exemplo, consideramos as seguintes instruções
Na primeira instrução, a variável x recebe o valor inteiro 2 e, então, é armazenado na memória do computador como um objeto da classe int (número inteiro). Na segunda instrução, y recebe o valor decimal (resultado de ) e é armazenado como um objeto da classe float (ponto flutuante de 64-bits). Podemos verificar isso, com as seguintes instruções
2
6.0
<class ’int’> <class ’float’>
(Comentários e Continuação de Linha.) Códigos Python admitem comentários e continuação de linha como no seguinte exemplo
isto é uma string
<class ’str’>
(Notação científica.) O Python aceita notação científica. Por exemplo é digitado da seguinte forma
0.052
(Casting.) Quando não há ambiguidade, pode-se fazer a conversão entre objetos de classes diferentes (casting). Por exemplo,
1 <class ’int’>
1.0 <class ’float’>
Além de objetos numéricos e string, Python também conta com objetos list (lista), tuple (-upla) e dict (dicionário). Estudaremos essas classes de objetos mais adiante no minicurso.
Antes de implementar, diga qual o valor de x após as seguintes instruções.
Justifique sua resposta e verifique-a.
1
Implemente um código em que a(o) usuária(o) entra com valores para as variáveis x e y. Então, os valores das variáveis são permutados entre si. Dica: use input para a entrada de dados.
Os operadores aritméticos elementares são:
+ adição
- subtração
* multiplicação
/ divisão
** potenciação
% módulo
// divisão inteira
Estudamos a seguinte computação
7.0
Observamos que as operações ** tem precedência sobre as operações *, /, %, //, as quais têm precedência sobre as operações +, -. Operações de mesma precedência seguem a ordem da esquerda para direita, conforme escritas na linha de comando. Usa-se parênteses para alterar a precedência entre as operações, por exemplo
5.5
(Precedência das Operações.) Consulte mais informações sobre a precedência de operadores em Python Docs: Operator Precedence.
Compute as raízes do seguinte polinômio quadrático
(1) |
usando a fórmula de Bhaskara11endnote: 1Bhaskara Akaria, 1114 - 1185, matemático e astrônomo indiano. Fonte: Wikipédia: Bhaskara II..
O operador % módulo computa o resto da divisão e o operador // a divisão inteira, por exemplo
1
2
O módulo Python math disponibiliza várias funções e constantes elementares. Para usá-las, precisamos importar o módulo em nosso código
Com isso, temos acesso a todas as definições e declarações contidas neste módulo. Por exemplo
3.141592653589793
-1.0
1.4142135623730951
1.0
(Função Logaritmo.) Notamos que math.log é a função logaritmo natural, i.e. . A implementação Python para o logaritmo de base 10 é math.log(x, 10) ou, mais acurado, math.log10.
Compute
Os operadores de comparação elementares são
== igual a
!= diferente de
> maior que
< menor que
>= maior ou igual que
<= menor ou igual que
Estes operadores retornam os valores lógicos True (verdadeiro) ou False (falso).
Por exemplo, temos
True
Considere a circunferência de equação
(3) |
Escreva um código em que a(o) usuária(o) entra com as coordenadas de um ponto e o código verifica se pertence ao disco determinado por .
Antes de implementar, diga qual é o valor lógico da instrução
Justifique sua resposta e verifique!
False
Os operadores lógicos elementares são:
and e lógico
or ou lógico
not não lógico
(Tabela Booleana do and.) A tabela booleana22endnote: 2George Boole, 1815 - 1864, matemático britânico. Fonte: Wikipédia: George Boole. do and é
A | B | A and B |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Por exemplo, temos
False
Construa as tabelas booleanas do operador or e do not.
Use Python para verificar se .
(A or B) and not(A and B)
Um set em Python é uma coleção de objetos não ordenada, imutável e não admite itens duplicados. Por exemplo,
<class ’set’>
{1, 2, 3}
True
Acima, alocamos o conjunto . Note que o conjunto é igual a . Observamos que o conjunto vazio deve ser construído com a instrução set() e não com {}33endnote: 3Isso constrói um dicionário vazio, como estudaremos logo mais..
(Tamanho de uma Coleção de Objetos.) A função len retorna o número de elementos de uma coleção de objetos. Por exemplo,
3
Operadores envolvendo conjuntos:
- diferença entre conjuntos
| união de conjuntos
& interseção de conjuntos
^ diferença simétrica
Os conjuntos
(4) | |||
(5) |
podem ser alocados como sets
e, então, podemos computar:
Aloque como set cada um dos seguintes conjuntos:
O conjunto dos números e que são divisíveis por 2.
O conjunto dos números e que são divisíveis por 3.
Então, compute o subconjunto de e que contém apenas os números divisíveis por e .
(Compreensão de sets.) Python disponibiliza a sintaxe de compreensão de sets. Por exemplo,
{’banana’}
Considere o conjunto
(6) |
Faça um código Python para extrair o subconjunto dos números pares do conjunto . Depois, modifique-o para extrair o subconjunto dos números ímpares. Dica: use de compreensão de sets.
Em Python, tuple é uma coleção ordenada e imutável de objetos. Por exemplo, na sequência alocamos um par, uma tripla e uma quadrupla ordenada usando tuples.
(1, 2) <class ’tuple’>
(-1, 1, 0) 3
(0.5, ’laranja’, {2, -1}, 2)
Os elementos de um tuple são indexados, o índice corresponde ao primeiro elemento, o índice ao segundo elemento e assim por diante. Desta forma é possível o acesso direto a um elemento de um tuple usando-se sua posição. Por exemplo,
{2, -1}
Pode-se também extrair uma fatia (um subconjunto) usando-se a notação :. Por exemplo,
(’laranja’, {2, -1})
Operadores básicos:
+ concatenação
(1, 2, 3, 4, 5)
* repetição
(1, 2, 1, 2)
in pertencimento
True
Use sets para alocar os conjuntos
(7) | |||
(8) |
Então, compute o produto cartesiano . Qual o número de elementos da ? Dica: use a sintaxe de compreensão de sets (consulte a Observação 2.6.2).
Aloque o gráfico discreto da função44endnote: 4O gráfico de uma função restrita a um conjunto é o conjunto . para . Dica: use a sintaxe de compreensão de conjuntos (consulte a Observação 2.6.2).
Um list é uma uma coleção de objetos indexada e mutável. Por exemplo,
[-1, 2, -3, -5] <class ’list’>
[1, 1, ’oi’, 2.5]
0 4
Os elementos de um list são indexados de forma análoga a um tuple, o índice corresponde ao primeiro elemento, o índice ao segundo elemento e assim por diante. Bem como, o índice corresponde ao último elemento, o ao penúltimo e segue. Por exemplo,
x[0] = 1 x = [-1, 2, -3, 3.14]
[10, -20, -3, 3.14]
Os operadores básicos de concatenação e de repetição também estão disponíveis para um list. Por exemplo,
[1, 2, 3, 4, 5] [1, 2, 1, 2]
list conta com várias funções prontas para a execução de diversas tarefas práticas como, por exemplo, inserir/deletar itens, contar ocorrências, ordenar itens, etc. Consulte na web Python Docs: More on Lists.
(Alocação versus Cópia.) Estudamos o seguinte exemplo
x = [2, 0, 1]
Em Python, dados têm identificação única. Logo, neste exemplo, e apontam para o mesmo endereço de memória. Modificar é também modificar e vice-e-versa. Para desassociar de , precisa receber uma cópia de , como segue
id(x) = 140476759980864 id(y) = 140476760231360 x = [2, 3, 1] y = [2, 0, 1]
(Anexar ou Estender.) Um list tem tamanho dinâmico, permitindo a anexação de um novo item ou sua extensão. A anexação de um item pode ser feita com o método list.append, enquanto que a extensão é feita com list.extend. Por exemplo, com o list.append temos
[1, 2, (3, 4)]
Enquanto, que com o list.extend obtemos
[1, 2, 3, 4]
A solução de
(9) |
pode ser aproximada pela iteração do método babilônico
(10) | |||
(11) |
para . Aloque uma lista com as quatro primeiras iteradas, i.e. . Dica: use list.append.
Uma matriz pode ser alocada como um encadeamento de lists. Por exemplo, a matriz
(14) |
pode ser alocada como a seguinte list
[[1, -2], [2, 3]]
Um dict é um mapeamento de objetos (um dicionário), em que cada item é um par chave:valor. Por exemplo,
{’nome’: ’triangulo’, ’perímetro’: 3.2} <class ’dict’>
O acesso a um item do dicionário pode ser feito por sua chave, por exemplo,
’triângulo’
Pode-se adicionar um novo par, simplesmente, atribuindo valor a uma nova chave. Por exemplo,
vértice B = (3,0)
Considere a função afim
(17) |
Implemente um dicionário para alocar a raiz da função, a interseção com o eixo e seu coeficiente angular.
Considere a função quadrática
(18) |
Implemente um dicionário para alocar suas raízes, vértice e interseção com o eixo .
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!