Programação
em Python
AULA 03 - EXA 801 – ALGORITMOS E
PROGRAMAÇÃO I
Photo by Google DeepMind
Programação
08/03/2024
De algoritmos para Programas
• Definição de programação:
• A sequência de planejamento
• Projeto
• Escrita e Testes de instruções
• Depende de:
• Regras léxicas, sintáticas e semânticas
• Organização
• Otimização
• Documentação
• Testes
08/03/2024
Categorias de linguagens
INTERPRETADAS COMPILADAS
Quando a linguagem depende de um Quando o código é executado pela CPU
interpretador, chamado de Máquina Virtual diretamente, para isso, seu código fonte é
(Virtual Machine, VM). traduzido para código de máquina por um
compilador.
Nesse caso, a VM é responsável por
interpretar o código fonte em tempo de O compilador traduz o código fonte antes da
execução (chamado run time). execução (chamado de compile time).
Exemplos: Python, Ruby, Javascript Exemplos: C, Rust, Go, Swift
08/03/2024
CPython
O INTERPRETADOR DO PY THON
08/03/2024
"O Python tem sido uma parte importante do
Google desde o início e continua sendo à
medida que o sistema cresce e evolui.
Atualmente, dezenas de engenheiros do
Google usam Python, e estamos procurando
mais pessoas com habilidades nessa
linguagem."
– PETER NORVIG, DIRETOR DE PESQUISA DE QUALIDADE
DA GOOGLE, INC.
Aspectos da linguagem
A linguagem Python foi criada por Guido van Rossum em 1991 e possui um modelo de
desenvolvimento comunitário, aberto e gerenciado pela Python Software Foundation.
Porquê Python?
◦ Sintaxe pequena e limpa
◦ Tipagem dinâmica
◦ Semântica expressiva
◦ Feedback imediato
◦ Design estrutural
◦ Software Open Source relevante
08/03/2024
Uso do Python como linguagem introdutória nos
departamentos americanos (2014)
TOP 10 DEPARTAMENTOS TOP 39 DEPARTAMENTOS
Não Usa
20%
Não Usa
31%
Usa
69%
Usa
80%
08/03/2024
Estrutura de um script
As instruções são feitas sequencialmente, exemplo:
print('Alo Mundo!')
print('Bom dia.')
print('Boa sorte!')
08/03/2024
Conceitos da linguagem
Keywords
◦ Palavras com significados especiais.
◦ Não podem ser usadas como variáveis.
◦ Exemplo: if, for, while
Comentários
◦ Comentários começam com #.
Case sensitive
◦ Python é case-sensitive, portanto, minhavariável e MinhaVariável são diferentes.
08/03/2024
Operadores aritméticos
Adição Subtração Multiplicação
>>> 10 + 3 >>> 10 - 3 >>> 10 * 3
13 7 30
Divisão Divisão inteira Resto de Divisão
>>> 10 / 3 >>> 10 // 3 >>> 10 % 3
3.3333333333333335 3 1
08/03/2024
Operadores aritméticos
Valor Negativo Potência
>>> -5 >>> 10 ** 3
-5 1000
08/03/2024
Variáveis
E SPAÇ O DE M E M Ó R I A ALO C ADO PAR A GUAR DAR VALO R E S Q UE P O DE M SE R M O D I F I C ADO S
DUR AN T E A E X E C UÇ ÃO DE UM P R O GR AM A.
08/03/2024
Atribuição de valores
PYTHON PSEUDOCÓDIGO
>>> nota = (7 + 8 + 6) / 3 nota ← (7 + 8 + 6) / 3
Obs.: Em pseudocódigo, o símbolo de
atribuição é o ←.
08/03/2024
Uso de variáveis
No Python, não há necessidade de declarar variáveis explicitamente.
nota_1 = 10
nota_2 = 5
media = (nota_1 + nota_2) / 2
print(media)
08/03/2024
Tipos básicos
Int Bool
◦ Números inteiros ◦ Valor lógico (booleano)
◦ {12, -3, 0, 65_535} ◦ {True, False}
Float Str
◦ Números reais (ponto flutuante) ◦ Texto
◦ {3.1416, 6.02e23, 0.0} ◦ {"casa grande", 'casa'}
Complex
◦ Números complexos
◦ {23-4j, -3+1j, 2j}
08/03/2024
Desafio
Qual o valor de x, y e z?
x = 4
y = x + 3
z = y * 2
x = z + x
08/03/2024
Uso de constantes
Constantes no Python não passam de convenções. Por convenção, elas são escritas em caixa
alta, ou SCREAM_CASE.
PI = 3.1415926536
print('Tamanho da circunferência de um circulo de raio 3: ')
print(2 * PI * 3)
print('Tamanho da circunferência de um circulo de raio 5: ')
print(2 * PI * 5)
08/03/2024
Incremento e decremento
INCREMENTO DECREMENTO
x += 1 x -= 3
# equivalente a: # equivalente a:
x = x + 1 x = x - 3
08/03/2024
Formatação de strings
C O M O F O R M ATAR ST R I N G S .
08/03/2024
Formatação de saída
# Estilo antigo (baseado em C)
print("%s %d" % (nome, idade))
# Usando str.format
print("{} {}".format(nome, idade))
print("{1} {0}".format(idade, nome))
print("{idade} {nome}".format(idade=idade, nome=nome))
# Usando f-string
print(f"{nome} {idade}")
08/03/2024
Caracteres de escape
Caractere Significado
\n Nova linha
\t Tab
\b Retrocesso
\” Aspas
\\ Barra
08/03/2024
Formatação baseada no C
Padrão Formatação
%c Caractere simples
%d Decimal
%e Notação científica
%f Ponto flutuante (float)
%o Octal
%s Cadeia de caracteres
(string)
%u Decimal (sem sinal,
unsigned)
%x Hexadecimal
08/03/2024
Exemplo de saída
>>> "%d" % 26
'26'
>>> "%f" % 26
'26.000000'
>>> "%e" % 26
'2.600000e+01'
>>> "26 em hexadecimal: %x" % 26
'26 em hexadecimal: 1a'
>>> "Primeira letra: %c" % "A"
'Primeira letra: A'
>>> "Disciplina: %s-%d" % ("EXA", 854)
'Disciplina: EXA-854'
>>> codigo = "EXA"
>>> num = 854
>>> "Disciplina: %s-%d" % (codigo, num)
'Disciplina: EXA-854'
08/03/2024
Exemplo de saída
>>> "{:d}".format(26)
'26'
>>> "{:f}".format(26)
'26.000000'
>>> "{:e}".format(26)
'2.600000e+01'
>>> "26 em hexadecimal: {:x}".format(26)
'26 em hexadecimal: 1a'
>>> "Primeira letra: {}".format("A")
'Primeira letra: A'
>>> "Disciplina: {codigo}-{numero}".format(codigo="EXA", numero=854)
'Disciplina: EXA-854'
>>> codigo = "EXA"
>>> num = 854
>>> "Disciplina: {codigo}-{numero}".format(codigo=codigo, numero=num)
'Disciplina: EXA-854'
08/03/2024
Uso de f-strings
Também chamada de interpolação de strings, esse método permite uma formatação elegante da
saída.
>>> codigo = "EXA"
>>> num = 854
>>> f"Disciplina: {codigo}-{numero}"
'Disciplina: EXA-854’
>>> f"{26:f}"
'26.000000'
08/03/2024
Definindo tamanho de campos
C-STYLE STR.FORMAT F-STRINGS
>>> "%2d" % 350 >>> "{0:2}".format(350) >>> f"{350:2}"
'350' '350' '350'
>>> "%4d" % 350 >>> "{0:4}".format(350) >>> f"{350:4}"
' 350' ' 350' ' 350'
>>> "%6d" % 350 >>> "{0:6}".format(350)
>>> f"{350:6}"
' 350’
' 350' ' 350'
08/03/2024
Arredondando campos
C-STYLE STR.FORMAT F-STRINGS
>>> "%4.2f" % 3456.78 >>> "{:4.2f}".format(3456.78) >>> f"{3456.78:4.2f}"
'3456.78' '3456.78' '3456.78'
>>> "%3.2f" % 3456.78
>>> "{:3.2f}".format(3456.78) >>> f"{3456.78:3.2f}"
'3456.78'
>>> "%3.1f" % 3456.78 '3456.78' '3456.78'
'3456.8' >>> "{:3.1f}".format(3456.78) >>> f"{3456.78:3.1f}"
>>> "%10.3f" % 3456.78 '3456.8' '3456.8'
' 3456.780' >>> "{:10.3f}".format(3456.78) >>> f"{3456.78:10.3f}"
>>> "%.2f" % 3456.7878
' 3456.780' ' 3456.780'
'3456.79'
>>> "{:.2f}".format(3456.78) >>> f"{3456.78:.2f}"
'3456.78' '3456.78'
08/03/2024
Alinhando campos
>>> "%10.2f %10.2f" % (8, 15.3)
C-STYLE ' 8.00 15.30'
>>> "{:10.2f} {:10.2f}".format(834.0, 1500.55)
STR.FORMAT ' 834.00 1500.55'
>>> f"{834:10.2f} {1500.55:10.2f}"
F-STRINGS ' 834.00 1500.55'
08/03/2024
Preenchendo campos com 0
>>> "%04d" % 21
C-STYLE '0021'
>>> "{:04d}".format(21)
STR.FORMAT '0021'
>>> f"{21:04d}"
F-STRINGS '0021'
08/03/2024
Alinhamento de strings
Alinhar à direita
>>> "{:>16}".format("EXA-801")
' EXA-801’
Alinhar à esquerda
>>> "{:<16}".format("EXA-801")
'EXA-801 ‘
Alinhar ao meio
>>> "{:^16}".format("EXA-801")
' EXA-801 ‘
Alinhar e preencher
>>> "{:~^16}".format("EXA-801")
'~~~~EXA-801~~~~~'
08/03/2024
Formatação de caracteres
A tabela ASCII possui 256 códigos de 0 a 255 (um >>> "%c %c %c %c" % ("A", 65 , 0x41, 0o101)
'A A A A’
byte).
A tabela Unicode UTF possui códigos de 1 a 4 bytes
e inclui a tabela ASCII quando os códigos têm
apenas um byte.
Por padrão, Python utiliza a tabela UTF-8 para
codificação de caracteres.
08/03/2024
Tabela ASCII
08/03/2024
Entrada e Saída de dados
COMUMENTE CHAMADO DE I/O (INPUT/OUTPUT)
08/03/2024
print e input
SAÍDA ENTRADA
print("Olá, mundo!") A função input retorna uma string, de acordo com a
# => Olá, mundo! entrada do usuário no prompt.
print("Olá,", end=" ")
print("Mundo!") nome = input("Seu nome: ")
# => Olá, Mundo! idade = int(input("Idade: "))
altura = float(input("Altura: "))
08/03/2024
Boas Práticas
08/03/2024
Boas Práticas
Regras práticas para programas legíveis:
◦ Usar comentários e documentar o código
◦ Dar nomes significativos às variáveis
◦ Colocar parênteses nas expressões para que a ordem das operações fique clara
◦ Usar recuo para separar visualmente os blocos do programa
◦ Alinhar informações relacionadas
◦ Evitar linhas maiores de 80 caracteres, quebrando-as quando necessário
08/03/2024
Ambiente de
desenvolvimento
COMPREENDENDO A IDE
08/03/2024
O ambiente de desenvolvimento
IDE
◦ Ambiente Integrado de Desenvolvimento (IDE, do inglês Integrated Development Environment) é um
software ou pacote de software que facilita a tarefa de programação.
◦ Constam:
◦ Um editor de texto (com recursos de ressaltar a sintaxe por meio de cores, identificação de erros, identificação
automática, autocompletar, etc.);
◦ um compilador (ou um interpretador) para transformar o código-fonte em código de máquina compreensível
pelo computador;
◦ um depurador (debugger) para permitir localizar erros durante a execução do programa;
◦ outras ferramentas para automatizar o processo de produção de software.
08/03/2024
IDEs e editores disponíveis
Visual Studio Code
Pycharm
IDLE (padrão do Python)
Spyder
Atom
PyDev
Sublime
NeoVim
08/03/2024
Python Software Foundation. Quotes about Python. Python.org, 2024.
Available from: https://www.python.org/about/quotes/. Acessed: 29 Feb
2024.
GUO, Philip. Python Is Now the Most Popular Introductory Teaching Language
at Top U.S. Universities. Communications of the ACM, 7 Jun 2014. Available
from:
Referências https://web.archive.org/web/20240111170811/https://cacm.acm.org/blog
s/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-
language-at-top-us-universities/fulltext. Acessed: 29 Feb 2024.
08/03/2024