Buscar

01_IntroPython

Prévia do material em texto

Curso de Licenciatura em Computação
Disciplina: Linguagem de Programação I
Introdução a Python
• Mário Meireles Teixeira
Depto. de Informática, UFMA
mario@deinf.ufma.br
2018
1
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Origens de Python
• Python foi criada por Guido van Rossum, pesquisador do CWI, na
Holanda
• Tem suas raízes na linguagem ABC, na qual Rossum trabalhou durante o 
projeto Amoeba, um famoso SO distribuído da década de 80
• O nome Python tem a ver com o programa de TV britânico ’Monty 
Python’ e não com cobras…
• Versões de Python:
q Python 0.9: 1991
q Python 1.0: 1994
q Python 2.0: 2000
q Python 3.0: 2008
2
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Interpretador de Python
3
• Python possui um shell interativo onde é possível testar os comandos da 
linguagem e até mesmo escrever programas completos
• Nesta disciplina, utilizaremos o Python na versão 3.x, portanto no seu 
computador deve aparecer algo semelhante a isso:
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Detalhes Internos de Python
4
• Por muitos, Python é considerada uma linguagem de scripts interpre-
tada. Na verdade, Python é tanto compilada quanto interpretada
q O código-fonte em Python é traduzido para uma linguagem intermediária 
(bytecode), o qual é executado em uma máquina virtual (PVM = Python Virtual 
Machine)
Código-
fonte
Bytecode PVM
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Variáveis
5
• Variáveis:
q Uma variável é um local nomeado na memória onde um programador pode 
armazenar dados e, posteriormente, recuperar esses dados pelo nome da 
variável
q Os programadores escolhem os nomes das variáveis
q Exemplos: 
X: 10 110
Y: 14
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Nomes de Variáveis
6
• Regras para nomes de variáveis (identificadores) em Python:
q Deve começar com uma letra [A..Z][a..z] ou underscore _
q Pode conter números, mas não como caracter inicial
q Distingue maiúsculas de minúsculas (case sensitive)
q Não pode ser uma palavra reservada da linguagem
corretos: total acc2 i media arq_notas
errados: 23spam #speed eggs.12
não convencionais: spam Spam média
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Palavras Reservadas
7
• Palavras reservadas:
q São palavras definidas pela gramática da linguagem, portanto não podem ser 
usadas como identificadores
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Declaração de Variáveis
8
• Em Python, não é preciso declarar uma variável antes de utilizá-la (ao 
contrário de C, C++, Java e outras linguagens)
• O tipo da variável também é dinâmico, i.e., pode mudar durante a 
execução do programa:
• O Python se encarrega das transformações internas para os diferentes 
tipos de dados
x = 20 # tipo é int
x = 2.5 # tipo mudou para float
x = ”teste” # agora é string
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Tipos de dados inteiros
9
• Existem 4 tipos de inteiros em Python:
q Números decimais
o dec = 4321
q Octais
o um número prefixado por ”0o” ou ”0O” (zero e ”o” minúsculo ou maiúsculo) 
o oct_num = 0o10
q Hexadecimais
o um número prefixado por ”0x” ou ”0X”
o hex_num = 0xAF35
q Binários
o um número prefixado por ”0b” ou ”0B”
o bin_num = 0b10110011
• Em Python 2, havia dois tipos inteiros: int (p.ex., 20) e long int (p.ex., 238383383L)
• Em Python 3, existe apenas um tipo inteiro de tamanho ilimitado
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Atribuição de valores
10
• Instruções de atribuição:
q Atribuímos um valor a uma variável usando o comando de atribuição =
q Uma declaração de atribuição consiste em uma expressão no lado direito do
sinal de igual e uma variável à esquerda para armazenar o resultado:
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Operadores Aritméticos
11
• Os seguintes operadores aritméticos são válidos em Python:
Operação Operador Exemplo
Adição + 2 + 3
Subtração - 4 - 2
Multiplicação * 3 * 5
Divisão / 5 / 2
Divisão inteira // 5 // 2
Módulo (resto) % 5 % 2
Exponenciação ** 2 ** 4
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Operadores Aritméticos
12
• Exemplos: 
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• Python 2:
q divisão de inteiros resulta em inteiro
q se um dos operandos for float, o 
resultado será float
Divisão de Inteiros
13
• Python 3:
q divisão de inteiros tem como 
resultado um float
q para divisão inteira, use //
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Expressões Numéricas
14
• As expressões contêm uma combinação de números e operadores:
delta = b**2 – 4*a*c
• Em uma expressão com diferentes operadores, é preciso conhecer a 
ordem de precedência destes para calcular o valor da expressão:
x = x – 7 + 3 * 4
y = 1 + 2 * 3 - 4 / 5 ** 6
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Precedência de operadores
15
• É a seguinte a ordem de avaliação das expressões algébricas, da maior
para a menor precedência:
q Parênteses
q Exponenciação
q Multiplicação e Divisão
q Adição e Subtração
q Da esquerda para a direita
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Precedência de operadores
16
• Exemplo:
• Parênteses podem deixar mais clara a ordem de precedência:
x = 1 + (((2**3) / 4) * 5)
1 + 2 ** 3 / 4 * 5
1 + 8 / 4 * 5
1 + 2 * 5
1 + 10 = 11
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Strings
17
• Ao contrário de C ou C++, Python já possui um tipo str implícito pré-definido 
• Uma string pode ser colocada entre “ (aspas) ou ‘ (apóstrofos)
• Exemplos:
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• Uma string em Python consiste em 
uma sequência de caracteres, 
numerados a partir de 0:
Strings
• Também é possível contar os 
índices a partir da direita, 
utilizando -1, -2 e assim por diante:
>>> s = "Primeira"
>>> s[0]
'P'
>>> s[4]
'e'
>>>
>>> s = "Primeira"
>>> s[-1]
'a'
>>> s[-2]
'r'
>>>
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• Concatenação
q Strings podem ser concatenadas 
usando o operador + :
Algumas funções de Strings
19
• Repetição
q O operador * faz com que uma string
seja repetidamente concatenada:
>>> s1 = "Python "
>>> s2 = "3"
>>> s1 + s2
'Python 3’
>>>
>>> s1 = "*-*-"
>>> s1*3
'*-*-*-*-*-*-'
>>>
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• Indexação
• Tamanho (length)
Algumas funções de Strings
20
• Fatiamento (slicing)
q Substrings podem ser obtidas com a 
notação [i:j]
q a extremidade direita do intervalo 
não é incluída na substring
>>> "Teste"[2]
's'
>>>
>>> len("Teste")
5
>>>
>>> s = "Python"
>>> s[1:3]
'yt’
>>>
Prof. Mário Meireles UFMA / Licenciaturaem Computação – Ling. Programação I
Tipos dinâmicos em Python
21
• Os tipos em Python são implícitos, i.e., não é preciso declarar a variável, como em 
outras linguagens. Tipos primitivos implícitos: int, float, str
• O tipo da variável é inferido pelo interpretador a partir do valor atribuído a ela, 
sendo dado o tratamento adequado:
• O operador + tem comportamento diferente conforme o tipo dos operandos
>>> x = 1 + 2
>>> x
3
>>> x = '1' + '2'
>>> x
'12'
>>> x = '12'
>>> x = 3 + x
TypeError: unsupported... 
>>> x = 3 + int(x)
>>> x
15
>>> x = '12'
>>> y = 3
>>> x = y + x
TypeError: unsupported... 
>>> x = str(y) + x
>>> x
'312'
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• A função input() é usada em 
Python 3 para entrada de dados 
pelo teclado, tendo como valor 
de retorno uma string
• Em Python 2, usava-se 
raw_input() com esta finalidade
Entrada de dados
22
>>> nome = input('Qual o seu nome? ')
Qual o seu nome? Pedro
>>> idade = input('Qual a sua idade? ')
Qual a sua idade? 23
>>> nome
'Pedro'
>>> idade
'23'
>>> print(nome + ' tem ' + idade + ' anos.')
Pedro tem 23 anos.
>>>
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
• Para comentar uma linha de texto, use 
#. Qualquer coisa após este símbolo é 
ignorada pelo Python:
Comentários
23
• Para comentários em múltiplas linhas, 
coloque entre “”” “”” (três aspas):
# Solicita o valor do salário
>>> sal = input('Qual o seu salário? ')
Qual o seu salário? 1200
>>> sal
'1200'
>>> float(sal) # Converte para float
1200.0
""" Solicita as horas trabalhadas
... e converte para inteiro """
>>> horas = input('Qual a sua jornada? ')
Qual a sua jornada? 40
>>> horas
'40'
>>> int(horas)
40
>>>
Prof. Mário Meireles UFMA / Licenciatura em Computação – Ling. Programação I
Material adicional
24
• Leitura do capítulo sobre Conceitos de Python do curso interativo “Como Pensar 
Como um Cientista da Computação” 
(https://python.ime.usp.br/pensepy/static/pensepy/02-Conceitos/conceitos.html)

Continue navegando