03-programacao-com-python-3-comandos-basicos_compress
03-programacao-com-python-3-comandos-basicos_compress
Comandos Básicos
Claudio Esperança
Alexandre A. B. Lima
Primeiros passos em programação
Até agora, só vimos como computar algumas
expressões simples
Expressões são escritas e computadas imediatamente
Variáveis podem ser usadas para valores temporários
Um programa típico entretanto usa vários tipos de
construções tais como:
Comandos condicionais
Comandos de repetição
Definição e uso de procedimentos (subprogramas)
Definição e uso de classes e objetos (programação OO)
Comandos Básicos 2
Primeiros passos em programação
Comentário
>>> # Série de Fibonacci
... a,b=0,1 Atribuição dupla
>>> while b < 10:
... print(b) Comando de repetição
... a,b=b,a+b
... Expressão booleana
1
1 “Indentação” Bloco do
comando de repetição
2
3
5 Resultado
8
Comandos Básicos 3
Programas armazenados
À medida em que os programas vão se tornando mais
complicados, é mais interessante guardálos em arquivos e
executálos quando necessário
Arquivo fibo.py (use um editor de textos como o do IDLE):
# Série de Fibonacci:
a, b = 0, 1
while b < 10:
print(b)
a, b = b, a+b
Para executar o programa,
Digite python fibo.py no seu shell ou
Clique no ícone do arquivo, ou
De dentro do editor IDLE, selecione Run Module (F5)
Comandos Básicos 4
print (...)
Forma simplificada: print(expr1,expr2,...)
No Python 3, print é uma função. Logo, o uso de
parênteses é obrigatório
Os valores das expressões são escritos um após o outro, na
mesma linha:
>>> print("1.001 ao quadrado é ",1.001**2)
1.001 ao quadrado é 1.0020009999999997
Em sua forma simplificada, após sua execução, a função
print inicia uma nova linha no dispositivo de saída
Comandos Básicos 5
print (...)
Forma geral:
print(expr1,expr2,..., sep=' ', end='\n',
file=sys.stdout, flush=False)
Parâmetros nomeados:
sep: string separadora. Ela é inserida entre cada expressão impressa. O
valor default é um espaço em branco
end: string final. Ela será inserida após a impressão de todas as
expressões. O valor default ('\n') é o caractere de nova linha
file: arquivo de saída. Indica para qual arquivo o comando deverá
enviar seu resultado. O valor default (sys.stdout) indica o dispositivo
de saída padrão (monitor).
flush: indica se a escrita no arquivo de saída deve ser imediata. O valor
default indica que não.
Se usados, os parâmetros nomeados devem ter seus nomes especificados
Comandos Básicos 6
print (...)
>>> # impressão de uma “/” entre cada expressão
>>> print(10,20,30,sep="/")
10/20/30
Comandos Básicos 7
print (...)
>>> # O programa a seguir mostra chamadas
>>> consecutivas imprimindo na mesma linha
2 + 3 = 5
Comandos Básicos 8
print
Execute o programa abaixo e veja o que acontece
Comandos Básicos 9
input (...)
O programa que computa elementos da série de Fibonacci
termina quando atinge um elemento com valor superior a uma
constante
Podemos tornar o programa mais flexível se ao usuário for
permitido estipular o valor máximo
A função input permite perguntar ao usuário um valor
(normalmente é atribuído a uma variável)
Formato: input(pergunta)
onde pergunta é uma string opcional que será exibida para
indicar o valor que se espera (i.e., prompt)
A função input sempre retorna uma string, independente do
valor digitado pelo usuário
Comandos Básicos 10
input
Exemplo:
>>> a = input("Entre com um numero: ")
Entre com um numero: 19
>>> print a
“19” Usuário digita o número
Se o valor digitado precisa ser usado com outro tipo, devemos
usar uma das funções de conversão do Pyhton. Por exemplo,
para convertermos o valor digitado para o tipo inteiro,
utilizamos a função int()
>>> a = int(input("Entre com um numero: "))
Entre com um numero: 19
>>> print a
19
Agora, a é um inteiro
Comandos Básicos 11
if
É o comando condicional por excelência
Formatos: Executa comandos
apenas se expressão
if expressao: for verdadeira
comandos
if expressao: Executa seq de comandos 1
caso expressão seja
comandos1 verdadeira.
Caso contrário, executa
else: seq de comandos 2
comandos2 Executa seq de comandos 1
caso expressão1 seja
if expressao1: verdadeira. Caso contrário, testa expressao2
comandos1 e executa seq de comandos 2
elif expressao2: se verdadeira
comandos2 Vários desses...
else: Caso contrário, executa
comandos(N) seq de comandos N
Comandos Básicos 12
if
Exemplo 1
a = int(input("Entre com um numero:"))
if a < 0:
print (a,"é negativo")
print ("Obrigado!")
Execução 1:
Entre com um numero:2
Obrigado!
Execução 2:
Entre com um numero:-2
-2 é negativo
Obrigado!
Comandos Básicos 13
if
Exemplo 2
a = int(input("Entre com um numero:"))
if a < 0:
print (a,"é negativo")
else:
print (a,"é zero ou positivo")
print "Obrigado!"
Execução 1:
Entre com um numero:2
2 é zero ou positivo
Obrigado!
Execução 2:
Entre com um numero:-2
-2 é negativo
Obrigado!
Comandos Básicos 14
if
Exemplo 3
a = int(input("Entre com um numero:"))
if a < 0:
print (a,"é negativo")
elif a==0:
print (a,"é zero")
else:
print (a,"é positivo")
print "Obrigado!"
Execução 1:
Entre com um numero:0
0 é zero
Obrigado!
Execução 2:
Entre com um numero:2
2 é positivo
Obrigado! Comandos Básicos 15
while
Repete uma seqüência de comandos enquanto uma dada expressão
lógica (booleana) é avaliada como verdadeira
A unidade formada pelo while e seus comandos forma um laço (loop)
Sintaxe básica:
while expressão:
comando
...
comando
Exemplo:
>>> a = 10
>>> while a > 8:
... print(a, end=” “)
... a = a-1
...
10 9
Comandos Básicos 16
Laços Infinitos
Como em todo comando de repetição, é importante
evitar os chamados “laços infinitos”
Ex.:
>>> a = 10
>>> while a>8:
... print(a, end = “ “)
... a = a+1
...
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 ...
Comandos Básicos 17
while...else
É possível acrescentar uma cláusula else a um laço while.
Os comandos pertencentes ao else são executados apenas
uma vez, quando a expressão avaliada pelo while se torna
falsa
Sintaxe completa:
while expressão:
comando
...
comando
else:
comando
...
comando Comandos Básicos 18
while...else : Exemplo
Programa
a = 10
while a > 8:
print(a, end=” “)
a = a-1
else:
print(“!”)
Resultado
10 9 !
Comandos Básicos 19
Exercício: algarismos romanos
Fazer um programa que escreva a representação em
algarismos romanos de um número inteiro positivo
O usuário deve entrar com um número (input)
O resultado deve ser impresso no console (print)
Exemplo de execução:
Entre com um numero positivo: 1985
Em algarismos romanos: MCMLXXXV
Comandos Básicos 20
Exercício: algarismos romanos
Algoritmo
A representação em romanos é uma string à qual é acrescentada uma letra
por vez
Inicialmente, uma string vazia
Examinar as sucessivas potências de 10
Por exemplo, a letra 'M' corresponde à casa dos milhares
Se o número é 2200, sabemos que teremos dois M's na representação
em romanos
Sabemos que há M's se o número é maior ou igual a 1000
Sempre que um milhar for computado, subtrair 1000 do número
Um processamento semelhante é feito para outros algarismos romanos,
por exemplo:
Se o número é maior ou igual que 500, acrescentar 'D'
Se o número é maior que 900, acrescentar 'CM'
Comandos Básicos 21
Exercício: algarismos romanos
DICA: processando um número entre 1 e 9
if num >= 9:
romano = romano + "IX"
num = num-9
if num >= 5:
romano = romano + "V"
num = num-5
if num >= 4:
romano = romano + "IV"
num = num - 4
while num >= 1:
romano = romano + "I"
num = num - 1
Comandos Básicos 22
Exercício: números primos
Fazer um programa que decida se um número positivo
dado é primo ou não
Entrada: número inteiro positivo
Saída: diagnóstico de primalidade do número
Exemplos de execução:
Entre com um número inteiro positivo: 169
169 é múltiplo de 13
Entre com um número inteiro positivo: 983
983 é primo
Comandos Básicos 23
Exercício: números primos
Um número natural é primo se é divisível apenas por
si mesmo ou pela unidade
Isto sugere o seguinte algoritmo:
Se o número é 2, então é primo
Caso contrário,
Seja d um possível divisor, cujo valor é inicialmente 2
Repetir
Se o resto da divisão do número por d é zero, então o número não
é primo
Caso contrário, incrementar d
Se d é igual ou maior que o número, então terminar repetição
diagnosticando o número como primo
Comandos Básicos 24