2019
Abra um terminal de comando e execute "python".
Se Python estiver instalado em seu computador será inicializado a shell de Python.
$ python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Ola turma")
Ola turma
>>> 5+5
10
>>>
A shell é muito útil durante a criação de um programa pois você pode já testar partes do seu código para saber se está funcionando como o esperado.
Mas na maioria das vezes criaremos um código completo que deve ser salvo em um arquivo com a extensão .py.
Depois este código poderá ser executado em um terminal da seguinte forma
$python nomeArquivo.py
Um programa em Python é uma sequencia de definições e comandos que serão executados pelo interpretador.
A estrutura básica é a seguinte:
Comando1
.
.
.
ComandoN
O programa deve ter um comando por linha.
Os comandos serão executados nesta ordem, de cima para baixo, um por vez.
Exemplo:
print("Ola turma de MC102")
print("Vamos programar em Python")
Exemplo:
print("Ola turma de MC102") print("Vamos programar em Python")
Este programa gera um erro pois temos dois comandos em uma mesma linha.
Você pode no entanto usar um ponto e vírgula ao final de cada comando para usar vários comandos em uma mesma linha:
print("Ola turma de MC102"); print("Vamos programar em Python");
Este programa executa sem problemas.
Mas neste curso sempre usaremos o padrão de um comando por linha.
Um programa executa comandos para manipular informações/dados.
Qualquer dado em Python é um “objeto” ou valor , que é de um certo tipo específico.
O tipo de um objeto/valor especifica quais operações podem ser realizadas sobre o objeto.
Por exemplo, o número 5 é do tipo int em Python.
Definição Variáveis são uma forma de se associar um nome dado pelo programador com um valor.
altura = 10
largura = 3
a = 29
Deve começar com uma letra (maíuscula ou minúscula) ou subcrito(_). Nunca pode começar com um número.
Pode conter letras maiúsculas, minúsculas, números e subscrito.
Não pode-se utilizar como parte do nome de uma variável:
{ ( + - * / \ ; . , ?
Letras maiúsculas e minúsculas são diferentes:
casa = 4
Casa = 3
O comando = do Python é o comando de atribuição. Ele associa a variável do lado esquerdo do comando com o valor (ou mais corretamente expressão) do lado direito do comando.
a = 10
b = 11
c = 10
b = 20
Se uma variável for usada sem estar associada com nenhum valor, um erro ocorre.
No exemplo abaixo não podemos usar a variável c, pois esta não foi definida (associada com algum objeto).
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 10
>>> b = 10
>>> a = a+b
>>> a
20
>>> a = a + c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined
Note o nome do erro: NameError:
- isso indica uma variavel ( name ’c’
) que nao tem um valor armazenado nela
O comando de atribuição pode conter expressões do lado direito:
variável = expressão
Atribuir um valor de uma expressão para uma variável significa calcular o valor daquela expressão e somente depois associar o valor calculado com a variável.
a = 3
b=3+10
c = (6.57 * 90) + 40
print(a)
print(b)
print(c)
Python possui os seguintes tipos básicos que veremos nesta aula:
int: Corresponde aos números inteiros. Exe: 10, -24.
float: Corresponde aos números racionais. Exe: 2.4142, 3.14159265.
str ou string: Corresponde a textos. Exe: "Ola turma", "Agora vai!".
bool: Corresponde a apenas 2 valores: True
e False
. Sao chamados de booleanos
Os outros tipos básicos como listas, tuplas, conjuntos e dicionários serão vistos ao em outras aulas do curso.
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 98
>>> type(a)
<class 'int'>
>>> b = 'ola turma'
>>> type(b)
<class 'str'>
>>>
Valores do tipo int armazenam valores inteiros Exemplos: 3, 1034, e -512.
O tipo int possui precisão arbitrária (limitado à memória do seu computador).
Neste curso usamos como padrão Python3, por isso inteiros possuem precisão arbitrária, ao contrário de Python2.
Objetos do tipo float armazenam valores “reais”.
Literais do tipo float são escritos com um ponto para separar a parte inteira da parte decimal. Exemplos: 3.1415 e 9.8.
Possuem problemas de precisão pois há uma quantidade limitada de memória para armazenar um número real no computador.
Notem no exemplo abaixo o erro de precisão:
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/10.0
0.1
>>> 0.1+0.2
0.30000000000000004
Note o tipo das variáveis, problemas de precisão e problemas de overflow.
Python 3.4.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 10.0/3.0
>>> a
3.3333333333333335
>>> type(a)
<type 'float'>
>>> a = 10000000000000000.2
>>> a
1e+16
>>> a = a*a*a*a*a
>>> a
1e+80
>>> a = a*a*a*a*a
>>> a
inf
>>>
Objetos do tipo string armazenam textos.
Um literal do tipo string deve estar entre aspas simples ou aspas duplas. Exemplos de strings:
‘Olá Brasil!’ ou "Olá Brasil".
Python 3.4.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 'Olá Brasil!'
>>> type(a)
<type 'str'>
>>> a
'Olá Brasil!'
>>>
Veremos posteriormente neste curso diversas operações que podem ser realizadas sobre objetos do tipo string.
String podem conter letras com acentos, letras de outras linguas, etc.
Os nomes de variáveis também podem conter acentos, letras de outras linguas, mas recomendamos fortemente que vc nao faça isso!
a = 3
print(a)
a = 90.45
print(a)
a = "Ola voces!"
print(a)
a = True
print(a)
Qual o valor armazenado na variável a no fim do programa?
d = 3
c = 2
b = 4
d = c + b
a = d + 1
a = a + 1
print(a)
Você sabe dizer qual erro existe neste programa? Tente rodar o programa abaixo.
d = 3.0
c = 2.5
b = 4
d = b + 90
e = c * d
a = a + 1
print(a)
print(e)
Para imprimir um texto, utilizamos o comando print.
O texto pode ser um literal do tipo string.
print('Ola Pessoal!')
Saída:
Ola Pessoal!
No meio da string pode-se incluir caracteres de formatação especiais.
O símbolo especial \backslashn
é responsável por pular uma linha na saída.
print('Ola Pessoal! \n Ola Pessoal!!')
Saída:
Ola Pessoal!
Ola Pessoal!!
Podemos imprimir, além de texto puro, o conteúdo de uma variável utilizando o comando print.
Separamos múltiplos argumentos a serem impressos com uma vírgula.
a = 10
print('A variavel contem o valor', a)
A variavel contem o valor 10
a=10
b = 3.14
print('a contem o valor',a,'. ja b contem o valor',b)
a contem o valor 10 . ja b contam o valor 3.14
A função print sempre pula uma linha ao final da impressão. Descubra na internet como usar o print de forma que ele nao mude de linha no final
a função print sempre coloca um branco entre os valores que são impressos. Descubra como mudar isso.
Realiza a leitura de dados a partir do teclado.
Aguarda que o usuário digite um valor e atribui o valor digitado à uma variável.
o dado lido é do tipo string.
print("Digite um numero:")
a = input()
print("O numero digitado: ", a)
print(type(a))
print("Digite um numero:")
a = input()
b = int(a)
b = b*10
print("O numero digitado vezes 10 e: ", b)
print("Digite um numero:")
a = float(input())
a = a*10
print("O numero digitado vezes 10 e ", a)
Note float(input())
. O resultado da leitura do dado (um string) é convertido direto para float, sem salva-lo numa variável.
Nos dois exemplos anteriores é esperado que o usuário digite um número.
Se o usuário digitar um texto não numérico o programa encerrará com um erro de execução.
int("abc")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'
Note o nome do erro: ValueError:
e a razão do erro invalid literal for int()
e o valor ’abc’
Constantes e variáveis são expressões.
Uma expressão também pode ser um conjunto de operações aritméticas, lógicas ou relacionais utilizadas para fazer “cálculos” sobre os valores das variáveis. Exemplo de expressão:
a + b
Calcula a soma de a e b.
a / 9
Calcula divisão de a e b por 9.
Os operadores aritméticos são: +, -, *, /, //, % , **
Soma: expressão + expressão
>>> 56+9
65
Subtração: expressão - expressão
>>> 56-9
47
Produto expressão * expressão
>>> 56*9
504
expressão / expressão : Calcula a divisão de duas expressões. O resultado é sempre um número ponto flutuante.
>>> 27/9
3.0
expressão // expressão : Calcula a divisão de duas expressões. Se os operandos forem inteiros a divisão é inteira.
>>> 5//2
2
expressão ** expressão : Calcula o valor da expressão à esquerda elevado ao valor da expressão à direita.
>>> 2**4
16
>>> 2.2**4
23.425600000000006
expressão % expressão : Calcula o resto da divisão (inteira) de duas expressões.
>>> 5 % 2
1
>>> 9 % 7
2
>>> 2 % 5
2
No exemplo abaixo, quais valores serão impressos?
print(29 % 3)
print(19 % 5)
print(3 % 15)
As expressões aritméticas (e todas as expressões) operam sobre outras expressões.
É possível compor expressões complexas como por exemplo:
a = b *( (2 / c)+(9 + d * 8) )
Qual o valor da expressão 5 + 10 % 3
? Não sabemos ainda. O que sera executado primeiro? o +
ou o %
E da expressão 5 * 10 % 3
? Não sabemos ainda
Precedência é a ordem na qual os operadores serão avaliados quando o programa for executado. Em Python, os operadores são avaliados na seguinte ordem:
**
*, /, //, na ordem em que aparecerem na expressão.
%
+ e -, na ordem em que aparecerem na expressão.
Exemplo: 8+10*6 é igual a 8+60 que é igual a 68
e 5 + 10 % 3
?
e 5 * 10 % 3
?
(expressão ) também é uma expressão, que calcula o resultado da expressão dentro dos parênteses, para só então calcular o resultado das outras expressões.
5 + 10 % 3 é igual a 6
(5 + 10) % 3 é igual a 0
Você pode usar quantos parênteses desejar dentro de uma expressão.
Use sempre parênteses em expressões para deixar claro em qual ordem a expressão é avaliada!
Uma expressão do tipo
a = a + 2
ou
x = x - y/3
pode ser abreviada como
a += 2
x -= y/3
além de operações aritméticas, matemática envolve funções como logaritmo, seno, etc. Essas funções matemáticas estão dentro de uma biblioteca do Python. A biblioteca math
Além do nucleo do Python, que estaremos usando neste curso, o Python tem um conjunto grande de bibliotecas que encapsulam/implementam coisas especificas em diferentes subareas, como funções matemáticas, geradores de números aleatórios, processamento de datas, cálculos estatísticos, acesso a internet, criptografia, etc etc
quando voce instala o python, essas bibliotecas são instaladas também. São chamadas de standard library. O link https://docs.python.org/3/library/ contém a lista das bibliotecas padrão que ja vem instaladas.
alem das bibliotecas padrão existem milhares de outras bibliotecas com coisas como técnicas de aprendizado de maquina, geração de gráficos, processamento de paginas em HTML, etc etc.
para instalar essas bibliotecas extra, voce tem que usar o comando pip (que é instalado quando vc instala o Python na sua maquina)
Uma das bibliotecas padrão (que ja vem instaladas) é chamada de math e ela contem as outras funções matemáticas. O link https://docs.python.org/3/library/math.html lista as funções disponíveis no math
No seu programa voce precisa primeiro carregar a biblioteca math que é feito usando o comando import math
No programa para usar a função sqrt que calcula a raiz quadrada, use math.sqrt isto é, o nome da biblioteca-ponto-nome da função
ha outras formas de fazer a importação de uma biblioteca - veremos isso em aulas futuras.
Já vimos o uso das funções int(), float() e str() que servem para converter dados do tipo str no outro especificado pela função.
mas eles server para converter qualquer tipo em int(), float() e str(), desde que isso faça sentido.
A conversão só ocorre se o dado estiver bem formado. Por exemplo int("abc") resulta em um erro.
Ao convertermos um número float para int ocorre um truncamento, ou seja, toda parte fracionária é desconsiderada.
>>> a = "ola"
>>> int(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'ola'
>>> int(2.99)
2
>>> int(-2.99)
-2
>>> float("3.1415")
3.1415
>>>
Crie um programa que:
Lê uma string, e na linha de baixo imprime a string lida.
Lê um inteiro, pula uma linha e imprime o inteiro lido. Como pular a linha???
Crie um programa que lê dois números reais e que computa e imprime a soma, a diferença, a multiplicação e divisão dos dois números.
Crie um programa que le o número de centavos (um inteiro) e diz como pagar esse número de centavos usando notas de 100, 50, 20, 10 e 2 reais, moedas de 1 real, e moedas de 50, 25, 10, 5 e 1 centavos.
Crie um programa que le o número de segundos (um inteiro) e diz quantos dias, horas, minutos e segundos sao essa quantidade de segundos representa
Booleanos, comparações, expressões lógicas e if-then-else
Na linguagem Python, um número só pode ser considerado um número decimal se tiver uma parte “não inteira”, mesmo que essa parte não inteira tenha valor zero. Utilizamos o ponto para separarmos a parte inteira da parte decimal.
Ex: 10.0
, 5.2
, 3569.22565845
Um número inteiro ou decimal seguido da letra e mais um expoente. Um número escrito dessa forma deve ser interpretado como:
\[numero \cdot 10^{expoente}\]
Ex: 2e2
(2e2 = \(2 \cdot 10^2\) = 200.0)