print()
)input()
)str
e int
int()
while
O vídeo abaixo mostra como fazer a instalação do python e IDLE no Windows.
O vídeo abaixo mostra como fazer a instalação do python e IDLE no Linux (ubuntu)
via linha de comando no terminal, usando apt-get
.
O IDLE 3 pode também ser instalado no Ubuntu procurando por IDLE3 no Synaptic Package Manager do Ubuntu, tal como mostrado abaixo.
Após instalar o IDLE3, você pode então abrir o Python Shell, clicando no ícone indicado abaixo.
Ao abrir o Python Shell, será exibida uma janela
com o cursor piscando em frente ao prompt >>>
,
indicando que o sistema está pronto para receber comandos.
Um comando é uma unidade de código que o interpretador do Python
pode executar. Neste curso, estamos usando a versão 3 do Python.
Por exemplo, podemos usar o Python Shell para fazer contas, tal como em uma calculadora.
Veja o exemplo abaixo digitado no prompt (>>>) do Python shell:
>>> 2 + 3 * 6
20
>>> (2+3)*6
30
Observe que a multiplicação (representada pelo símbolo *
) tem precedência sobre a adição. Logo, o uso de parênteses se faz necessário quando queremos primeiramente calcular a soma.
A tabela abaixo apresenta a lista de operadores aritméticos do Python.
Operador | Descrição | Exemplo | Avalia para |
---|---|---|---|
+ | Adição | 7 + 3 | 10 |
- | Subtração | 7 - 3 | 4 |
* | Multiplicação | 7 * 3 | 21 |
/ | Divisão (Real) | 7 / 3 | 2.3333333333333335 |
// | Divisão (Inteiro) | 7 // 3 | 2 |
% | Módulo (resto da divisão) | 7 % 3 | 1 |
Veja o vídeo abaixo, intitulado "Primeiras linhas em Python", do prof. Fabio Kon (IME-USP).
Porém, tome cuidado, pois nesse vídeo está sendo usada a versão 2 do Python e não o Python 3, o que gera uma diferença na saída do operador de divisão.
Uma variável é um nome que se refere a um valor armazenado na memória do computador. Um comando de atribuição (=) cria uma nova variável e lhe dá um valor.
Um comando de atribuição tem a seguinte forma:
variável = expressãoSignificado:
Variáveis são usadas para guardarmos valores que serão usados mais tarde no programa.
Por exemplo, variáveis podem ser usadas como parte de futuras expressões matemáticas, indicando que seus valores serão usados como operandos dos operadores.
Note, porém, que uma variável não pode ser usada em uma expressão antes de sua criação.
A qualquer momento podemos imprimir/exibir o valor de uma variável
usando o comando print
, tal como indicado no exemplo abaixo:
>>> a = 2 + 3 * 6
>>> print(a)
20
>>> b = a - 5
>>> print(b)
15
Nomes de variáveis devem obedecer à seguinte regra de formação.
Os nomes das variáveis devem começar por uma letra
ou o símbolo '_'
(underscore)
e depois conter somente letras, números ou underscore.
Atenção, maiúscula é diferente de minúscula. Assim maior
e Maior
são duas variáveis diferentes. Abaixo são apresentados alguns exemplos de nomes de
variáveis válidos digitados no prompt (>>>) do Python shell.
>>> valor_bruto = 1000
>>> _valor = 75
>>> bola8 = 50
>>> DocumentoDeIdentidade = 123456789
Abaixo é apresentado um exemplo de nome de variável inválido (por iniciar com um número) digitado no prompt (>>>) do Python shell. Observe a mensagem de erro indicando que o comando não pôde ser processado pelo interpretador.
>>> 8bola = 50
SyntaxError: invalid syntax
a = a + b
do Python
não implica que b = 0
.
Isto é, o comando em questão não é uma equação matemática, logo você não deve subtrair 'a'
dos dois lados para tirar conclusões.
O valor contido no espaço de memória de uma variável
pode variar com o tempo, não sendo um valor fixo
durante todo tempo de execução de um programa.
Desse modo, comandos como a=a-4
são perfeitamente aceitáveis.
No exemplo abaixo, a variável a
recebe inicialmente o valor 14
. Na sequência, o comando a=a-4
é executado, sendo sua expressão do lado direito a-4
então avaliada como 14-4
e, consequentemente, resultando em 10
. Esse novo valor 10
passa então a ser armazenado na
variável a
, sobrescrevendo seu valor anterior 14
que é perdido.
>>> a = 14
>>> print(a)
14
>>> a = a - 4
>>> print(a)
10
Podemos imprimir os valores de múltiplas variáveis em um único comando print
, passando as variáveis separadas por vírgulas.
>>> a = 3
>>> b = 2
>>> print(a, b)
3 2
Um problema recorrente em computação é o de
trocar/inverter o valor entre duas variáveis. Isso será
especialmente útil para a ordenação de dados em
aulas futuras.
Por exemplo, se a = 3
e b = 2
para trocar
seu valores poderíamos pensar em usar o seguinte código:
>>> a = b
>>> b = a
>>> print(a, b)
2 2
No entanto, o código acima não funciona, pois o primeiro
comando de atribuição sobrescreverá o valor 3
armazenado na variável a
que será perdido.
De modo que, no final teremos o valor 2
nas duas variáveis
a
e b
.
Uma solução correta pode ser encontrada no código abaixo.
A ideia é utilizar uma terceira variável auxiliar
para guardar uma cópia de backup do valor original 3
da variável a
, antes de copiar em a
o valor 2
contido em b
.
>>> t = a
>>> a = b
>>> b = t
>>> print(a, b)
2 3
O Python possui vários atalhos, logo para trocar o valor entre
variáveis podemos usar também o seguinte código abaixo.
Porém, note que, a solução abaixo é
específica para códigos em Python.
>>> a,b = b,a
>>> print(a, b)
2 3
Em Python, podemos usar variáveis também para armazenar
e processar textos.
Na programação de computadores,
uma cadeia de caracteres, mais conhecida como string,
é uma sequência de letras e símbolos
(na qual os símbolos podem ser espaços em branco, dígitos e vários outros como pontos de exclamação e interrogação, símbolos matemáticos, etc),
geralmente utilizada para representar palavras, frases ou textos de um programa.
Em um programa Python, strings podem ser especificadas
como textos delimitados por aspas duplas ou simples.
Somando duas strings obtemos uma nova string
resultante da concatenação das duas primeiras.
Veja o exemplo abaixo digitado no prompt (>>>) do Python shell:
>>> a = "Paulo"
>>> b = "Miranda"
>>> c = a + b
>>> print(c)
PauloMiranda
Dado que é possível somar duas strings, poderíamos pensar que é possível também somar uma string com um número inteiro, mas esta não é uma operação definida no Python. Como resultado temos a mensagem de erro indicada no exemplo abaixo.
>>> "Paulo" + 5
Traceback (most recent call last):
File "", line 1, in
"Paulo" + 5
TypeError: Can't convert 'int' object to str implicitly
Por outro lado, curiosamente, podemos multiplicar uma string por um inteiro em Python. O resultado é a criação de uma nova string contendo o texto repetido o número de vezes indicado.
>>> "Bla"*10
'BlaBlaBlaBlaBlaBlaBlaBlaBlaBla'
Dado que em Python podemos ter diferentes tipos de dados armazenados em uma
variável, como descobrir o tipo de dado armazenado em uma variável
preexistente se torna uma pergunta pertinente.
Para saber o tipo de dado armazenado em uma variável podemos usar o comando type
:
>>> a = 37
>>> type(a)
<class 'int'>
>>> a = "Paulo"
>>> type(a)
<class 'str'>
Textos são representados por objetos da classe str
(string),
enquanto inteiros são representados por objetos da classe int
.
Para mais informações e exemplos sobre os tipos de dados em Python, veja o vídeo abaixo, intitulado "Valores e tipos em Python", do prof. Fabio Kon (IME-USP).
Dado que nos exemplos acima estamos usando as aspas duplas
como delimitadores de string,
uma pergunta oportuna é, portanto, a seguinte:
como podemos inserir o caractere de aspas dupla ("
) como parte do texto de uma string?
Uma resposta é considerar aspas simples como delimitadores sempre que queremos inserir aspas duplas dentro do texto e vice-versa.
Veja os exemplos abaixo digitados no prompt (>>>) do Python shell:
>>> a = 'Camões escreveu "Os Lusíadas" no século XVI.'
>>> print(a)
Camões escreveu "Os Lusíadas" no século XVI.
>>> b = "Esperamos o 'feedback' da professora."
>>> print(b)
Esperamos o 'feedback' da professora.
Outra solução é considerar sequências de escape.
Os caracteres ou sequências de escape são usadas para conseguir imprimir na tela caracteres especiais ou símbolos, que são impossíveis de obter normalmente. Exemplos comuns são as aspas simples ou duplas, que por já estarem sendo usadas como delimitadores da string geram as dificuldades vistas anteriormente para serem inseridas como partes integrantes do conteúdo da string. Outros exemplos são os de caracteres que não possuem um símbolo gráfico correspondente, tais como o caracter de pula linha e o de tabulação.
Esses caracteres especiais são especificados por meio de combinações de outros caracteres, denominadas sequências de escape, que sempre iniciam com uma barra invertida (\
). O próprio caractere de barra invertida se torna um
caractere especial por ser reservado para indicar o início de
uma nova sequência de escape.
A tabela abaixo apresenta os caracteres de escape do Python:
Sequência de escape | Descrição |
---|---|
\\ | Barra invertida (Backslash). Insere uma barra invertida. |
\' | Aspas simples (Single quote). Insere uma aspas simples. |
\" | Aspas duplas (Double quote). Insere uma aspas duplas. |
\n | Nova linha (NewLine). Move o cursor para o início da próxima linha. |
\t | Tabulação horizontal (Horizontal tab). Move o cursor uma tabulação para frente. |
Experimente digitar no prompt (>>>) do Python shell os comandos abaixo:
>>> a = "Camões escreveu \"Os Lusíadas\" no século XVI."
>>> print(a)
Camões escreveu "Os Lusíadas" no século XVI.
>>> b = "Primeira linha.\nSegunda linha."
>>> print(b)
Primeira linha.
Segunda linha.
>>> c = "\tCom tabulação.\nSem tabulação."
>>> print(c)
Com tabulação.
Sem tabulação.
>>> d = "Barra invertida: \\"
>>> print(d)
Barra invertida: \
>>> e = "\\\\\\" #Imprime três barras invertidas.
>>> print(e)
\\\
O texto em vermelho (#Imprime três barras invertidas.
) usado no exemplo acima é um comentário, tal como explicado abaixo.
#
,
tudo que estiver depois do #
e na mesma linha será ignorado pelo interpretador.
A alternativa consiste em salvar o código em um arquivo (script) e então invocar o interpretador para executá-lo. Por convenção, os scripts no Python são arquivos texto com nomes que terminam com a extensão .py. Vamos fazer nosso primeiro programa em Python no modo script. Na janela do Python Shell, você deve clicar em "File" e depois em "New File". Vai ser aberto um editor de texto, conforme ilustrado abaixo.
Digite então o exemplo do código abaixo e salve o arquivo, por exemplo, como "programa.py".
idade = input("Digite sua idade: ") print("Nossa, parece que você tem", idade*2, "anos.")O programa acima solicita que o usuário digite sua idade. Na sequência, a intenção do programa é imprimir uma mensagem "trollando" o usuário, dizendo que ele aparenta ter o dobro da idade. Para a leitura dos dados, vamos introduzir um novo comando, o comando
input()
.
O comando input()
, primeiramente imprime a string passada como
parâmetro "Digite sua idade: " e, em seguida, ativa o modo de digitação,
isto é, o cursor vai ficar piscando no Python Shell/terminal esperando a digitação (entrada de dados), seguida de ENTER.
Para invocar o interpretador Python para executar o programa acima criado no modo script,
você deve clicar em "Run" e depois em "Run Module".
Abaixo é mostrado um exemplo de execução do programa, assumindo que o usuário possui 39 anos de idade. Ou seja, o texto em preto foi digitado pelo usuário.
Digite sua idade: 39
Nossa, parece que você tem 3939 anos.
Aparentemente algo deu errado, visto que o programa imprimiu que o usuário aparenta ter três mil e novecentos e trinta e nove anos. Ou seja, mais que a idade ao morrer de Matusalém.
O problema ocorreu porque a devolução do valor digitado pelo comando input()
sempre se dá na forma de uma string
e, como vimos anteriormente, a multiplicação de
uma string por um inteiro causa a sua repetição (isto é,
"39"*2 gera a string "3939").
Portanto, precisamos converter a string lida para um inteiro antes de calcular o
produto. Para isso, podemos usar o comando int()
que
converte a string passada como parâmetro para o inteiro correspondente,
tal como indicado no exemplo abaixo digitado no prompt (>>>) do Python shell:
>>> a = "39"
>>> type(a)
<class 'str'>
>>> a = int(a)
>>> type(a)
<class 'int'>
>>> print(a)
39
Uma versão corrigida do programa é apresentada abaixo.
idade = input("Digite sua idade: ") idade = int(idade) print("Nossa, parece que você tem", idade*2, "anos.")
A execução da nova versão do programa com valor de entrada 39, agora apresenta o resultado esperado:
Digite sua idade: 39
Nossa, parece que você tem 78 anos.
Esse programa pode ser escrito de modo mais compacto
usando os comandos int()
e input()
de modo aninhado, isto é, como int(input())
.
idade = int(input("Digite sua idade: ")) print("Nossa, parece que você tem", idade*2, "anos.")
Para outros exemplos de programas com o comando input()
, veja também o vídeo abaixo, intitulado "Entrada de dados", do prof. Fabio Kon (IME-USP).
No Python, é possível também comparar valores
utilizando operadores relacionais.
Operadores relacionais serão especialmente úteis
na construção de comandos condicionais e
comandos de repetição.
Operadores relacionais executam ações com dois operandos,
produzindo como resultado verdadeiro ou falso (True
ou False
).
A tabela abaixo apresenta a relação dos operadores relacionais do Python.
Operador | Descrição | Exemplo | Avalia para |
---|---|---|---|
== | igual a | 5 == 5 | True |
!= | diferente de | 8 != 5 | True |
> | Maior que | 3 > 10 | False |
< | Menor que | 5 < 8 | True |
>= | Maior ou igual a | 5 >= 10 | False |
<= | Menor ou igual a | 5 <= 5 | True |
Por exemplo, experimente digitar no prompt (>>>) do Python shell os comandos abaixo:
>>> 8 > 5
True
>>> 3 < 2
False
>>> x = 7
>>> x < 9
True
>>> x == 7
True
>>> x != 7
False
O resultado de operadores relacionais podem ser atribuídos a
variáveis e podemos usar o comando type
para descobrir o tipo de dado resultante.
>>> a = 2 < 8
>>> type(a)
<class 'bool'>
>>> print(a)
True
Os valores True
e False
devolvidos por operadores
relacionais são da classe bool
(boolean em
homenagem ao matemático George Boole).
Dado que o operador de adição pode também
ser empregado com strings, conforme visto anteriormente,
será que operadores relacionais também se aplicam a strings?
Abaixo são apresentados alguns testes realizados
no prompt (>>>) do Python shell:
>>> "Corinthians" == "Campeão"
False
>>> "São Paulo" > "Corinthians"
True
Deixando de lado a brincadeira com os corintianos,
observamos que, de fato, os operadores relacionais podem ser usados com strings.
O operador de igualdade (==
)
somente devolverá o valor True
se
as duas strings forem idênticas.
Lembre-se que Python diferencia minúsculas de maiúsculas.
Portanto, a comparação "paulo" == "PAULO"
devolverá False
.
Comparações do tipo "maior que" e "menor que"
comparam as strings levando em conta a ordem lexicográfica
(ordem alfabética no caso da comparação entre letras minúsculas
com minúsculas e maiúsculas com maiúsculas).
Portanto, "São Paulo" > "Corinthians"
é True
não porque o primeiro time possui mais títulos, mas porque "S"
sucede "C"
na ordem do alfabeto.
A seguir, veremos nosso primeiro comando de repetição. Dentro da lógica de programação, comandos de repetição (Laços ou Loops) são estruturas que nos permitem executar mais de uma vez o mesmo comando ou conjunto de comandos, de acordo com uma condição de controle.
O comando de repetição while
("enquanto")
é a mais difundida estrutura de repetição.
Nesta estrutura, a condição é primeiramente verificada, e se for verdadeira o bloco é executado. No final da execução do bloco a condição é novamente testada.
Entende-se por condição qualquer comando Python que produza
como saída verdadeiro (True
) ou falso (False
).
Até o presente momento, os únicos comandos vistos
com tal propriedade foram os operadores relacionais.
O fluxograma de execução do comando while
é exibido abaixo:
1 + 2 + 3 + ... + n
).
Uma primeira solução usando o comando while
é apresentada abaixo.
soma = 0 i = 1 while i <= n: soma = soma + i i = i + 1 print("A soma de 1 a",n,"é",soma)
A solução anterior é uma
solução ingênua.
Observe que a soma 1 + 2 + 3 + ... + n
corresponde a soma dos termos de uma PA de razão 1.
Logo, uma solução mais eficiente consiste em aplicar
diretamente a fórmula da soma dos termos da PA.
n = int(input("Digite n: ")) soma = ((1+n)*n)//2 print("A soma de 1 a",n,"é",soma)
12 17 4 -6 8 0o seu programa deve escrever o número 35.
Uma primeira solução é apresentada abaixo.
num = 1 soma = 0 while num != 0: num = int(input("Digite um inteiro: ")) soma = soma + num print("A soma é",soma)Outra versão:
num = int(input("Digite um inteiro: ")) soma = 0 while num != 0: soma = soma + num num = int(input("Digite um inteiro: ")) print("A soma é",soma)
Uma primeira solução usando o comando while
é apresentada abaixo.
n = int(input("Digite o valor de n: ")) k = int(input("Digite o valor de k: ")) pot = 1 i = 0 while i < k: pot = pot*n i = i + 1 print("A potência é",pot)
No Python, podemos também usar o operador de
exponenciação **
:
n = int(input("Digite o valor de n: ")) k = int(input("Digite o valor de k: ")) pot = n**k print("A potência é",pot)
n! = n*(n-1)*(n-2)*...*1Uma primeira solução usando o comando
while
é apresentada abaixo.
n = int(input("Digite o valor de n: ")) fat = 1 i = 2 while i <= n: fat = fat*i i = i + 1 print("Fatorial de",n,"é",fat)
No Python, podemos também usar
funções matemáticas prontas do
módulo math
do Python.
Para isso, devemos primeiramente importar o módulo math
,
usando o comando import math
, e depois chamar a função math.factorial()
.
import math n = int(input("Digite o valor de n: ")) fat = math.factorial(n) print("Fatorial de",n,"é",fat)