Introdução à Programação
Python
Professor:
Denílson C Oliveira
Conteúdo
2
Unidade 1: Estruturas de Dados Homogêneos –
1.1 Vetores. 1.2 Métodos de pesquisa, classificação e ordenação de vetores. 1.3
Matrizes.
Unidade 2: Ponteiros e Alocação Dinâmica de Memória.
Unidade 3: Estruturas de Dados Heterogêneas –
3.1 Registros ou Uniões. 3.2 Arrays de Registros.
Unidade 4: Arquivos –
4.1 Rotina para manipulação de arquivos. 4.2 Arquivos texto. 4.3 Arquivos Binários.
4.4 Arquivos de Registros.
Unidade 5: Introdução a Estrutura de Dados
5.1 Tipos abstratos de dados e especificações formais.
5.2 Listas encadeadas.
5.3 Pilhas.
5.4 Filas.
A linguagem
O que é Python?: Python é uma linguagem de programação criada por
3 Guido van Rossum em 1991. Os objetivos do projeto da linguagem eram:
produtividade e legibilidade. Em outras palavras, Python é uma linguagem
que foi criada para produzir código bom e fácil de manter de maneira
rápida. Entre as características da linguagem que ressaltam esses objetivos
estão:
baixo uso de caracteres especiais, o
que torna a linguagem muito
parecida com pseudo-código
executável;
o uso de identação para marcar
blocos;
quase nenhum uso de palavras-chave
voltadas para a compilação;
coletor de lixo para gerenciar
automaticamente o uso da memória;
etc.
A linguagem
4
Plataformas de Desenvolvimento
5 Liclipse:
Download: https://www.liclipse.com/download.html
Instalando: Material do Professor
Criando Projeto: Material do Professor
Plataformas de Desenvolvimento
6
Spyder + Anaconda:
Porque usar Anaconda? Praticidade. Essa é a resposta. Imagine que,
para começar a utilizar as ferramentas para realizar seus projetos e
estudos de Data Science você precisasse baixar e instalar o Python e
cada uma de suas bibliotecas. A menos que você esteja procurando
configurar seu computador especificamente, ou instalar as bibliotecas
a medida que progride, utilizar o Anaconda é a forma mais rápida e
eficaz para dar o pontapé inicial.
Spyder + Anaconda:
O que Vem no Pacote?
Jupyter Notebook: Essa é uma das ferramentas mais poderosas
8
e importantes que vem com o Anaconda. O Jupyter Notebook é
uma aplicação de código aberto que permite você criar e
compartilhar documentos com código dinâmico, visualizações de
gráficos, limpeza de dados e até textos explicatórios. O melhor
de tudo é que ele tem suporte a elementos HTML, o que vai
deixar sua apresentação mais linda.
Spyder + Anaconda:
O que Vem no Pacote?
IDE Spyder: O Spyder é uma IDE — Integrated Development
9
Environment, ou Ambiente de Desenvolvimento Integrado, em
tradução livre — de Python perfeita para quem está começando na
área. Embora seja utilizado por muitos usuários experientes
também, o Spyder é uma IDE bem simples, mas que possui
vários elementos úteis para você, como visualização de variáveis,
debug, editor e executor.
Spyder + Anaconda:
O que Vem no Pacote?
PIP: O Pip é um instalador e gerenciador de pacotes no Python
10
que vai deixar sua vida mais fácil. Instalar uma nova biblioteca
com o Pip é tão simples quanto tocar o céu da boca com a língua.
Por exemplo, imagine que você quer instalar a biblioteca
Selenium em seu computador. Tudo que você precisa fazer é
digitar no prompt de commando
pip + biblioteca + install, ou, no caso do
exemplo: pip selenium install.
Plataformas de Desenvolvimento
11
https://www.spyder-ide.org/
Operadores
12
Operadores Lógicos
Variáveis
13
Mais ?
Tópico 1.4 em: Aritmética com Python “Rogério da Silva Cavalcante”
Variáveis
20
MDC (Máximo Divisor Comum): Dados dois naturais 𝑎𝑎 e 𝑏𝑏 ambos não
nulos, diremos que 𝑑𝑑 e um divisor comum de 𝑎𝑎 e 𝑏𝑏 se 𝑑𝑑|𝑎𝑎 e 𝑑𝑑|𝑏𝑏.
Quando o mdc(𝑎𝑎,𝑏𝑏)=1, 𝑎𝑎 e 𝑏𝑏 são ditos primos entre si.
=
Funções Aritméticas
21
Se criamos programas para esses tipos de tarefas, como estudar a
movimentação periódica ou simulação de circuitos elétricos, precisaremos de
funções trigonométrica assim como números complexos. Embora não
possamos usá-las diretamente, podemos fazê-los através de dois módulos
matemáticos. Eles são o math e cmat.
Factorial (x):
Funções Aritméticas
23
GDC(x,y): Outra função útil no módulo math é gcd(x, y) que dá o Maior
Divisor Comun (GDC, no inglês) de dois números x e y.
Quando x e y são diferentes de zero, essa função retorna o maior inteiro
positivo que divide ambos.
Tambem podemos usá-la indiretamente para calcular o menor múltiplo
comum de dois números usando essa fórmula:
math.sqrt( x )
Funções Aritméticas
24
sqrt(x,y): Devolve a raiz quadrada de um número.
Sintaxe: math.sqrt( x )
Quando usamos?
Funções Trigonométricas
26
O que são: essas funções relacionam ângulos e lados de um triângulo. Elas
tem muitas aplicações, incluindo o estudo dos triângulos e a modelagem de
fenômenos periódicos como ondas de som e luz. Lembremo-nos que o
ângulo provido é em radiano.
Significado
Variáveis
29
Mantissa: Normalmente, toda calculadora científica possui a função que
permite calcular o valor do logaritmo decimal ou de base 10 de um número
n. A figura abaixo exibe a calculadora do Windows XP no modo científico,
com o resultado do logaritmo decimal de 127.
Observe que estão assinalados a característica do logaritmo (a parte inteira),
a mantissa (a parte decimal) com 31 casas e a função log que efetua o
cálculo. O objetivo é obter esse resultado, com menos casas decimais, a
partir dos conceitos de característica e mantissa do logaritmo decimal.
Variáveis
30
Mantissa:
Mais:
https://www.colegioweb.com.br/funcao-logaritma/como-obter-a-mantissa.html
https://www.blogviche.com.br/2006/06/25/caracteristica-mantissa-e-tabela-
logaritmica/comment-page-1/
Variáveis
31
math.log(x[, base]): Log de X em uma determinada base;
math.log2(x): Retorna o log de X especificamente na base 2. O
resultado é mais específico que se ultilizar a função anterior.
math.log10(x): Retorna o log de X especificamente na base 10. O
resultado é mais específico também.
Exercícios
32
A variável definida na linha 3 é uma lista inicializada com uma sequência de valores do
tipo string. A instrução for percorre todos esses elementos, um por vez e, em cada caso,
atribui o valor do item à variável n, que é impressa em seguida. O resultado, então, é a
impressão de todos os nomes contidos na lista.
Laço - For
38
fff
Laço - While
39
O comando while, por sua vez, faz com que um conjunto de instruções seja
executado enquanto uma condição for atendida. Quando o resultado passa
a ser falso, a execução é interrompida, saindo do loop, passa para o
próximo bloco.
Sintaxe
while condição:
comandos
Laço - While
40
No caso, temos a instrução if, a instrução while a instrução for que será
estudado na sequência e a estrutura de tratamento de exceção try
except que estudaremos futuramente.
Laço - While
41
Laço – While & Break
42
Separamos funções
por vírgula;
String: Len ( )
50
import sys
if sys.version_info.major == 2:
usuario = raw_input(‘Insira seu login: ‘)
elif sys.version_info.major == 3:
usuario = input(‘Insira seu login: ‘)
String: lower( ) & capitalize ( )
58
String: upper() & swapcase()
59
upper ( ): Retorna uma cópia da string trocando todas as letras para
maiúsculo.
str.startswith(str, beg=0,end=len(string));
String: startswith()
62
startswith ():
String: endswith()
63
endswith(): é usado para determinar se uma seqüência termina com o
sufixo especificado, se terminam com o sufixo especificado retorna
True, caso contrário, False. Parâmetros opcionais "start" e "fim" para a
posição de início e fim da seqüência de pesquisa.
Sufixo: O parâmetro pode ser uma string ou um elemento.
Começar: a posição de início da cadeia.
Final: posição final dos personagens.
Novidades
String: replace( )
74
find( ): X=
String: ljust()
ljust ( ): Ajusta a string para um tamanho mínimo, acrescentando
77 espaços à direita se necessário.
Vamos dar uma olhada nas possibilidades de uso desses dois parâmetros.
Em primeiro lugar, as categorias permitidas são:
locale.LC_MONETARY: Formatação de valores monetários
Ex: locale.setlocale(locale. LC_MONETARY, “depende do sistema”)
Importante: No caso do parâmetro locale, as strings aceitas dependem do sistema em que o código está
rodando. Por exemplo, em sistemas baseados em UNIX, podemos ver uma lista dos locales registrados em
nossa máquina com o seguinte comando no Terminal: locale -a
Trabalhando com Números
86
Vimos esta
Trabalhando com Números
87
Lista
Usando um Loop (Um for) para passar por todos os elementos e imprimir.
Claro que podemos fazer outro elementos
Listas: Imprimindo
93
Lista
Obs: No programa abaixo é impresso até uma posição antes (ou uma
depois) do segundo número (X:Y)
Listas: Verificando elemento
94
Lista
Deletando por posições
Listas: Deletando elemento
101
Lista
Deletando por elementos
Para criar uma tupla com um único elemento, é preciso incluir uma
vírgula final:
t1 = 'a',
Print t1
TUPLAS
107
Como tuplas são imutáveis, você não pode alterar os elementos, mas
pode substituir uma tupla por outra:
TUPLAS & zip ()
110
Zip (): é
uma função integrada que recebe duas ou mais
sequências e devolve uma lista de tuplas onde cada tupla
contém um elemento de cada sequência
O resultado é um objeto zip que sabe como percorrer os
pares. O uso mais comum de zip é em um loop for:
Um objeto zip é um tipo de iterador,
ou seja, qualquer objeto que
percorre ou itera sobre uma
sequência. Iteradores são
semelhantes a listas em alguns
aspectos, mas, ao contrário de listas,
TUPLAS & zip ()
111
Atribuindo Valores
É possível atribuirmos valores diferentes a diferentes variáveis, as quais se
comportem como uma tupla.
A única obrigação é que a quantidade de variáveis que tenhamos de uma
lado deve ser igual à quantidade de resultados do outro.
A função integrada divmod toma dois argumentos e devolve uma
tupla de dois valores: o quociente e o resto. Você pode guardar o
resultado como uma tupla:
TUPLAS: atribuindo nomes
113
Namedtuple():
TUPLAS: atribuindo nomes
115
Namedtuple():
TUPLAS: atribuindo nomes
116
Namedtuple():
Conjunto
117
Conjunto: Um conjunto (set) é um tipo de dados de coleção, suportando o
operador de associação in, a função len() e é iterável. Conjuntos não
possuem noção de ordem por isso seus elementos não podem ser acessados
com colchetes [ ] nem podem ser fatiados.
Os conjuntos (set) não aceitam valores repetidos ao tentar criar um conjunto
com valores repetidos eles serão descartados só sobrando um valor do
mesmo.
Para criar um conjunto basta colocar os valores entre chaves {} :
c = {‘Paulo’, ‘Claudio’, ‘Marcio’, ‘Erica’}
Podemos ainda criar conjuntos a partir de uma lista ou tupla com set, uma
grande vantagem é por exemplo limpar os dados repetidos em uma lista:
li='Maçã','Laranja','Uva','Abacaxi','Maçã',
'Abacate', 'Laranja'] >>>
c = set(li)
Dicionários
118
Dicionários: Dicionário é um conjunto de valores, onde cada valor é
associado a uma chave de acesso. Um dicionário em Python é
declarado da seguinte forma:
Nome_dicionario = { chave1 : valor1,
chave2 : valor2, chave3 : valor3,
......
chaveN : valorN}
Os valores do dicionário não possuem ordem, por isso a ordem de
impressão dos valores não é sempre a mesma.
Dicionários (operações)
119
Del (): Exclui um item in- formando a chave.
In (): Verificar se uma chave existe no dicionário.
Keys (): Obtém as chaves de um dicionário.
values (): Obtém os valores de um dicionário.
Dicionários (operações)
120
Hum… uma exceção de tipo KeyError indicando que a chave 'João' não foi
encontrada. Mas é um pouco estranho imprimir toda essa mensagem para o
usuário, não é? Pode ser confuso… Será que não podemos substituir isso?
Os dicionários possuem um método específico para busca de valores, o get(),
no qual podemos passar como parâmetros a chave que queremos e um valor
padrão para retornar caso essa chave não seja encontrada:
Dicionários (operações)
121
Deletando
Dicionários (operações)
122