Professional Documents
Culture Documents
Claudio Esperana
expressessimples
Expressessoescritasecomputadasimediatamente Variveispodemserusadasparavalorestemporrios
Umprogramatpicoentretantousavriostiposde
construestaiscomo:
Comentrio >>> # Srie de Fibonacci ... a,b=0,1 Atribuio dupla >>> while b < 10: Comando de repetio ... print b ... a,b=b,a+b Expresso booleana ... 1 Bloco do Indentao 1 comando de repetio 2 3 5 Resultado 8
Programas armazenados
medidaqueosprogramasvosetornandomaiscomplicados,
maisinteressanteguardlosemarquivoseexecutlosquando necessrio
Arquivofibo.py(useumeditordetextoscomoodoIDLE): # Srie de Fibonacci: a, b = 0, 1 while b < 10: print b a, b = b, a+b
Paraexecutaroprograma,
print
Formageral:print expr,expr,... Osvaloresdasexpressessoescritosumapsooutrosem
pulardelinha:
>>> print "1.001 ao quadrado ",1.001**2 1.001 ao quadrado 1.002001
Seocomandoterminarcomvrgula,oprximoprintescrever
namesmalinha.Porexemplo:
>>> a, b = 0, 1 >>> while b < 1000: ... print b, ... a, b = b, a+b ... 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
input
OprogramaquecomputaelementosdasriedeFibonacci
terminaquandoatingeumelementocomvalorsuperiorauma constante
Podemostornaroprogramamaisflexvelseaousuriofor
permitidoestipularovalormximo
Ocomandoinputpermiteperguntaraousurioumvalor
(normalmenteatribudoaumavarivel)
Exemplo: >>> a = input("Entre com um numero: ") Entre com um numero: 19 >>> print a Usurio digita o nmero 19
Input
Ocomandoinputesperaquesedigitealgoquefaasentidodo
ladodireitodeumsinaldeatribuio.Ex:
>>> print a 19 >>> b = input() a >>> b 19 >>> c = input("entre com uma cadeia de caracteres: ") entre com uma cadeia de caracteres: abc Traceback (most recent call last): File "<stdin>", line 1, in ? File "<string>", line 0, in ? NameError: name 'abc' is not defined >>> c = input("entre com uma cadeia de caracteres: ") entre com uma cadeia de caracteres: "abc" >>> c 'abc'
raw_input
semelhanteaoinput,masnotentainterpretaro
quefoidigitadocomoumaexpresso
Oresultadosimplesmenteumastringcomotexto digitado
Ex.:
>>> nome = raw_input ("Entre seu nome: ") Entre seu nome: Claudio Esperana >>> print nome Claudio Esperana >>> nome 'Claudio Esperan\xe7a'
while
Repeteumaseqnciadecomandosenquantoumadadaexpresso
booleanaavaliadacomoverdadeira
Formato:
Laos Infinitos
Comoemtodocomandoderepetio,importante
evitaroschamadoslaosinfinitos
Ex.:
>>> a = 10 >>> while a>8: ... print a, ... 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 ...
if
ocomandocondicionalporexcelncia Formatos:
if expressao: comandos if expressao: comandos1 else: comandos2 if expressao1: comandos1 elif expressao2: comandos2 else: comandos(N)
Executa comandos apenas se expresso for verdadeira Executa seq de comandos 1 caso expresso seja verdadeira. Caso contrrio, executa seq de comandos 2 Executa seq de comandos 1 caso expresso1 seja verdadeira. Caso contrrio, testa expressao2 e executa seq de comandos 2 se verdadeira
Vrios desses...
Caso contrrio, executa seq de comandos N
if
Exemplo1
a = input("Entre com um numero:") if a < 0: print a," negativo" print "Obrigado!" Execuo1: Entre com um numero:2 Obrigado! Execuo2: Entre com um numero:-2 -2 negativo Obrigado!
if
Exemplo2
Execuo1:
Entre com um numero:2 2 zero ou positivo Obrigado!
Execuo2:
Entre com um numero:-2 -2 negativo Obrigado!
if
Exemplo3
Execuo1:
Entre com um numero:0 0 zero Obrigado!
Execuo2:
Entre com um numero:2 2 positivo Obrigado!
algarismosromanosdeumnmerointeiropositivo
Ousuriodeveentrarcomumnmero(input) Oresultadodeveserimpressonoconsole(print)
Exemplodeexecuo:
Entre com um numero positivo: 1985 Em algarismos romanos: MCMLXXXV
Arepresentaoemromanosumastringqual acrescentadaumaletraporvez
Examinarassucessivaspotnciasde10
Umprocessamentosemelhantefeitoparaoutrosalgarismos romanos,porexemplo:
Seonmeromaiorouigualque500,acrescentar'D' Seonmeromaiorque900,acrescentar'CM'
dadoprimoouno
Entrada:nmerointeiropositivo Sada:diagnsticodeprimalidadedonmero
Entre 169 Entre 983 com um nmero inteiro positivo: 169 mltiplo de 13 com um nmero inteiro positivo: 983 primo
Exemplosdeexecuo:
simesmooupelaunidade
Istosugereoseguintealgoritmo:
Seonmero1ou2,entoprimo Casocontrrio,
Sejadumpossveldivisor,cujovalorinicialmente2 Repetir
Seorestodadivisodonmeropordzero,entoonmerono primo Casocontrrio,incrementard Sedigualoumaiorqueonmero,entoterminarrepetio diagnosticandoonmerocomoprimo