Buscar

Algoritmos e Programação em Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 84 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 84 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 84 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1 
	
	
	
	
Algoritmos	e	Programação	em	Python	
	
por	
	
	
Prof. Dr. Paulo Roberto Gomes Luzzardi 
	
	
	
	
facebook: Paulo Roberto Gomes Luzzardi 
WhatsApp: 99164-8037 
e-mail: pluzzardi@gmail.com (principal) e pluzzardi@yahoo.com.br 
e-mail (Senac): prgomesluzzardi@senacrs.edu.br 
DropBox: https://www.dropbox.com/sh/kea9kr4j2qttnjg/4xXvw0pvxX?m 
Hostinger: http://pluzzardi.w.pw e http://pluzzardi.zz.mu (Home Page) 
	
	
Versão	1.52	
04-04-2018	
	
	
	
	
Bibliografia	recomendada:	
	
MENEZES,	 Nilo	 Ney	 Coutinho.	 Introdução	 à	 Programação	 com	 Python:	
Algoritmos	e	Lógica	de	Programação	para	Iniciantes.	São	Paulo:	Editora	
Novatec,	2010	(ISBN	978-85-7522-250-8).	
	
	
Pelotas,	quarta-feira,	4	de	abril	de	2018	(10:55	am)	
 
2 
Sumário	
	
1.	Linguagem	de	Programação	Python ......................................................................... 5 
2.	Como	executar	comandos	em	Python ....................................................................... 5 
3.	Entrar	na	IDLE	do	Python ...................................................................................... 5 
4.	Primeiros	comandos	ou	instruções ....................................................................... 5 
5.	Identificadores	e	variáveis................................................................................. 6 
6.	Operadores	aritméticos .......................................................................................... 7 
6.1	Hierarquia	dos	operadores	(precedência)........................................................ 8 
7.	Comando	print	(imprimir	dados	na	tela) ........................................................... 8 
8.	Comando	input	(ler	dados	do	teclado) ............................................................. 10 
9.	Deletar	uma	variável	(del) ................................................................................ 11 
10.	Módulos	(import) .................................................................................................. 11 
11.	Funções	de	matemáticas	(math) ......................................................................... 12 
12.	Strings	(cadeia	de	caracteres) ....................................................................... 14 
12.1	Funções	para	Strings ........................................................................................ 14 
13.	Comandos:	Sequência,	Seleção	e	Repetição .................................................... 16 
13.1	Comandos	de	Sequência ...................................................................................... 16 
13.2	Lista	de	Exercícios	(Comandos	de	sequência) ............................................ 18 
14.	Operadores	relacionais ...................................................................................... 21 
15.	Operadores	lógicos .............................................................................................. 21 
16.	Comando	de	Seleção	(if) .................................................................................... 22 
16.1	Lista	de	Exercícios	(Comando	de	Seleção	if) ............................................ 24 
17.	Contador	e	acumulador ........................................................................................ 25 
18.	Comandos	de	Repetição	(while	e	for) ............................................................. 26 
18.1	range	(faixa) ...................................................................................................... 28 
18.2	Lista	de	Exercícios	(Comando	de	Repetição	while	e	for) ....................... 29 
19.	Listas	em	Python	(vetores)............................................................................... 30 
19.1	Lista	de	Exercícios	de	Vetores	(listas) .................................................... 37 
20.	Questões	de	prova ................................................................................................ 39 
21.	Curiosidades	e	testes	no	Python ..................................................................... 44 
22.	Funções	escritas	pelo	programador	em	Python .............................................. 46 
22.1	Exercícios	sobre	funções	em	Python ............................................................. 53 
23.	Criação	e	utilização	de	módulos	em	Python .................................................. 55 
24.	Tratamento	de	erros	(exceções) ....................................................................... 59 
25.	Banco	de	Dados	em	Python	(SQLite) ................................................................. 63 
26.	Sistema	de	Arquivos	em	Python ......................................................................... 68 
29.	Arquivos	Binários	em	Python ............................................................................. 73 
30.	Sockets	em	Python ................................................................................................ 79 
 
3 
 83 
 83 
31.	Threads	em	Python ................................................................................................ 84 
 
4 
 
 
 
 
 
Lista de Exercícios do Prof. Dr. Ricardo Andrade Cava 
	
DropBox:	
	
https://www.dropbox.com/sh/kea9kr4j2qttnjg/AAAGkXES6sWvRKCJh8R7x9aia/ListaCava?dl=0	
	
 
5 
1.	Linguagem	de	Programação	Python	
	
	 Python	 é	 uma	 linguagem	 de	 programação	 interpretada	 (onde	 cada	
linha	é	compilada	e	executada,	uma	por	vez),	ou	seja,	não	é	compilada	
(onde	 todo	 o	 programa	 é	 traduzido	 para	 linguagem	 de	 máquina	 e	
posteriormente	 executado).	 Em	 Python,	 cada	 comando	 tem	 sua	 sintaxe	
verificada,	sendo	executado	a	seguir.		
	 Python	 é	 uma	 linguagem	 de	 alto	 nível	 e	 um	 software	 livre,	 ou	
seja,	 não	 se	 paga	 por	 sua	 utilização.	 É	 utilizado	 em	 muitas	
aplicações,	inclusive	em	Redes	de	Computadores	para	criação	de	scripts	
utilizados	em	servidores	e	outras	aplicações	da	área,	além	de	ser	uma	
linguagem	de	uso	geral.	
2.	Como	executar	comandos	em	Python	
 
Windows:	Iniciar	...	Programas	...	Python	3.?	(versão)	
	
Linux:	$	python3.?	(versão	–	digite	TAB	para	descobrir)	
	
MacOsX:	$	python3.?	(TAB	para	descobrir	as	versões	instaladas)	
	
3.	Entrar	na	IDLE	do	Python	
 
	 IDLE	 é	 a	 Interface	 Gráfica	 da	 Linguagem	 de	 Programação	 Python	
que	permite	a	edição	e	execução	dos	programas	escritos	em	Python.	
	
Windows:	Iniciar	...	Programas	...	Python	3.?	(versão)	...	IDLE	
	
Linux:	$	idle-python3.6	&	<enter>	
	
MacOsX:	$	idle3.6	<enter>	
	
Observação:	Todo	programa	fonte	em	Python	possui	a	extensão	“.py”.		
	
Instalação	e	download	do	Python:	http://www.python.org	
4.	Primeiros	comandos	ou	instruções	
 
	 Python	permite	executar	comandos	ou	instruções,	tais	como:	
	
Imprimir	na	tela:		 >>>	print(“Hello”)	<enter>	
	 	 	 	 Hello	
	
Realizar	operações	matemáticas:		 >>>	3	+	4	<enter>	
	 	 	 	 	 	 	 7	
	 	 	 	 	 	 	 >>>	2	**	3	<enter>	
 
6 
	 	 	 	 	 	 	 8	
	 	 	 	 	 	 	 >>>	
	
Operações	mais	complexas:		 >>>	a	=	3	<enter>	
	 	 	 	 	 	 >>>	b	=	4	<enter>	
	 	 	 	 	 	 >>>	c	=	a	+	b	<enter>	
	 	 	 	 	 	 >>>	print(a,	b,	c)	<enter>	
	 	 	 	 	 	 3	4	7	
	 	 	 	 	 	 >>>	print(“c	=	“,	c)	<enter>	
	 	 	 	 	 	 c	=	7	
	 	 	 	 	 	 >>>	print(3>4)	<enter>	
	 	 	 	 	 	 False	 	 #	valor	lógico	
	 	 	 	 	 	 >>>	
5.	Identificadores	e	variáveis	
	
	 Identificadores	são	os	nomes	criados	pelo	programador	para	fazer	
referência	a	variáveis,	constantes,	funções	e	módulos.	
	
Regras	para	a	criação	de	identificadores:	
	
ü O	primeiro	caracter	deve	ser	uma	letra	ou	sublinha	(_);	
ü Os	caracteres	seguintes	devem	ser	letras,	números	ou	sublinhas;	
ü Não	há	limite	de	caracteres;	
ü Não	 é	 permitido	 a	 utilização	 de	 caracteres	 em	 branco	 (caracter	
espaço);	
ü Podem	ser	letras	maiúsculas	e	minúsculas,	pois	são	diferenciados.	
	
Comentário	do	programador:		
	
#	não	é	interpretado	-	comentário	de	uma	linha	
	
”””	
comentárioem	mais	de	uma	linha	
Não	é	interpretado	
”””	
	
’’’	
comentário	em	mais	de	uma	linha	
Não	é	interpretado	
’’’	
	
	 Variáveis	em	Python	existem	em	três	tipos:	int,	float	e	string.	
Na	declaração	de	cada	variável,	Python	especifica	o	tipo,	por	exemplo:	
a	 =	 3,	 a	 é	 declarado	 como	 int,	 b	 =	 3.4	 é	 declarado	 como	 float,	 s	 =	
“Python”	ou	s	=	‘Python’	são	string’s.	
	
 
7 
Função	type:	Exibe	o	Tipo	do	Dado.	
	
#	--------------------------	Type.py	
	
a	=	3	
print(type(a))	
b	=	3.4	
print(type(b))	
c	=	'Python'	
print(type(c))	
d	=	'A'	
print(type(d))	
	
Teste	do	Programa:	
	
=========	RESTART:	/Users/pluzzardi/Documents/Type.py	=========	
<class	'int'>	
<class	'float'>	
<class	'str'>	
<class	'str'>	
>>>	
	
Comando	 id:	 Retorna	 o	 identificador	 do	 objeto,	 número	 inteiro	 que	
identifica	cada	objeto	do	Python.	
	
>>>	a	=	3	
>>>	b	=	4	
>>>	print(id(a))	 #	32	bits	/	8	bits	=	4	bytes	(inteiro)	
4297624000	
>>>	print(id(b))	
4297624032	
>>>	
6.	Operadores	aritméticos	
	
	 Os	 operadores	 aritméticos	 permitem	 ao	 programador	 realizar	
várias	 operações	 matemáticas,	 tais	 como:	 adição,	 subtração,	 divisão,	
multiplicação	e	potenciação.	A	seguir,	a	Tabela	1	exibe	os	operadores	
aritméticos	utilizados	em	Python.	
	
	
Tabela	1:	Operadores	Aritméticos	
Matemática	 Operador	aritmético	
Adição	 +	
Subtração	 -	
Multiplicação	 *	
Divisão	 /	
Potenciação	 **	
 
8 
	
6.1	Hierarquia	dos	operadores	(precedência)	
 
	 A	 Tabela	 2,	 a	 seguir,	 exibe	 a	 precedência	 dos	 operadores	 do	
Python,	ou	seja,	a	ordem	de	execução	das	operações	matemáticas.	
	
	
	
 
Tabela	2:	Hierarquia	dos	Operadores	Aritméticos	
Ordem	de	
precedência	
Tipo	de	Operador	
Parênteses	 ()	
**	 Potenciação	
-	(unário)	 Unário	
*	/	%	//	
Multiplicação,	divisão,	modulo	(resto	inteiro	da	divisão)	e	
divisão	inteira	
+	-	 Adição	e	subtração	
	
Exemplos:	
 
>>>	7	/	2	 #	divisão	real	
3.5	
>>>	7	%	2	 #	resto	inteiro	da	divisão	(módulo)	
1	
>>>	7	//	2	 #	divisão	inteira	
3	
>>>	
7.	Comando	print	(imprimir	dados	na	tela)	
	
	 O	 comando	 print	 permite	 enviar	 (imprimir)	 para	 a	 tela	 qualquer	
informação	 do	 python,	 como	 números,	 constantes,	 resultados	 de	
operações,	strings,	etc.	
	
Sintaxe	simples:	print(string,	lista_de_variáveis)	
	
Exemplos:	
	
>>>	print(4)	<enter>	
4	
>>>	print(3+4)	<enter>	
7	
>>>	print(3>4)	enter>	
False	 	 	 	 #	tipo	lógico	(True	ou	False)	
>>>	a	=	3	<enter>	
>>>	print(a)	<enter>	
 
9 
3	
>>>	b	=	4	<enter>	
>>>	print(a+b)	<enter)	
7	
>>>	A	=	7	<enter>	
>>>	print(A+b)	<enter>	
11	
>>>	print(“a	=	”,	a)	<enter>	
a	=	3	
>>>	
>>>	print(4%2)	#	resto	inteiro	da	divisão	
0	
>>>		
>>>	print(3**4)	 #	Potenciação	
81	
>>>	número_dentes	=	32	<enter>	
>>>	print(“Número	de	Dentes:	“,	número_dentes)	<enter>	
>>>	Número	de	Dentes	=	32	
>>>	a	=	3	
>>>	b	=	4	
>>>	print("a	=	",	a,	"b	=	",	b)	
a	=	3	b	=	4	
>>>	dia	=	3	<enter>	
>>>	mês	=	7	<enter>	
>>>	ano	=	2017	<enter>	
>>>	print(“Data:	%02d/%02d/%d”	%(dia,	mês,	ano))	<enter>	
03/07/2017	 #	saída	formatada	
>>>	
	
Tabela	3:	Operadores	%	
Operador	%	 Significado	
%s	 Uma	string	
%c	 Caractere	
%d	 Decimal	inteiro	
%f	 Real	(float)	
%%	 Um	'%'	
	 	
	 Note	que	o	Python	permite	formatar	os	 dados	que	serão	exibidos	
na	 tela	 através	 do	 print,	 para	 tanto	 usa	 os	 operadores	 da	 Tabela	 3,	
acima.	Repare	novamente	nos	exemplos	abaixo:	
	
>>>	dia	=	3	<enter>	
>>>	mês	=	7	<enter>	
>>>	ano	=	2017	<enter>	
>>>	print(“Data:	%02d/%02d/%d”	%(dia,	mês,	ano))	<enter>	
03/07/2017	
>>>	
	
#	==================================	data	e	hora	
	
 
10 
from	datetime	import	datetime	
	
data	=	datetime.now()	
print(data)	
print("Data:	%02d/%02d/%d"	%(data.day,	data.month,	data.year))	
print("Tempo:	%02d:%02d:%02d"	%(data.hour,	data.minute,	data.second))	
	
8.	Comando	input	(ler	dados	do	teclado)	
	
	 O	 comando	 input	 permite	 ler	 informações	 via	 teclado,	 o	 valor	
digitado	pelo	usuário	é	lido	como	uma	string,	podendo	ser	convertido	
para	inteiro	(int)	ou	real	(float).	
	
Sintaxe:	string	input(string	mensagem)	
	
Exemplos:	
	
Entrada	de	uma	String:	
	
>>>	s	=	input(“Digite	um	Nome:	“)	<enter>	
>>>	Digite	um	Nome:	Luzzardi	<enter>	
>>>	print(len(s))	 #	número	de	caracteres	da	string	
8	
>>>	
	
Entrada	de	um	Inteiro:	
	
>>>	i	=	int(input(“Digite	um	Valor:	“))	<enter>	
>>>	Digite	um	Nome:	34	<enter>	
>>>	print(i)	
34	
>>>	
	
Entrada	de	um	Real	(float):	
	
>>>	i	=	float(input(“Digite	um	Valor:	“))	<enter>	
>>>	Digite	um	Nome:	34	<enter>	
>>>	print(i)	
34.0	
>>>	
	
Outra	forma,	em	duas	etapas:	
	
>>>	s	=	input("Digite	um	Valor:	")	<enter>	
Digite	um	Valor:	34	<enter>	
>>>	x	=	int(s)	<enter>	 #	conversão	para	inteiro	
>>>	print(x)	<enter>	
34	
>>>	
 
11 
9.	Deletar	uma	variável	(del)	
	
	 Em	 Python	 é	 possível	 deletar	 (apagar,	 remover,	 desalocar	 da	
memória	RAM)	uma	variável	da	memória,	isto	é	feito	através	do	comando	
del.	
	
Sintaxe:	>>>	del	variável	
	
Exemplo:	
	
>>>	a	=	3	<enter>	
>>>	print(a)	<enter>	
3	
>>>	del	a	
>>>	print(a)	
Traceback	(most	recent	call	last):	
		File	"<stdin>",	line	1,	in	<module>	
NameError:	name	'a'	is	not	defined	
	
Erro:	identificador	‘a’	não	definido	
	
Observação:	É	possível	também	reinicializar	o	terminal	(shell),	vá	na	
opção	 Shell	 ..	 Restart	 Shell,	 todas	 as	 variáveis	 são	 destruídas,	 ou	
seja,	desalocadas	da	memória	RAM	(Random	Acess	Memory).	
	
10.	Módulos	(import)	
	
	 Python	possui	um	conjunto	de	funções	pré-definidas	agrupadas	em	
estruturas	 chamadas	 de	 módulos,	 tais	 como:	 math	 (mathematics),	 os	
(sistema	operacional),	datetime	(data	e	hora),	etc.	
	
Forma	de	importar:	import	módulo	
	
Para	utilizar	a	função	de	um	módulo:	módulo.função(argumento)	
			
Para	importar	apenas	uma	função	desejada:	from	módulo	import	função	
	
Exemplos:		 >>>	import	math	<enter>	
	 	 >>>	print(math.pi)	<enter>	
3.141592653589793	
	 	 >>>	import	os	<enter>	
	 	 >>>	os.system(“clear”)	<enter>	
	 	 >>>	from	math	import	sqrt	<enter>	
	 	 >>>	print(math.sqrt(16))	
	 	 16	
	 	 >>> 
	
 
12 
Ajuda	(help)	dos	módulos:	
	
>>>	import	math	<enter>	
>>>	help(math)	<enter>	 #	exibe	funções	do	módulo	math		
	 	 	 	 #	idêntico	ao	Linux	
	
11.	Funções	de	matemáticas	(math)	
	
	 Python	 possui	 diversas	 funções	 matemáticas	 oriundas	 do	 módulo	
“math”.	São	elas:	
	
math.factorial(x):	 Retorna	 o	 valor	 fatorial	 de	 x,	 onde	 x	 deve	 ser	
sempre	positivo.	
	
>>>	fat	=	math.factorial(5)	 #	5x4x3x2x1	=	120	
>>>	print(fat)	
120	
>>>		
	
math.modf(x):	 Retorna	 o	 valor	 inteiro	 e	 o	 valor	 fracionário	 da	
variável	x.	
	
	
>>>	print(math.modf(5.34))	
(0.33999999999999986,	5.0)	
>>>		
	
math.exp(x):	Retorna	o	exponencial	de	x,	ou	seja,	ex.	
	
>>>	print(math.exp(1))	
2.718281828459045	
>>>	print(math.exp(2))	
7.38905609893065	
>>>	print(math.exp(3))	
20.085536923187668	
>>>		
	
math.log(x,	base):	Retorna	o	log	de	x	na	base	pedida.	
	
	
>>>	print(math.log(2,10))	
0.30102999566398114	
>>>	print(math.log(3,10))	
0.47712125471966244	
>>>	
	
math.log1p(x):	Retorna	o	logaritmo	natural	de	x.	
	
	
>>>	print(math.log1p(1))	
0.6931471805599453	
 
13 
>>>	print(math.log1p(2))	
1.0986122886681098	
>>>	
	
math.sqrt(x):	Retorna	a	raiz	quadrada	de	x.	
	
	
>>>	x	=	16	
>>>	print(math.sqrt(x))	
4.0	
>>>	x	=	-16	 	 #	x	deve	ser	positivo	
>>>	print(math.sqrt(x))	
Traceback	(most	recent	call	last):	
		File	"<stdin>",	line	1,	in	<module>	
ValueError:	math	domain	error	
>>>	
	
math.degrees(x):	Converte	o	ângulo	x	de	radianos	para	graus.	
	
	
	 	 pi	radianos	à	180	graus	
	 	 	
math.radians(x):	Converte	o	ângulo	x	de	graus	para	radianos.	
	
math.sin(x):	Retorna	o	seno	de	x,	onde	x	deve	estar	em	radianos.>>>	x	=	math.sin(45)	
>>>	print(x)	
0.8509035245341184	
>>>	x	=	math.sin(math.radians(45))	
>>>	print(x)	
0.7071067811865475	
>>>		
	
math.cos(x):	Retorna	o	cosseno	de	x,	onde	x	deve	estar	em	radianos.	
	
>>>	x	=	math.cos(45)	
>>>	print(x)	
0.5253219888177297	
>>>	x	=	math.cos(math.radians(45))	 #	converte	45	para	radianos	
>>>	print(x)	
0.7071067811865476	
	
math(tan(x):	Retorna	a	tangente	de	x,	onde	x	deve	estar	em	radianos.	
	
>>>	tangente	=	math.tan(math.radians(45))	
>>>	print(tangente)	
0.9999999999999999	
>>>		
	
 
14 
math.hypot(x,	y):	Retorna	a	hipotenusa	do	triângulo	retângulo,	onde	x	
e	y	são	os	catetos	oposto	e	adjacente.	
	
>>>	hipotenusa	=	math.hypot(3	,4)	
>>>	print(hipotenusa)	
5.0	
>>>		
	
12.	Strings	(cadeia	de	caracteres)	
 
String	 é	 uma	 sequência	 de	 caracteres,	 letras,	 números	 e	
caracteres	especiais,	que	permite	trabalhar	com	textos.	
	
>>>	s	=	"Python"	<enter>	
>>>	print(s)	<enter>	
Python	
>>>	print("Número	de	caracteres	da	string:	%d"	%(len(s)))	<enter>	
6	
>>>	
	
ou	
	
>>>	s	=	‘Python’	<enter>	 #	pode	ser	utilizado	aspas	simples	
>>>	l	=	len(s)	<enter>	 	 #	retorna	o	número	de	caracteres	
>>>	print("Número	de	caracteres	da	String:	%d"	%l)	
<enter>	
6	
>>>	
	 outra	forma	de	inicialização:	
	
>>>	s	=	'P'	'y'	't'	'h'	'o'	'n'	<enter)	
>>>	print(s)	<enter>	
Python	
>>>	
	
Vetor	de	Strings:	(será	visto	em	outro	capítulo)	
	
>>>	s	=	('Paulo',	'Roberto',	'Gomes',	'Luzzardi')	<enter>	
>>>	print(s[0])	<enter>	
Paulo	
>>>	print(s[3])	<enter>	
Luzzardi	
>>>		
	
12.1	Funções	para	Strings	
	
#	-------------------------------------------	Split.py	
	
s	=	"Paulo	Roberto	Gomes	Luzzardi"	
 
15 
print("Número	de	letras:	",	len(s))	
partes	=	s.split('	')	
n	=	len(partes)	
print("Número	de	nomes:	",	n)	
for	i	in	range(n):	
				print(partes[i])	
print(partes)	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Desktop/Python/Python/Split.py	====	
Número	de	letras:		28	
Número	de	nomes:		4	
Paulo	
Roberto	
Gomes	
Luzzardi	
['Paulo',	'Roberto',	'Gomes',	'Luzzardi']	
>>>	
	
Exemplo	de	funções	de	Strings:	
	
#	--------------------------------	String.py	
	
#	--------------------------------------------	len	
s	=	'Paulo	Roberto	Gomes	Luzzardi'	
n	=	len(s)		#	retorna	o	total	de	caracteres	da	string	
print("Número	de	Caracteres:	",	n)	
	
#	--------------------------------------------	count	
caracter	=	'a'	
letras	=	s.count(caracter)		#	retorna	o	número	de	vezes	que	o	caracter	aparece	na	
string	
print('Número	de	letras	"%c"	é	%d'	%(caracter,letras))	
	
#	--------------------------------------------	replace	
s	=	s.replace('Roberto',	'R.')		#	troca	parte	da	string	
s	=	s.replace("Gomes",	"G.")	
print(s)	
	
#	--------------------------------------------	find	
pos	=	s.find('z')			#	procura	a	primeira	aparição	de	uma	letra	
print(pos)	
	
#	--------------------------------------------	upper	e	lower	
print("STRING:	",	s.upper())				#	exibe	como	maiúscula	
print(s)	
print("string:	",	s.lower())				#	exibe	como	minúscula	
print(s)	
	
#	--------------------------------------------	title	
s	=	"paulo	roberto	gomes	luzzardi"	
print(s.title())	
 
16 
	
#	--------------------------------------------	swapcase	
s	=	'Paulo	Roberto	Gomes	Luzzardi'	
print(s.swapcase())	#	inverte	as	letras	maiúsculas	e	minúsculas	
	
#	--------------------------------------------	isalpha	
print('Contém	apenas	letras:	�',	s.isalpha())				#	verifica	se	contém	apenas	letras	
s	=	'FatecSenac'	
print('Contém	apenas	letras:	�',	s.isalpha())	
	
#	---------------------------------------------	isdigit	
print('Contém	apenas	números:	',	s.isdigit())	
s	=	'123456'	
print('Contém	apenas	números:	',	s.isdigit())	
	
Teste	do	Programa:	
	
===========	RESTART:	/Users/pluzzardi/Documents/String.py	==========	
Número	de	Caracteres:		28	
Número	de	letras	"a"	é	2	
Paulo	R.	G.	Luzzardi	
14	
STRING:		PAULO	R.	G.	LUZZARDI	
Paulo	R.	G.	Luzzardi	
string:		paulo	r.	g.	luzzardi	
Paulo	R.	G.	Luzzardi	
Paulo	Roberto	Gomes	Luzzardi	
pAULO	rOBERTO	gOMES	lUZZARDI	
Contém	apenas	letras:	�	False	
Contém	apenas	letras:	�	True	
Contém	apenas	números:		False	
Contém	apenas	números:		True	
>>>	
	13.	Comandos:	Sequência,	Seleção	e	Repetição	
 
Python	possui	três	tipos	principais	de	comandos,	sequência,	onde	
todos	são	executados,	seleção,	onde	alguns	são	e	outros	não	são	
executados	e	repetição,	comandos	são	executados	diversas	vezes.	
 
13.1	Comandos	de	Sequência	
 
Comandos	de	Sequência:	
	
	 Todos	os	comandos	(ou	instruções)	em	sequência	são	sempre	
executados	no	fluxo	do	programa.	
	
#	---------------------	Circulo.py	
	
import	math	
 
17 
	
diametro	=	float(input("Digite	o	valor	do	Diâmetro:	"))	
raio	=	diametro	/	2	
area	=	math.pi	*	raio	**	2	
print("Área	do	Círculo	é:	",	area)	
	
Teste	do	Programa:	
	
Digite	o	valor	do	Diâmetro:	6	<enter>	
Área	do	Círculo	é:	28.274334	
>>>	
	
#	-----------------------------------	Temperatura.py	
	
f	=	120	
c	=	(f	-	32)	*	5	/	9	
print("Celsius:	%d"	%c,	sep='',	end='')	 #	imprime	mesma	linha	
print("	-	Fahrenheit:	",	f)	
	
Teste	do	Programa:	
	
==	RESTART:	/Users/pluzzardi/Desktop/Python/Python/Temperatura.py	==	
Celsius:	48	-	Fahrenheit:		120	 		
>>>	
	
#	----------------------------------	Random.py	
	
import	random	
	
n	=	10	
print("Faixa	de	Sorteio:	0	...	%d"	%(n-1))	
numero	=	int	(random.random()	*	n)	
print("Número	Sorteado:	",	numero)	
#	A	função	random	gera	um	número	float	aleatório	entre	0.0	e	1.0	
	
Teste	do	Programa:	
	
==========	RESTART:	/Users/pluzzardi/Documents/Random.py	=======	
Faixa	de	Sorteio:	0	...	9	
Número	Sorteado:	8	
>>>		
	
#	-----------------------------	Aleatorio.py	
	
import	random	
	
for	i	in	range(6):	
				n	=	random.randint(1,	10)	
				print("n	=	",	n)	
	
Teste	do	Programa:	
	
 
18 
=======	RESTART:	/Users/pluzzardi/Documents/Aleatorio.py	=======	
n	=		2	
n	=		9	
n	=		7	
n	=		6	
n	=		5	
n	=		7	
>>>	
13.2	Lista	de	Exercícios	(Comandos	de	sequência)	
 
a) Escreva	 um	 programa	 em	 Python	 que	 recebe	 dois	 valores	 via	
teclado:	 cateto	 adjacente	 (b)	 e	 cateto	 oposto	 (a)	 e	 calcula	 o	
valor	da	hipotenusa	dado	pela	seguinte	fórmula:		
	
	
Teste	do	Programa:		
	
Cateto	Adjacente	(b):	3	<enter>		
Cateto	Oposto	(a):	4	<enter>		
Hipotenusa:	5.0		
	
b) Escreva	 um	 programa	 em	 Python	 que	 lê	 4	 notas	 via	 teclado:	 n1,	
n2,	 n3	 e	 n4	 obtidas	 por	 um	 aluno	 em	 4	 avaliações.	 Calcule	 a	
média	utilizando	a	seguinte	fórmula:		
n1	+	n2	x	2	+	n3	x	3	+	n4	
Média	=	---------------------------	
7
	
 
 
c) Escreva	 um	 programa	 em	 Python	 que	 recebe	 via	 teclado:	
comprimento	 da	 circunferência.	 O	 programa	 deve	 calcular	 e	
imprimir	 na	 tela	 o	 diâmetro	 e	 o	 raio	 da	 circunferência	 (veja	
exemplo	abaixo):		
	
Teste	do	Programa:		
	
Comprimento	da	circunferência:	36	<enter>		
 
19 
Diâmetro:	11.46
	
Raio:	5.73	
	
comprimento	da	circunferência	=	2	.	Pi	.	raio	
diâmetro	=	2	.	raio	
	
d) Desenvolva	um	programa	em	Python	que	recebe	via	teclado:	peso	da	
carne	 que	 será	 vendida	 e	 preço	 por	 quilo.	 O	 programa	 deve	
calcular	 e	 imprimir	 na	 tela	 o	 total	 a	 pagar,	 o	 valor	 pago	 ao	
ICMS	(17%)	e	o	lucro	líquido	do	açougue.	
	
	
	
Teste	do	Programa	(1):		
	
	
Peso:	3.5	<enter>
	
Preço	por	Kg	(R$):	4.90	<enter>		
Total	a	pagar:	17.15
	
ICMS	(17%):	2.91
	
Lucro	líquido	do	açougue	(R$):	14.24		
	
Teste	do	Programa	(2):		
	
Peso:	1.5	<enter>
	
Preço	por	Kg	(R$):	9.00	<enter>		
Total	a	pagar:	13.5
	
ICMS	(17%):	2.29
	
Lucro	líquido	do	açougue	(R$):	11.21	
	
e) Escreva	um	programa	em	Python	que	recebe	via	teclado:	a	data	de	
hoje	da	seguinte	forma:	dia,	mês,	ano	e	a	sua	idade,	da	seguinte	
forma:	anos,	meses	e	dias	vividos.	Calcule	e	imprimaa	data	de	
nascimento	no	seguinte	formato:	dd/mm/aaaa.		
	
Teste	do	Programa:		
	
Qual	a	data	de	hoje:
	
Dia:	16	<enter>
	
Mês:	3	<enter>
	
Ano:	2017	<enter>
	
Qual	a	sua	idade:
	
Anos:	55	<enter>
	
Meses:	1	<enter>
	
Dias:	6	<enter>
	
Data	de	Nascimento:	10/02/1962		
	
f) Escreva	 um	 programa	 em	 Python	 que	 recebe	 via	 teclado:	 salário	
 
20 
mensal	e	percentual	de	reajuste.	Calcular	e	escrever	o	valor	do	
novo	salário.	
	
Teste	do	Programa:		
	
Salário:	500	<enter>
	
Percentual	de	reajuste:	15	<enter>
	
Novo	salário:	575		
	
g) Escreva	um	programa	em	Python	que	lê	via	teclado	as	dimensões	de	
uma	cozinha	retangular	(comprimento,	largura	e	altura),	calcular	
e	escrever	a	quantidade	de	caixas	de	azulejos	para	se	colocar	em	
todas	as	suas	paredes	(considere	que	não	será	descontado	a	área	
ocupada	por	portas	e	janelas).	Cada	caixa	de	azulejos	possui	1,5	
m2.		
Teste	do	Programa:		
	
Comprimento:	4.5	<enter>
	
Largura:	3	<enter>	
Altura:	2.8	<enter>

	
Quantidade	de	caixas:	28		
	
h) A	 turma	 C	 é	 composta	 de	 60	 alunos,	 e	 a	 turma	 D	 de	 20	 alunos.	
Escreva	 um	 programa	 em	 Python	 que	 leia	 o	 percentual	 de	 alunos	
reprovados	 na	 turma	 C,	 o	 percentual	 de	 aprovados	 na	 turma	 D,	
calcule	e	escreva:
	
a)	O	número	de	alunos	reprovados	na	turma	C.
	
b)	O	número	de	alunos	reprovados	na	turma	D.		
c)	 A	 percentagem	 de	 alunos	 reprovados	 em	 relação	 ao	 total	 de	
alunos	das	duas	turmas.		
	
Teste	do	Programa:		
	
Percentual	de	alunos	reprovados	na	turma	C:	10	<enter>
	
Percentual	de	alunos	aprovados	na	turma	D:	85	<enter>	
Quantidade	de	alunos	reprovados	na	turma	C:	6		
Quantidade	de	alunos	reprovados	na	turma	D:	3		
Percentual	de	alunos	reprovados	em	relação	ao	total	de	alunos	das	duas	turmas:	11.25		
	
i) Escreva	 um	 programa	 em	 Python	 que	 recebe	 três	 valores	 via	
teclado:	a,	b	e	c.	O	programa	deve	calcular	e	imprimir	na	tela	
os	valores	das	raízes	x1	e	x2	dados	pela	fórmula	da	bhaskara,	ou	
seja,	uma	equação	de	segundo	grau:	a.x2	+	b.x	+	c	=	0	
 
21 
	
Teste	do	Programa:	
	
a	=	1	<enter>
	
b	=	2	<enter>	
c	=	-3	<enter>	
x1	=	1	
x2	=	-3	
14.	Operadores	relacionais	
	
	 Os	 operadores	 relacionais	 permitem	 ao	 programador	 realizar	
comparações.	 A	 seguir,	 a	 Tabela	 4	 exibe	 os	 operadores	 relacionais	
utilizados	em	Python.	
	
Tabela	4:	Operadores	Relacionais	
Operador	relacional	 Função	
==	 Igual	
!=	 Diferente	
>	 Maior	
<	 Menor	
>=	
Maior	ou	
igual	
<=	
Menor	ou	
igual	
	
15.	Operadores	lógicos	
	
	 Os	 operadores	 lógicos	 permitem	 ao	 programador	 realizar	 várias	
comparações	 em	 uma	 mesma	 condição.	 A	 seguir,	 a	 Tabela	 5	 exibe	 os	
operadores	lógicos	utilizados	em	Python.	
	
Tabela	5:	Operadores	Lógicos	
Operador	lógico	
and	
or	
not	
	
and	é	verdadeiro	quando	ambas	condições	forem	verdadeiras	
or	é	verdadeiro	quando	uma	ou	ambas	condições	forem	verdadeiras.	
not	é	o	inverso	da	condição,	ou	seja,	inverte	o	True	ou	False.		
 
22 
	
16.	Comando	de	Seleção	(if)	
	
	 O	comando	de	seleção	if	permite	o	programa	seguir	dois	caminhos,	
isto	 é	 feito	 através	 de	 uma	 condição,	 utilizando	 um	 operador	
relacional	 (Tabela	 4),	 que	 pode	 ser	 verdadeira	 (True)	 ou	 falsa	
(False).	
	
Sintaxe:	if	condição:	comando		 #	simples	
	
	 	 	 ou	
	
	 	 if	condição:	 	 	 #	simples	
	 	 	 comando	
	
	 	 	 ou	
	
	 	 if	condição:	 	 	 #	composto	
	 	 	 comando1	
	 	 else:	
	 	 	 comando2	
	
	 	 	 ou	
	
	 	 if	condição1:	
	 	 	 comando1	
	 	 elif	condição2:	
	 	 	 comando2	
	 	 else:	
	 	 	 comando3	
	
	
Programa	Exemplo:	if	simples	
	
#	--------------------------------------	If.py	
	
1:	x	=	int(input("Digite	um	Número:	"))	
2:	if	x	<	0:		
3:				print("Número	é	negativo")	
4:	print("x	=	",	x)	
	
Observação:	Note	a	endentação	no	comando	if	(linha	3),	Python	utiliza	
a	 endentação	 como	 forma	 de	 formar	 blocos	 de	 comandos,	 ou	 seja,	
delimitar	instruções	ligadas	a	um	único	comando.	
	
 
23 
Teste	do	Programa:	
	
=======	RESTART:	/Users/pluzzardi/Documents/If.py	========	
Digite	um	Número:	-5	
Número	é	negativo	
x	=	-5	
>>>		
=======	RESTART:	/Users/pluzzardi/Documents/If.py	========	
Digite	um	Número:	5	
x	=	5	
>>>	
	
Programa	exemplo:	If	completo,	ou	seja,	com	duas	partes	
	
#	----------------------------------------	Par.py	
	
x	=	int(input("Digite	um	Número:	"))	
if	x	%	2	==	0:	
					print("Par")	
else:	
					print("Ímpar")	
	
Teste	do	Programa:	
	
=================	RESTART:	/Users/pluzzardi/Documents/Par.py	=======	
Digite	um	Número:	4	
Par	
>>>	
	
#	-------------------------	Bhaskara.py	
	
import	math	
	
a	=	float(input("a	=	"))	
b	=	float(input("b	=	"))	
c	=	float(input("c	=	"))	
delta	=	b**2	-	4	*	a	*	c	
if	delta	>=	0:	
				x1	=	(-b	+	math.sqrt(delta))	/	2*a	
				x2	=	(-b	-	math.sqrt(delta))	/	2*a	
				print("x1	=	",	x1)	
				print("x2	=	",	x2)	
else:	
				print("Erro:	Raizes	complexas")	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Documents/bhaskara.py	======	
a	=	1	
b	=	2	
c	=	-3	
x1	=		1.0	
 
24 
x2	=		-3.0	
>>>	
	
Programa	exemplo:	if	com	elif	
	
#	----------------------------------------	Elif.py	
	
numero	=	int(input("Digite	um	Número:	"))	
if	numero	>	0:	
				print("Positivo")	
elif	numero	<	0:	
				print("Negativo")	
else:	
				print("Zero")	
	
16.1	Lista	de	Exercícios	(Comando	de	Seleção	if)	
 
a)Escreva	um	programa	em	Python	que	lê	as	notas	de	duas	avaliações	
de	um	aluno	no	semestre.	Calcular	e	escrever	a	média	semestral	e	a	
seguinte	 mensagem:	 ‘PARABÉNS!	 Você	 foi	 aprovado’	 somente	 se	 o	
aluno	foi	aprovado	(considere	7.0	a	nota	mínima	para	aprovação)	ou	
‘Você	foi	reprovado!	Estude	mais’.		
	
Teste	do	Programa:		
	
Nota	1:	6	<enter>
	
Nota	2:	8	<enter>
	
Média:	7.0	
PARABÉNS!	Você	foi	aprovado	
	
b)Escreva	 um	 programa	 em	 Python	 que	 lê	 dois	 valores.	 Escreva	 o	
valor	do	maior,	o	menor	e	a	média	dos	dois	valores.		
	
Teste	do	Programa:		
	
Valor:	3	<enter>
	
Valor:	4	<enter>
	
Maior:	4	
Menor:	3	
Média:	3.5	
	
c)Escreva	um	programa	em	Python	que	lê	o	ano	de	nascimento	de	uma	
pessoa.	Escrever:	PODE	VOTAR	ou	NÃO	PODE	VOTAR	e	a	idade,	conforme	
exemplo	abaixo.		
	
Teste	do	Programa:		
	
Ano	de	Nascimento:	1999	<enter>
	
Status:	PODE	VOTAR	
Idade:	18	anos
	
 
25 
	
d)	 As	 maçãs	 custam	 R$	 0,30	 ser	 forem	 compradas	 menos	 do	 que	 uma	
dúzia,	 e	 R$	 0,25	 ser	 forem	 compradas	 pelo	 menos	 doze.	 Escreva	 um	
programa	em	Python	que	leia	o	número	de	maçãs	compradas,	calcule	e	
escreva	o	valor	total	da	compra.		
	
Testes	do	Programa:		
	
Maças:	20	<enter>
	
Valor	da	Compra:	R$	5.00
	
	 ou	
Maças:	12	<enter>
	
Valor	da	Compra:	R$	3.00
	
	
e)	Escreva	um	programa	em	Python	que	recebe	via	teclado	a	altura	e	
o	sexo	(codificado	da	seguinte	forma:	[f]	feminino	-	[m]	masculino)	
de	uma	pessoa.	Calcule	e	imprima	na	tela	o	peso	ideal,	utilizando	
as	seguintes	fórmulas:		
Homens:	72.7	*	h	-	58	
Mulheres:	62.1	*	h	-	44.7		
	
Testes	do	Programa:		
	
Altura:	1.80	<enter>
	
Sexo	[M]	ou	[F]:	m
<enter>	
Peso	Ideal:	72.86	
	 ou	
Altura:	1.65	<enter>
	
Sexo	[M]	ou	[F]:	F
<enter>	
Peso	Ideal:	57.765	
17.	Contador	e	acumulador	
 
Um	contador	é	uma	variável	que	possui	uma	expressão	matemática,	
dentro	 de	 um	 comando	 de	 atribuição,	 que	 realiza	 uma	 contagem	 de	 uma	
certa	quantidade	de	vezes	que	um	comando	de	repetição	é	executado,	ou	
seja,	 ela	 mantém	 a	 quantidade	 de	 vezes	 que	 um	 laço	 foi	 executado.	
Pode-se	 contar	 de	 um	 em	 um,	 dois	 em	 dois	 e	 assim	 sucessivamente,	
servindo,	normalmente,	para	contar	o	número	de	elementos.	
Sintaxe:	x	=	x	+	1		 	 #	x	ß	x	+	1	
Note	 que	 é	 somado	 um	 (1)	 ao	 x	 e	 então	 atribuído	 este	 novovalor	 ao	
próprio	x.	Note	ainda	que	um	(1)	é	uma	constante,	que	pode	ser	1,	2,	
3,	...	
 
26 
Um	acumulador	ou	somador	é	uma	variável	que	contém	uma	expressão	
matemática	que	serve	para	acumular	valores	a	cada	vez	que	o	código	é	
executado.	
Sintaxe:	soma	=	soma	+	n		 #	soma	ß	soma	+	n	
Note	que	é	somado	o	valor	‘n’	a	soma	e	atribuído	este	novo	valor	a	
própria	soma.	Note	ainda	que	n	é	uma	variável,	que	pode	ser	qualquer	
valor	inteiro	ou	real	(float).	
18.	Comandos	de	Repetição	(while	e	for)	
	
	 Os	 comandos	 de	 repetição	 while	 e	for	 permitem	 repetir	 diversas	
vezes	 um	 bloco	 de	 comandos	 ou	 instruções.	 While	 repete	 enquanto	 a	
condição	é	verdadeira.		
 
Comando	while:	
	
Sintaxe:		 while	condição:	
	 	 	 comando1	
	 	 	 comando2	
	 	 			 		...	
 
#	---------------------------	While.py	
	
i	=	1	
while	i	<=	10:	
				print("i	=	",	i)	
				i	=	i	+	1	
	
Teste	do	Programa:	
	
=========	RESTART:	/Users/pluzzardi/Documents/While.py	=========	
i	=		1	
i	=		2	
i	=		3	
i	=		4	
i	=		5	
i	=		6	
i	=		7	
i	=		8	
i	=		9	
i	=		10	
>>>	
 
#	--------------------	In2.py	
	
import	random	
	
 
27 
s	=	's'	
while	s	in	['S',	's']:	 #	operador	in	
				num	=	random.randint(1,	10)	
				print("Número	sorteado:	",	num)	
				s	=	input("Continua	[S/N]")	
	
Teste	do	Programa:	
	
=============	RESTART:	/Users/pluzzardi/Documents/In2.py	=========	
Número	sorteado:		2	
Continua	[S/N]s	
Número	sorteado:		2	
Continua	[S/N]s	
Número	sorteado:		7	
Continua	[S/N]s	
Número	sorteado:		10	
Continua	[S/N]n	
>>>	
 
Comando	for:	
	
	 Permite	executar	várias	vezes	um	bloco	de	comandos.	
	
Sintaxe:		 for	variável	in	faixa:	
	 	 	 comando1	
	 	 	 comando2	
	 	 			 		...	
 
Observação:	 A	 escolha	 entre	 o	 comando	 while	 e	 for	 se	 dá	 sempre	 que	
sabe-se	a	quantidade	de	vezes	que	um	bloco	é	executado.	Sempre	que	se	
sabe	 o	 número	 de	 vezes,	 deve-se	 usar	 o	 comando	 for,	 caso	 contrário,	
deve-se	 utilizar	 o	 comando	 while,	 que	 pode	 ser	 controlado	 de	 várias	
formas,	baseados	em	sua	condição.	
	
	 Para	 utilizar	 o	 comando	 for	 deve-se	 saber	 o	 início	 (start),	 o	
ponto	de	parada	(stop)	e	a	variação	(step).	
		
#	---------------------------------	For.py	
	
for	i	in	range(6):	 #	faixa:	0	à	5,	onde	6	é	o	ponto	de	parada	
				print(i)	
	
======	RESTART:	/Users/pluzzardi/Desktop/Python/Python/For.py	=====	
0	
1	
2	
3	
4	
5	
>>>	
	
 
28 
#	-----------------------------------	ForDuplo.py	
	
for	i	in	range(3):	
				for	j	in	range(4):	
								print(i,	j)	
	
======	RESTART:	/Users/pluzzardi/Documents/ForDuplo.py	==========	
0	0	
0	1	
0	2	
0	3	
1	0	
1	1	
1	2	
1	3	
2	0	
2	1	
2	2	
2	3	
>>>	
	
Observação:	Note	que	começa	sempre	em	zero.	
	
#	-----------------------------------	ForDuplo2.py	
	
for	i	in	range(3):	
				for	j	in	range(4):	
								print(i+1,	j+1)	
	
===	RESTART:	/Users/pluzzardi/Desktop/Python/Python/ForDuplo2.py	===	
1	1	
1	2	
1	3	
1	4	
2	1	
2	2	
2	3	
2	4	
3	1	
3	2	
3	3	
3	4	
>>>	
	
18.1	range	(faixa)	
	
	 Range	 permite	 determinar	 o	 ponto	 de	 partida	 (start),	 ponto	 de	
parada	(stop)	e	a	variação	(step)	usado	no	comando	for.	
	
Sintaxe:	range(start,	stop,	step)	
	
Onde:		Start:	partida	
 
29 
Stop:	parada	(stop	-	1)	
Step:	passo	(incremento	[+]	ou	decremento	[-])	
	
Exemplos:	
	
for	i	in	range(10):	 	 #	0	1	2	3	4	5	6	7	8	9	
	 print(i)	
	
for	i	in	range(0,	10,	2):	 #	0	2	4	6	8	
	 print(i)	
	
for	i	in	range(0,	11,	2):	 #	0	2	4	6	8	10	
	 print(i)	
	
for	i	in	range(10,	-1,	-1):	 #	10	9	8	7	6	5	4	3	2	1	0	
	 print(i)	
	
for	i	in	range(10,	0,	-1):	 #	10	9	8	7	6	5	4	3	2	1	
	 print(i)	
	
Observação:	Nunca	chega	no	ponto	de	parada.	
 
18.2	Lista	de	Exercícios	(Comando	de	Repetição	while	e	for)	
 
a)Escreva	 um	 programa	 em	 Python	 que	 lê	 um	 número	 via	 teclado.	 O	
programa	 deve	 exibir	 se	 o	 número	 é	 PAR	 ou	 ÍMPAR.	 O	 programa	 é	
encerrado	quando	o	número	digitado	for	ZERO.		
	
Teste	do	Programa:		
	
Número:	6	<enter>
	
PAR	
Número:	7	<enter>	
IMPAR	
Número:	0	<enter>	
PAR	
>>>	
	
b)Escreva	 um	 programa	 em	 Python	 que	 lê	 um	 número	 via	 teclado.	 O	
programa	 deve	 exibir:	 POSITIVO,	 NEGATIVO	 ou	 ZERO.	 O	 programa	 é	
encerrado	 quando	 o	 usuário	 digitar	 ‘N’	 ou	 ‘n’	 na	 pergunta	
“Continua	[S/N]?”.		
	
Teste	do	Programa:		
	
Número:	6	<enter>
	
POSITIVO	
Continua	[S/N]?	s	
Número:	-7	<enter>	
NEGATIVO	
Continua	[S/N]?	S	
 
30 
Número:	0	<enter>	
ZERO	
Continua	[S/N]?	N	
>>>	
	
c)Escreva	 um	 programa	 em	 Python	 que	 lê	 um	 nome	 via	 teclado.	 O	
programa	deve	exibir	o	número	de	palavras	do	nome	e	a	abreviatura	
do	nome.		
	
Teste	do	Programa:		
	
Nome:	Paulo	Roberto	Gomes	Luzzardi	<enter>	
Número	de	palavras:	4	
Abreviatura:	P.	R.	G.	L.	
>>>	
	
d)Escreva	 um	 programa	 em	 Python	 que	 lê	 um	 nome	 via	 teclado.	 O	
programa	deve	exibir	o	nome	do	autor,	conforme	exemplo	abaixo:		
	
Teste	do	Programa:		
	
Nome:	Paulo	Roberto	Gomes	Luzzardi	<enter>	
Autor:	Luzzardi,	Paulo	R.	G.	
>>>	
	
e)	 Escreva	 um	 programa	 em	 Python	 que	 lê	 um	 nome	 qualquer	 via	
teclado.	Logo	após	a	entrada	exiba	na	tela:	(a)	todas	as	vogais	do	
nome;	 (b)	 todas	 as	 consoantes	 do	 nome	 e	 o	 (c)	 total	 de	 letras,	
conforme	e	exatamente	igual	ao	teste	abaixo:	
 
Teste	do	Programa:		
 
Nome: paulo roberto gomes luzzardi <enter> 
Vogais: auooeooeuai (11) 
Consoantes: plrbrtgmslzzrd (14) 
Total de letras: 25 
>>>	
	
19.	Listas	em	Python	(vetores)	
	 	
Em	Python	vetores	são	representados	em	forma	de	listas.	Vetores	
são	estruturas	que	permitem	armazenar	valores	homogêneos,	ou	seja,	de	
mesmo	tipo.	Listas	por	outro	lado,	são	classes	que	permitem	armazenar	
qualquer	tipo	de	informação.	A	seguir	são	vistos	diversos	exemplos	da	
utilização	de	listas.	
 
Exemplo:	Lista1.py	
 
#	-------------------------------	Lista1.py	
 
 
31 
x	=	[10,	20,	30]	
n	=	len(x)	 	 	 #	retorna	o	número	de	elementos	da	lista	
for	i	in	range(n):	
	 print(x[i])	 	 #	imprime	elemento	por	elemento	
	
	
Teste	do	Programa:	
	
=======	RESTART:	/Users/pluzzardi/Documents/Lista1.py	==========	
10	
20	
30	
>>>	
	
Exemplo:	Lista2.py	
	
#	-------------------------------	Lista2.py	
	
x	=	[]	#	declara	uma	lista	vazia	
n	=	int(input("Número	de	Elementos:	"))	
for	i	in	range(n):	
				num	=	int(input("Digite	um	Número:	"))	
				x.append(num)	 	 #	insere	um	elemento	no	fim	da	lista	
for	i	in	range(n):	
				print('x[',i,']	=	',	x[i],	sep='')	 #	elimina	o	espaço	
print("Lista:	",	x)	
	
Teste	do	Programa:	
	
====	RESTART:	/Users/pluzzardi/Desktop/Python/Python/Lista2.py	====	
Número	de	Elementos:	4	
Digite	um	Número:	10	
Digite	um	Número:	20	
Digite	um	Número:	30	
Digite	um	Número:	40	
x[0]	=	10	
x[1]	=	20	
x[2]	=	30	
x[3]	=	40	
Lista:		[10,	20,	30,	40]	
>>>	
	
Exemplo:	Lista3.py	
	
#	------------------------------	Lista3.py	
	
x	=	[10,	20,	30]	
y	=	x	
print("x	=	",	x,	"y	=	",	y)	
print(x	is	y)	
print(id(x))	
print(id(y))	
t	=	x[:]					 #	cria	uma	cópia	da	lista	x	...	t	=	x.copy()	
 
32 
print(t	is	x)	
print(id(t))	
print("Número	de	Elementos:	",	len(x))	
	
Teste	do	Programa:	
	
========	RESTART:	/Users/pluzzardi/Documents/Lista3.py	==========	
x	=		[10,	20,	30]	y	=		[10,	20,	30]	
True	
4380371208	
4380371208	
False	
4320652552	
Número	de	Elementos:		3	
>>>	
	
Exemplo:	Lista4.py	
	
#	--------------------------------	Lista4.py	
	
nome	=	[]	
nota	=	[]	
soma	=	0.0	
numeroAlunos	=	4	
for	i	in	range(numeroAlunos):	
				nome.append(input("Nome	do	Aluno:	"))	
				nota.append(float(input("Nota	do	"	+	nome[i]	+	":	")))	
				soma	=	soma	+	nota[i]	
media	=	soma	/	numeroAlunos	
print("Média	da	Turma:",	media)	
	
Teste	do	Programa:	
	
========	RESTART:	/Users/pluzzardi/Documents/Lista4.py	=============Nome	do	Aluno:	Paulo	
Nota	do	Paulo:	7	
Nome	do	Aluno:	Roberto	
Nota	do	Roberto:	8	
Nome	do	Aluno:	Gomes	
Nota	do	Gomes:	9	
Nome	do	Aluno:	Luzzardi	
Nota	do	Luzzardi:	10	
Média	da	Turma:	8.5	
>>>	
	
Imprimir	Listas	utilizando	o	comando	for:	
	
lista	=	{10,	20,	30,	40,	50}		 	 #	lista	de	números	inteiros	
	
print("Lista	sem	Ordenação")	
for	i	in	lista:	
				print(i)	
	
 
33 
print("Lista	Ordenada")	
for	i	in	sorted(lista):	
				print(i)	
	
for	i,	valor	in	enumerate(lista):	 #	com	numeração	
				print("%d	-	%d"	%(i,	valor))	
	
lista	=	list(range(10))	
for	i	in	lista:	
				lista[i]	=	i	+	5	
				print(lista[i])	
print(lista)	
	
nomes	=	{"Carla",	"Ana",	"Debora",	"Eva",	"Beatriz"}	
for	i	in	sorted(nomes):	
				print(i)	
					
#	for	<variável>	in	<lista>:	
#			<bloco	de	código	endentado>	
	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Desktop/Python/Python/For.py	=====	
0	
1	
2	
3	
4	
5	
Lista	sem	Ordenação	
40	
10	
50	
20	
30	
Lista	Ordenada	
10	
20	
30	
40	
50	
0	-	40	
1	-	10	
2	-	50	
3	-	20	
4	-	30	
5	
6	
7	
8	
9	
10	
 
34 
11	
12	
13	
14	
[5,	6,	7,	8,	9,	10,	11,	12,	13,	14]	
Ana	
Beatriz	
Carla	
Debora	
Eva	
	
Funções	para	operar	listas:	
	
Anexar	o	elemento	no	final	da	lista:	append	
	
lista.append(elemento)	
	
Remove	o	elemento	da	lista:	remove	
	
lista.remove(elemento)	
	
Limpa	toda	a	lista,	ou	seja,	apaga	todos	os	elementos	da	lista:	clear	
	
lista.clear()	
	
Insere	o	elemento	antes	do	índice:	insert	
	
lista.insert(índice,	elemento)	
	
Remove	o	último	elemento	e	retorna	o	valor:	pop	
	
ultimo	=	lista.pop()	
	
Reverte	os	elementos	da	lista	(muda	a	ordem):	reverse	
	
lista.reverse()	
	
Cria	uma	cópia	da	lista:	copy	
	
temp	=	lista.copy()	
	
Ordena	uma	lista:	sort	
	
lista.sort()	 ou		 lista.sort(reverse	=	True)	
	
Número	de	elementos	de	uma	lista:	len	
 
35 
	
n	=	len(lista)	
	
Retorna	o	número	de	vezes	de	um	elemento	dentro	de	uma	lista:	count	
	
vezes	=	lista.count(elemento)	
	
Retorna	o	índice	de	um	elemento	em	uma	lista:	index	
	
posição	=	lista.index(elemento)	
	
#	---------------------------------------	Lista.py	
	
lista	=	[40,	30,	50,	10,	20]	
	
lista.sort()	 #	ordena	em	ordem	crescente	
print(lista)	
	
lista.sort(reverse=True)	 #	ordena	em	ordem	decrescente	
print(lista)	
	
#	insert(posição,	valor)	
lista.insert(1,	15)					#	insere	o	elemento	antes	da	posição	
print(lista)	
	
print(lista.count(20))		#	exibe	o	número	de	vezes	do	elemento	
	
print(lista.index(20))		#	exibe	o	índice	do	elemento	
	
ultimo	=	lista.pop()				#	remove	o	último	elemento	
print("Último	elemento:	",	ultimo)	
print(lista)	
	
lista.reverse()					#	inverte	a	lista	(ordem	dos	elementos)	
print(lista)	
	
temp	=	lista.copy()	
print("Lista	Nova:	",	temp)	
	
Teste	do	programa:	
	
===============	RESTART:	/Users/pluzzardi/Desktop/Lista.py	=========	
[10,	20,	30,	40,	50]	
[50,	40,	30,	20,	10]	
[50,	15,	40,	30,	20,	10]	
1	
4	
Último	elemento:		10	
[50,	15,	40,	30,	20]	
[20,	30,	40,	15,	50]	
Lista	Nova:		[20,	30,	40,	15,	50]	
>>>	
 
36 
	
	 O	programa	a	seguir	mostra	a	criação	aleatória	de	palpites	para	
a	MegaSena.	
	
#	----------------------------	MegaSena.py	
	
import	random	
	
#	----------------------------	repetido	
def	repetido(num,	n,	t):	
				for	i	in	range(n):	
								if	num[i]	==	t:	
												return(True)	
				return(False)	
	
#	----------------------------	imprime	
def	imprime(num):	
				for	i	in	range(len(num)):	
								t	=	num[i]	
								print("%2d	"	%t,	sep='',	end='')	
				print()	
					
ch	=	's'	
while	ch	in	['S',	's']:	
				palpites	=	int(input("Número	de	palpites:	"))	
				for	i	in	range(palpites):	
								num	=	[]	
								n	=	1	
								num.append(random.randint(1,	60))	
								while	n	!=	6:	
												t	=	random.randint(1,	60)	
												if	not(repetido(num,	n,	t)):	
																num.append(t)	
																n	=	n	+	1	
								num.sort()	 #	ordena	a	lista	
								imprime(num)	
				ch	=	input("Continua	[s/n]?")	
	
Teste	do	Programa:	
	
========	RESTART:	/Users/pluzzardi/Desktop/MegaSena.py	=============	
Número	de	palpites:	5	
	3		9	14	17	26	40		
	2		7	10	12	28	54		
	9	13	16	30	36	39		
	2	26	29	43	47	54		
	5	12	23	31	37	55		
Continua	[s/n]?s	
Número	de	palpites:	6	
	9	11	23	26	33	34		
	8	28	31	40	43	50		
	9	17	22	24	28	47		
22	31	33	36	39	45		
 
37 
16	27	39	40	43	46		
15	31	36	42	48	60		
Continua	[s/n]?n	
>>>	
19.1	Lista	de	Exercícios	de	Vetores	(listas)	
	
a) Escreva	um	programa	em	Python	que	recebe	via	teclado	um	conjunto	
de	 letras.	 Armazene	 todas	 as	 letras	 em	 um	 vetor	 ou	 lista	
(letras)	 até	 que	 o	 usuário	 digite	 apenas	 <enter>.	 Logo	 após	
copie	 todas	 as	 letras	 (em	 ordem	 inversa)	 para	 outro	 vetor	
(inverso).	 Ao	 final	 imprima	 os	 dois	 vetores	 (conforme	 exemplo	
abaixo).		
Teste	do	programa:		
Letra: L <enter> 
Letra: I <enter> 
Letra: M <enter> 
Letra: A <enter> 
Letra: <enter> 
[‘L’, ‘I’, ‘M’, ‘A’] 
[‘A’, ‘M’, ‘I’, ‘L’] 
 
b) Escreva	um	programa	em	Python	que	recebe	via	teclado:	número	de	
idades	e	as	respectivas	idades.	Armazene	todas	as	idades	em	um	
vetor	 (idade).	 Logo	 após	 a	 entrada	 de	 todas	 as	 idades,	 o	
programa	 deve	 receber	 via	 teclado:	 idade	 para	 consulta.	 O	
programa	 deve	 imprimir	 na	 tela,	 o	 número	 de	 idades	 antes	 da	
idade	 de	 consulta	 e	 o	 número	 de	 idades	 depois	 da	 idade	 de	
consulta	(conforme	exemplo	abaixo).	Exibir	Idade	não	encontrada	
se	a	idade	de	consulta	não	existir.	
Teste	do	programa:		
Número de idades:
 6 <enter> 
Idade: 30 <enter>
 
Idade: 60 <enter>
 
Idade: 10 <enter>
 
Idade: 50 <enter>
 
Idade: 20 <enter>
 
Idade: 40 <enter>
 
Idade para consulta: 50 <enter> 
Antes: 3 
Depois: 2
 
Continua [S/N]? n <enter> 
 
c) Escreva	um	programa	em	Python	que	recebe	via	teclado	um	conjunto	
de	 números	 inteiros.	 Armazene	 todos	 os	 números	 inteiros	 em	 um	
vetor	 até	 que	 o	 usuário	 digite	 0	 (zero).	 Logo	 após	 permita	 ao	
 
38 
usuário	 consultar	 um	 número	 informando	 o	 seu	 valor.	 O	 programa	
deve	 imprimir	 na	 tela	 a	 posição	 do	 número	 no	 vetor	 ou	 ERRO:	
Número	não	encontrado	(veja	exemplos	abaixo):		
Exemplo:		
Número: 50 <enter>
 
Número: 30 <enter>
 
Número: 20 <enter>
 
Número: 10 <enter>
 
Número: 40 <enter>
 
Número: 0 <enter>
 
Valor: 20 <enter>
 
Posição no vetor: 2
 
Valor: 40 <enter>
 
Posição no vetor: 4
 
Valor: 60 <enter>
 
ERRO: Número não encontrado 
Valor: 0 <enter> 
 
Observação:	O	programa	termina	quando	o	usuário	digitar	0	(zero).		
d) Escreva	 um	 programa	 em	 Python	 que	 recebe	 via	 teclado	 "n"	
conceitos	 (A,	 B,	 C,	 D	 e	 E)	 até	 que	 o	 usuário	 digite	 F	 ou	 f.	
Armazene	 todos	 os	 conceitos	 em	 um	 vetor	 (conceito).	 Imprima	 na	
tela	o	número	de	alunos:	aprovados	(A,	B	e	C),	reprovados	(D)	e	
os	infrequentes	(E).	
Teste	do	programa:		
Conceito: B <enter> 
Conceito: A <enter> 
Conceito: E <enter> 
Conceito: B <enter> 
Conceito: D <enter> 
Conceito: C <enter> 
Conceito: A <enter> 
Conceito: E <enter> 
Conceito: f <enter> 
5 Aprovado(s) 
1 Reprovado(s)
 
2 Infrequente (s) 
 
e) 	Escreva	 um	 programa	 em	 Python	 que	 recebe	 via	 teclado	 “n”	
nomes.	 A	 entrada	 dos	 nomes	 termina	 quando	 o	 usuário	 digitar	
apenas	<enter>.	Logo	após	a	entrada	de	todos	os	nomes	o	programa	
deve	 permitir	 a	 entrada	 via	 teclado	 de	 uma	 letra.	 O	 programa	
deve	 imprimir	 na	 tela	 todos	 os	 nomes	 que	 começam	 com	 a	 letra	
especificada	 pelo	 usuário.	 O	 programa	 termina	 quanto	 o	 usuário	
digitar	 “”	 (nada)	 na	 entrada	 da	 letra	 (conforme	 exemplos	
abaixo):		
 
39 
Teste	do	programa:		
Nome: Paulo <enter> 
Nome: Roberto <enter> 
Nome: Renato <enter>Nome: Pedro <enter> 
Nome: Fabio <enter> 
Nome: <enter> 
Letra: R <enter> 
Nome: Roberto 
Nome: Renato 
Letra: P <enter> 
Nome: Paulo 
Nome: Pedro 
Letra: T <enter> 
Letra: <enter> 
 
f) Escreva	um	programa	em	Python	que	recebe	via	teclado	“n”	nomes	
e	idades.	A	entrada	dos	dados	termina	quando	o	usuário	digitar	
'N'	ou	'n'	na	pergunta	"Continua	[S/N]?".	Logo	após	a	entrada	de	
todos	os	dados	o	programa	deve	imprimir	na	tela	todos	os	nomes	e	
idades	desde	o	mais	velho	até	o	mais	novo.		
Teste	do	programa:		
Nome: Ana <enter>
 
Idade: 12 <enter> 
Continua [S/N]? s <enter> 
Nome: Beatriz <enter> 
Idade: 13 <enter> 
Continua [S/N]? s <enter> 
Nome: Carla <enter> 
Idade: 14 <enter> 
Continua [S/N]? N <enter> 
Carla 14 
Beatriz 13 
Ana 12 
	
	
20.	Questões	de	prova	
 
A	seguir	são	apresentadas	diversas	questões	de	provas.	Resolva-
as,	 pois	 elas	 servirão	 como	 um	 simulado	 para	 treino	 da	 linguagem	 de	
programação	Python.	
 
1. Escreva um programa em Python que lê um nome qualquer 
via teclado. Logo após a entrada, imprima na tela o nome 
abreviado e a quantidade de palavras abreviadas, conforme e 
exatamente igual aos testes abaixo: 
 
Teste do programa (1): 
 
40 
 
Nome: Paulo Roberto Gomes Luzzardi <enter> 
Abreviatura: Paulo R. G. Luzzardi 
Palavras abreviadas: 2 
 
Teste do programa (2): 
 
Nome: adriane maria machado freitas luzzardi <enter> 
Abreviatura: adriane m. m. f. luzzardi 
Palavras abreviadas: 3 
 
2. Escreva um programa em Python que lê nomes via teclado. 
Para cada nome digitado pelo usuário, armazene em uma Lista 
[f] para feminino, [m] para masculino ou [i] para 
indeterminado, conforme exemplo abaixo. Ao final imprima a 
Lista, o total de homens, o total de mulheres e o total de 
indeterminados. 
 
Teste do programa: 
 
Nome: Debora <enter> 
Nome: Carla <enter> 
Nome: Beatriz <enter> 
Nome: Paulo <enter> 
Nome: Renato <enter> 
Nome: <enter> 
Lista: [‘f’, ‘f’, ‘i’, ‘m’, ‘m’] 
2 homens 
2 mulheres 
1 indeterminados 
 
3. Escreva um programa em Python que recebe “n” nomes via 
teclado (até que o usuário digite apenas <enter>). Insira 
todos os nomes ORDENADOS em uma Lista de Strings (conforme 
exemplo abaixo). Ao final, o programa deve exibir a Lista 
contendo os nomes em ordem alfabética. 
 
Teste do programa: 
 
Nome: Debora <enter> 
Nome: Carla <enter> 
Nome: Eva <enter> 
Nome: Beatriz <enter> 
Nome: Ana <enter> 
Nome: <enter> 
Lista: [‘Ana’, ‘Beatriz’, ‘Carla’, ‘Debora’, ‘Eva’] 
 
4. Escreva um programa em Python que lê um nome via 
teclado. Logo após a entrada crie uma outra string 
(invertido) para inverter e exibir este nome na tela e 
ainda o número de letras do nome (sem contar os espaços) e 
o total de espaços do nome, conforme exemplo abaixo. 
 
Teste do programa: 
 
Nome: paulo roberto gomes luzzardi <enter> 
Invertido: idrazzul semog otrebor oluap 
 
41 
Total de Letras: 25 
Total de Espaços: 3 
	
5. Escreva um programa em Python que recebe via teclado: 
valor inicial, valor final e intervalo. O programa deve 
inserir “n” valores em uma Lista (desde o valor inicial até 
o valor final levando em consideração o intervalo entre 
eles, conforme exemplos abaixo. Ao final, o programa deve 
exibir a Lista criada com estes valores. 
 
Teste do programa: 
 
Valor Inicial: 10 <enter> 
Valor Final: 70 <enter> 
Intervalo: 10 <enter> 
Lista: [10, 20, 30, 40, 50, 60, 70] 
 
Valor Inicial: 60 <enter> 
Valor Final: 20 <enter> 
Intervalo: 5 <enter> 
Lista: [60, 55, 50, 45, 40, 35, 30, 25, 20] 
	
6. Escreva um programa em Python que insere “n” números 
inteiros em uma Lista (até que o usuário digite zero). Logo 
após permita a consulta de um valor e então exiba: (a) o 
antecessor e (b) o sucessor ou Antecessor não existe, 
Sucessor não existe ou Elemento não Encontrado (exatamente 
igual aos exemplos abaixo). 
 
Teste do programa: 
 
Valor: 10 <enter> 
Valor: 20 <enter> 
Valor: 30 <enter> 
Valor: 40 <enter> 
Valor: 50 <enter> 
Valor: 0 <enter> 
Lista: [10, 20, 30, 40, 50] 
Valor a consultar: 30 <enter> 
Antecessor: 20 
Sucessor: 40 
Valor a consultar: 10 <enter> 
Antecessor não existe 
Sucessor: 20 
Valor a consultar: 60 <enter> 
Antecessor não existe 
Erro: Elemento não encontrado 
Sucessor não existe 
Valor a consultar: 0 <enter> 
	
7. Escreva um programa em Python que recebe via teclado: 
número de idades e as referidas idades. O programa deve 
então imprimir na tela: (a) as idades em ordem crescente; 
(b) maior idade; (c) menor idade e (d) a média de idades. 
 
Teste do programa: 
 
Número de Idades: 4 <enter> 
 
42 
Idade: 49 <enter> 
Idade: 51 <enter> 
Idade: 48 <enter> 
Idade: 50 <enter> 
Idades Ordenadas: [48, 49, 50, 51] 
Maior Idade: 51 
Menor Idade: 48 
Média de Idades: 49.5 
	
8. Escreva um programa em Python que lê um vetor R de 5 
elementos contendo o gabarito da LOTO. A seguir, ler um 
vetor A de 10 elementos contendo uma aposta. A seguir 
imprima quantos pontos fez o apostador. 
 
Teste do programa: 
 
[Entrada] 
R: 4 12 34 25 17 (gabarito) 
A: 3 17 55 21 34 4 27 29 20 11 (aposta) 
 
[Saída] 
3 (pontos) 
	
9. Dada a seguinte tela: 
 
 Salário Mensal (R$): 900 <enter> 
 Férias (R$): 450 <enter> 
 13 Salário (R$): 780 <enter> 
 Salário Anual (R$): 12030.00 
 Alíquota do Imposto de Renda: ISENTO 
 
 
 Escreva um programa em Python que recebe via teclado: 
Salário mensal, valor das férias e 13o salário. O programa 
deve calcular e imprimir na tela: Salário Anual e a 
Alíquota do imposto de renda (dada pela tabela abaixo): 
 
Salário Mensal Alíquota do Imposto de Renda 
Menor ou igual a 1.058,00 Isento 
Maior que 1.058,00 15% 
Maior que 2.700,00 27,5% 
 
 
10. Escreva um programa em Python que lê via teclado, um 
número inteiro qualquer (positivo ou negativo). O programa 
deve calcular e imprimir na tela: (a) inverso; (b) 
quadrado; (c) raiz quadrada e (d) cubo deste número. 
 
Teste do programa: 
 
Número: 4 <enter> 
Inverso: 0.25 
Quadrado: 16 
Raiz Quadrada: 2 
Cubo: 64 
 
11. Dado os seguintes exemplos de entrada de dados: 
 
43 
 
 
 a = 1 <enter> a = 1 <enter> 
 b = -4 <enter> b = 2 <enter> 
 c = 2 <enter> c = 3 <enter> 
 
 Raízes Reais Raízes Complexas 
 
 x1 = 3.41 x1 = -1.00 + 1.41 i 
 x2 = 0.59 x2 = -1.00 - 1.41 i 
 
 
 Escreva um programa em Python que recebe via teclado: 
os coeficientes a, b e c de uma equação do segundo grau. O 
programa deve calcular e imprimir na tela: as raízes x1 e 
x2. 
 
a . x2 + b . x + c = 0 # equação de segundo grau 
 
 
Atenção: Note que as raízes podem ser Reais ou Complexas. 
 
 
delta = b2 – 4ac 
 
 +------ 
 -b +- \/ delta 
Raízes Reais: x1,2 = ------------------ “delta maior ou igual a zero” 
 2.a 
 
 +--------- 
 -b \/ | delta | 
Raízes Complexas: x1,2 = ----- +- ------------- i “delta menor que zero” 
 2.a 2.a 
	
12. Escreva um programa em Python que lê um conjunto de 10 
pares de dados contendo, cada um, a altura e um código para 
masculino (1) e outro para feminino (2) de uma turma de 
alunos. Calcular e imprimir na tela: (a) maior e a menor 
altura da turma e (b) média de altura das mulheres e dos 
homens e (c) total de homens e total de mulheres. 
 
Teste do programa: 
 
[Entrada] 
1.80 (altura) 1 (masculino) 
1.60 (altura) 2 (feminino) 
1.62 (altura) 1 (masculino) 
1.70 (altura) 2 (feminino) 
1.72 (altura) 1 (masculino) 
1.80 (altura) 2 (feminino) 
1.92 (altura) 1 (masculino) 
1.40 (altura) 1 (masculino) 
1.42 (altura) 1 (masculino) 
1.64 (altura) 1 (masculino) 
[Saída] 
1.92 (maior altura da turma) 
1.40 (menor altura da turma) 
1.70 (média de altura das mulheres 
1.65 (média de altura dos homens 
 
44 
7 Homens 
3 Mulheres 
	
13. Escrevaum	programa	em	Python	que	recebe	via	teclado	“n”	nomes	e	
idades.	 A	 entrada	 dos	 dados	 termina	 quando	 o	 usuário	 digitar	 'N'	 ou	
'n'	 na	 pergunta	 "Continua	 [S/N]?".	 Logo	 após	 a	 entrada	 de	 todos	 os	
dados	 o	 programa	 deve	 imprimir	 na	 tela	 todos	 os	 nomes	 e	 idades	 em	
ordem	alfabética	(conforme	exemplo	abaixo).	
	
Teste do programa: 
	
Nome:	Beatriz	<enter>	
Idade:	12	<enter>	
Continua	[S/N]?	s	<enter>	
Nome:	Carla	<enter>	
Idade:	13	<enter>	
Continua	[S/N]?	s	<enter>	
Nome:	Debora	<enter>	
Idade:	15	<enter>	
Continua	[S/N]?	s	<enter>	
Nome:	Ana	<enter>	
Idade:	14	<enter>	
Continua	[S/N]?	N	<enter>	
Ana	 	 14	
Beatriz	12	
Carla	 	 13	
Debora	15	
	
14. Escreva um programa em Python que recebe via teclado: 
valor e quantidade até que o usuário tecle zero (0) no 
valor. O programa deve inserir ambos valores em uma Lista 
(conforme exemplo abaixo). Ao final, o programa deve criar 
e exibir outra Lista (Lista por extenso) contendo todos os 
valores por extenso (conforme exemplo abaixo) e ainda o 
total de valores da lista por extenso. 
Teste do programa: 
 
Valor: 10 <enter> 
Quantidade: 3 <enter> 
Valor: 20 <enter> 
Quantidade: 4 <enter> 
Valor: 30 <enter> 
Quantidade: 2 <enter> 
Valor: 0 <enter> 
Lista:	[10,	3,	20,	4,	30,	2]		
Lista	por	Extenso:	[10,	10,	10,	20,	20,	20,	20,	30,	30]		
Total	de	valores	por	extenso:	9		
	
21.	Curiosidades	e	testes	no	Python	
 
 
45 
	 A	seguir	são	vistos	algumas	curiosidades	e	testes	feitos	no	
Python:	
	
#	---------------------------------	Teste.py	
	
#	====================	inicialização	de	várias	variáveis	
	
a,	b	=	10,	20	
print(a,	b)	
	
#	====================	None	(nulo	ou	null	
	
x	=	None					#	None	é	nulo	ou	null	
x	=	5	
print(x)	
	
#	=====================	imprimir	várias	variáveis	
	
x	=	10	
y	=	20	
print("x	=	%d	-	y	=	%d\n"	%(x,	y))	 #	print	formatado	
	
#	=====================	definição	de	uma	função	em	Python	
	
def	maior(x,	y):	
				if	x	>	y:	
								return(x)	
				else:	
								return(y)	
	
print(maior(3,4))	
	
#	==============================	if	simples	
	
x	=	int(input("Digite	um	Número:	"))	
if	x	<	0:	
				print('Valor	Negativo')	
print("Número	Digitado:	",	x)	
	
#	==============================	imprimir	uma	string	
	
for	letter	in	"python":	
				print(letter)	
	
#	==============================	if	...	elif	...	else	...	
	
numero	=	int(input("Digite	um	Número:	"))	
if	numero	>	0:	
				print("Positivo")	
elif	numero	<	0:	
				print("Negativo")	
else:	
				print("Zero")	
 
46 
	
#	==================================	data	e	hora	
	
from	datetime	import	datetime	
	
data	=	datetime.now()	
print(data)	
print("Data:	%02d/%02d/%d"	%(data.day,	data.month,	data.year))	
print("Tempo:	%02d:%02d:%02d"	%(data.hour,	data.minute,	data.second))	
	
Teste	do	Programa:	
	
10	20	
5	
x	=	10	-	y	=	20	
	
4	
Digite	um	Número:	-5	
Valor	Negativo	
Número	Digitado:	-5	
p	
y	
t	
h	
o	
n	
Digite	um	Número:	0	
Zero	
2017-03-08	14:47:17.866354	
Data:	08/03/2017	
Tempo:	15:01:59	
>>>	
	
#	-----------------------------------	str.py	
	
s	=	""	
for	i	in	range(10):	
				s	=	s	+	str(i)	+	",	"	 #	forma	uma	string	com	números	
print(s)	
	
Teste	do	Programa:	
	
==========	RESTART:	/Users/pluzzardi/Documents/str.py	===========	
0,	1,	2,	3,	4,	5,	6,	7,	8,	9,		
>>>	
	
22.	Funções	escritas	pelo	programador	em	Python	
	
	 Em	 Python	 é	 possível	 o	 programador	 escrever	 suas	 próprias	
funções,	ou	seja,	dividir	os	programas	em	módulos	menores	(programação	
modular	 ou	 estruturada	 ou	 dividir	 para	 conquistar).	 Uma	 função	 deve	
 
47 
ser	 uma	 caixa	 preta,	 que	 depois	 de	 funcionar	 não	 precisa	 mais	
manutenção.	 Uma	 função	 pode	 ou	 não	 receber	 argumentos	 (parâmetros)	 e	
retornar	ou	não	um	valor.	
	
	 Para	 escrever	 uma	 função	 usa-se	 a	 palavra	 reservada	 def.	 A	
princípio	a	função	deve	estar	localizada	antes	da	chamada	da	função.	A	
sintaxe	é:	
	
def	nome_função(lista	de	argumentos):	
	 comando1	
	 comando2	
	 return(valor)	
	
chamada_função(argumentos)	
	
Exemplo:	
	
#	--------------------------------	Funcoes.py	
	
import	math	
	
def	Hipotenusa(a,	b):	
				h	=	math.sqrt(a**2	+	b**2)	
				return(h)	
	
def	Maior(a,	b):	
				if	a	>=	b:	
								return(a)	
				else:	
								return(b)	
	
def	Menor(a,	b):	
				if	a	<=	b:	
								return(a)	
				else:	
								return(b)	
	
a	=	float(input("Digite	um	valor	(a):	"))	
b	=	float(input("Digite	outro	valor	(b):	"))	
print("Hipotenusa:	",	Hipotenusa(a,b))	
print("Maior:	",	Maior(a,	b))	
print("Menor:	",	Menor(a,	b))	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Documents/Funcoes.py	====	
Digite	um	valor	(a):	3	<enter>	
Digite	outro	valor	(b):	4	<enter>	
Hipotenusa:		5.0	
Maior:		4.0	
 
48 
Menor:		3.0	
>>>	
	
	 Exemplo	usando	uma	função	Raiz,	usando	um	conceito	da	matemática:	
	
def	Raiz(x):	
	 r	=	x	**	0.5	
	 return(r)	
	
def	Hipotenusa(a,	b):	
h	=	Raiz(a*a	+	b*b)	
	 return(h)	
	
a	=	float(input("Digite	um	valor	(a):	"))	
b	=	float(input("Digite	outro	valor	(b):	"))	
print("Hipotenusa:	",	Hipotenusa(a,b))	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Documents/Raiz.py	====	
Digite	um	valor	(a):	3	<enter>	
Digite	outro	valor	(b):	4	<enter>	
Hipotenusa:		5.0	
	
Funções	recursivas	em	Python:	
	
	 Uma	função	é	dita	recursiva	quando	faz	chamada	a	si	própria,	cada	chamada	é	
colocada	 na	 pilha	 de	 execução	 do	 sistema	 e	 serve	 para	 retornar	 as	 chamadas	
anteriores.	
	
#	----------------------------------------------	Fatorial.py	
#	Exemplo	de	função	recursiva,	função	que	chama	a	si	própria	
#	É	complexo	o	ponto	de	parada	
#	----------------------------------------------------------	
	
def	Fatorial(n):	
				if	n	<=	1:	
								return(1)	
				fat	=	n	*	Fatorial(n-1)	
				return(fat)	
	
x	=	int(input("Digite	um	valor:	"))	
fat	=	Fatorial(x)	
print("Fatorial:	",	fat)	
	
Teste	do	Programa:	
	
===	RESTART:	/Users/pluzzardi/Documents/Fatorial.py	=====	
Digite	um	valor:	20	<enter>	
Fatorial:		2432902008176640000	
>>>	
	 O	programa	a	seguir,	calcula	o	valor	da	série	de	Fibonacci:	
 
49 
	
# ...................... Fibonacci.py 
 
def Fibonacci(n): 
 if n == 0: 
 return(0) 
 if n == 1 or n == 2: 
 return(1) 
 else: 
 return(Fibonacci(n-1) + Fibonacci(n-2)) 
 
n = int(input("Fibonacci de: ")) 
print("A sequência de Fibonacci é: ", sep='', end='') 
for i in range(n): 
 print(Fibonacci(i), ", ", end='', sep='') 
	
Teste	do	Programa:	
	
Fibonacci	de:	15	<enter>	
A	sequência	de	Fibonacci	é:	0,	1,	1,	2,	3,	5,	8,	13,	21,	34,	55,	89,	144,	233,	377,	
	
	 O	 programa	 a	 seguir,	 imprime	 na	 tela	 números	 em	 sequência	 em	
ordem	reversa	recursivamente:	
	
# ..................... Imprime.py 
 
n = int(input("Número: ")) 
Imprime(n) 
 
def Imprime(n): 
 if n == 0: 
 return 
 else: 
 print(n) 
 Imprime(n-1) 
	
Teste	do	Programa:	
	
Número:	5	<enter>	
5	
4	
3	
2	
1	
	
	 A	seguir	é	visto	um	exemplo	que	mostra	duas	funções	que	permitem	
entrada	de	dados	de	números	reais	(REAL)	ou	números	inteiros	(INTEIRO)	
via	 teclado	 sem	 erro,	 ou	 seja,	 o	 usuário	 pode	 cometer	 erros	 de	
digitação	que	o	programa	não	é	abortado.	
	
#	----------------------------------------------------------	Float.py	
#	O	programa	testa	a	conversão	de	string	para	float	ou	inteiro		
#					sem	erro	na	entreda	de	dados	com	input	
 
50 
#	-------------------------------------------------------------------	
	
def	REAL(s):	
				n	=	len(s)	
				temLetras	=	False	
				for	i	in	range(n):	
								if	s[i]	==	',':	
												s	=	s.replace(',','.')	 #	trocar	vírgula	por	ponto	
								if	s[i]	==	'-'	and	i	!=	0:	 #	verifica	o	sinal	negativo		
												temLetras	=True;	
												break	
								if	s[i]	not	in	['.',	',',	'-',	'0',	'1',	'2',	'3',	'4',	'5',	'6',	'7',	'8','9']:	
											temLetras	=	True	
											break	
				if	not	temLetras:	
								numero	=	float(s)	
								return(numero)	
				else:	
								print("ERRO:	Conversão	Inválida")	
								return(-1)	
	
def	INTEIRO(s):	
				n	=	len(s)	
				temLetras	=	False	
				for	i	in	range(n):	
								if	s[i]	==	'-'	and	i	!=	0:	
												temLetras	=	True;	
												break	
								if	s[i]	not	in	['-',	'0',	'1',	'2',	'3',	'4',	'5',	'6',	'7',	'8','9']:	
											temLetras	=	True	
											break	
				if	not	temLetras:	
								numero	=	int(s)	
								return(numero)	
				else:	
								print("ERRO:	Conversão	Inválida")	
								return(-1)	
					
s	=	input("Digite	um	Real:	")	
numero	=	REAL(s)	
if	numero	!=	-1:	
				print("Real	digitado	foi:	",	numero)	
while	numero	==	-1:	
				s	=	input("Digite	um	Real:	")	
				numero	=	REAL(s)	
				print("Número	digitado:	",	numero)	
					
s	=	input("Digite	um	Inteiro:	")	
numero	=	INTEIRO(s)	
if	numero	!=	-1:	
				print("Inteiro	digitado	foi:	",	numero)	
while	numero	==	-1:	
				s	=	input("Digite	um	Inteiro:	")	
				numero	=	INTEIRO(s)					
 
51 
				print("Número	digitado:	",	numero)	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Desktop/Python/Python/float.py	=====	
Digite	um	Real:	1234Paulo	
ERRO:	Conversão	Inválida	
Digite	um	Real:	123,45	
Número	digitado:		123.45	
Digite	um	Inteiro:	paulo123	
ERRO:	Conversão	Inválida	
Digite	um	Inteiro:	123	
Número	digitado:		123	
>>>	
	
Python permite que o programador defina suas próprias 
funções, ou seja, permite que o programador defina pequenos 
módulos. Este processo permite “dividir para conquistar”, 
ou seja, dividir o programa em problemas menores. 
 
Sintaxe: def nome_módulo(lista de parâmetros): 
 Return 
 
 Existem dois tipos de passagem de parâmetros: por 
valor (não altera o valor dos parâmetros) ou por referência 
(altera o valor dos parâmetros). 
 
Exemplo de passagem por valor: 
 
# ..................... Calc.py 
 
def add(x, y): 
 return(x+y) 
 
def sub(x, y): 
 return(x-y) 
 
def mult(x, y): 
 return(x*y) 
 
def div(x, y): 
 if y == 0: 
 return("Erro: Divisão por Zero") 
 return(x/y) 
 
def calculadora(x, y, operador): 
 if operador == '+': 
 valor = add(x,y) 
 else: 
 if operador == '-': 
 valor = sub(x,y) 
 else: 
 if operador == '*': 
 valor = mult(x,y) 
 else: 
 if operador == '/': 
 
52 
 valor = div(x,y) 
 else: 
 return("ERRO: Operador Inválido") 
 return(valor) 
 
x = float(input("Digite um Valor: ")) 
y = float(input("Digite outro Valor: ")) 
operador = input("Operação [+ - * / **]: ") 
valor = calculadora(x, y, operador) 
print(valor) 
 
Teste	do	Programa:	
 
Digite	um	Valor:	3	
Digite	outro	Valor:	4	
Operação	[+	-	*	/	**]:	/	
0.75	
 
Teste	do	Programa:	
 
Digite	um	Valor:	3	
Digite	outro	Valor:	0	
Operação	[+	-	*	/	**]:	/	
Erro:	Divisão	por	Zero	
 
Teste	do	Programa:	
 
Digite	um	Valor:	3	
Digite	outro	Valor:	4	
Operação	[+	-	*	/	**]:	&	
ERRO:	Operador	Inválido	
 
Exemplo de passagem por referência: 
 
 Passagem de parâmetros por referência, ou seja, quando 
os parâmetros são modificados. 
 
 Note que interessante o comando return, pois ele 
contém duas variáveis. 
 
# ..................... Troca.py 
 
def troca(x, y): 
 temp = x 
 x = y 
 y = temp 
 return(x, y) 
 
x = 3 
y = 4 
print("x = ", x) 
print("y = ", y) 
x, y = troca(x, y) 
print("x = ", x) 
print("y = ", y) 
 
53 
	
	
Teste	do	Programa:	
	
x	=		3	
y	=		4	
a	=		4	
b	=		3	
	
22.1	Exercícios	sobre	funções	em	Python	
 
a) A seguir, implemente a função Hipotenusa que recebe 
cateto adjacente (a) e o cateto oposto (b) e retorna o 
valor da hipotenusa dado pela seguinte fórmula: 
 
 Trecho do programa principal: 
 
a = float(input("a = ")) 
b = float(input("b = ")) 
h = Hipotenusa(a, b) 
print("Hipotenusa é: %.2f" %h) 
	
Teste	do	Programa:	
 
a	=	3	<enter>	
b	=	4	<enter>	
Hipotenusa	é:	5.00	
 
b) No exercício a seguir, implemente a função Bhaskara, 
que recebe três (3) parâmetros: a, b e c e retorna as 
duas (2) variáveis: x1 e x2 se existirem, para que o 
programa funcione conforme exemplos a seguir: 
 
x1, x2 = -b +- raiz(b2 – 4.a.c) dividido por 2 . a 
 
delta = b2 – 4.a.c 
 
Se delta >= 0: 
 Raízes_reais 
 Existe x1 e x2 
Senão: 
 Raizes_complexas 
 
54 
 
Trecho do programa principal: 
 
a = float(input("a = ")) 
b = float(input("b = ")) 
c = float(input("c = ")) 
x1, x2 = Bhaskara(a, b, c) 
if x1 != -1 and x2 != -1: 
 print("Raizes Reais") 
 print("x1 = ", x1) 
 print("x2 = ", x2) 
else: 
 print("Raizes Complexas") 
	
Teste	do	Programa:	
	
a	=	1	<enter>	
b	=	2	<enter>	
c	=	-3	<enter>	
Raizes	Reais	
x1	=		1.0	
x2	=		-3.0	
	
Teste	do	Programa:	
	
a	=	1	<enter>	
b	=	2	<enter>	
c	=	3	<enter>	
Erro:	Raizes	Complexas	
	
c)Implemente a função Palavras que recebe uma string e 
retorna o número de palavras desta string, conforme 
exemplo a seguir: 
	
Trecho do programa principal: 
	
s = input("Nome: ") 
n = Palavras(s) 
print("Seu nome tem %d palavra(s)" %n) 
	
Teste	do	Programa:	
	
Nome:	Paulo	Roberto	Gomes	Luzzardi	<enter>	
Seu	nome	tem	4	palavra(s)	
	
d)Implemente a função Verifica_Data que recebe uma 
string no formato “dd/mm/aaaa” e retorna o dia, mês e 
ano (como inteiros) contidos na string de entrada, 
conforme exemplo a seguir: 
	
Trecho do programa principal: 
	
data = input("Data [dd/mm/aaaa]: ") 
dia, mes, ano = Verifica_Data(data) 
if dia != -1: 
 
55 
 print("Dia: %d" %dia) 
if mes != -1: 
 print("Mês: %d" %mes) 
if ano != -1: 
 print("Ano: %d" %ano) 
	
Teste	do	Programa:	
	
Data	[dd/mm/aaaa]:	25/03/2018	<enter>	
Dia:	25	
Mês:	3	
Ano:	2018	
	
Teste	do	Programa:	
	
Data	[dd/mm/aaaa]:	25/03/18	<enter>	
ERRO:	Formato	Inválido	
	
e)Implemente a função Verifica_Quadrante que recebe dois 
valores inteiros: x e y e retorna o quadrante (1, 2, 3 
ou 4) destas coordenadas, conforme exemplo a seguir: 
	
Trecho do programa principal: 
	
x = int(input("x = ")) 
y = int(input('y = ')) 
n = Verifica_Quadrante(x, y) 
print("Quadrante: %d" %n) 
	
Teste	do	Programa:	
	
x	=	2	
y	=	-2	
Quadrante:	4	
	
f)Implemente a função Final_Placa que recebe uma string 
no formato “xxx9999” (placa) e devolve o final da placa 
com dois dígitos, conforme exemplo a seguir: 
	
Trecho do programa principal: 
	
placa = input("Placa [xxx9999]: ") 
final = FinalPlaca(placa) 
print("Final da Placa é: %d" %final) 
	
Teste	do	Programa:	
	
Placa	[xxx9999]:	etq1234	<enter>	
Final	da	Placa	é:		34	
	
23.	Criação	e	utilização	de	módulos	em	Python	
	
 
56 
	 Python permite modularizar os programas, ou seja, 
permite que o programador defina seus próprios módulos, 
desta forma ele utiliza em outros programas. Um módulo nada 
mais é do que um conjunto de funções. 
 
Exemplo da definição do módulo Luzzardi.py. 
 
# ................................ Módulo: Luzzardi.py 
 
def troca(x, y): 
 temp = x 
 x = y 
 y = temp 
 return(x, y) 
	
Exemplo de um programa que utiliza o módulo Luzzardi.py e 
que tem a função troca. 
	
import Luzzardi 
 
x = 3 
y = 4 
print("x = ", x) 
print("y = ", y) 
x, y = Luzzardi.troca(x, y) 
print("x = ", x) 
print("y = ", y) 
	
Teste	do	Programa:	
	
x	=		3	
y	=		4	
x	=		4	
y	=		3	
 
Exemplo da definição do módulo Luzzardi.py com mais duas 
funções: maior e menor. 
	
# .................... Módulo: Luzzardi.py 
 
def troca(x, y): 
 temp = x 
 x = y 
 y = temp 
 return(x, y) 
 
def maior(x,y): 
 if x >= y: 
 return(x) 
 else: 
 return(y) 
 
def menor(x, y): 
 if x <= y: 
 return(x) 
 
57 
 else: 
 return(y) 
	
# .................... Modulos.py 
 
import Luzzardi 
 
x = 3 
y = 4 
print("x = ", x) 
print("y = ", y) 
x, y = Luzzardi.troca(x, y) 
print("x = ", x) 
print("y = ", y) 
print("Maior: ", Luzzardi.maior(x, y)) 
print("Menor: ", Luzzardi.menor(x,y)) 
	
Teste	do	Programa:	
	
x	=		3	
y	=		4	
x	=		4	
y	=		3	
Maior:		4	
Menor:		3	
	
Exemplo da definição do módulo Luzzardi.py com mais uma 
função: mensagem. 
	
# .................... Módulo: Luzzardi.py 
 
def troca(x, y): 
 temp = x 
 x = y 
 y = temp 
 return(x, y) 
 
def maior(x, y): 
 if x >= y: 
 return(x) 
 else: 
 return(y) 
 
def menor(x, y): 
 if x <= y: 
 return(x) 
 else: 
 return(y) 
 
def mensagem(mensagem, valor): 
 print(mensagem, valor) 
	
Observação:	Note	que	não	é	necessário	“return”	no	final	da	função,	o	término	da	
função	é	pela	identação.	
		
# ....................... Modulos.py 
 
 
58 
import Luzzardi 
 
x = 3 
y = 4 
Luzzardi.mensagem("x = ", x) 
Luzzardi.mensagem("y = ", y) 
x, y = Luzzardi.troca(x, y) 
Luzzardi.mensagem("x = ", x) 
Luzzardi.mensagem("y = ", y) 
Luzzardi.mensagem("Maior: ", Luzzardi.maior(x, y)) 
Luzzardi.mensagem("Menor: ", Luzzardi.menor(x, y)) 
	
Teste	do	Programa:	
	
x	=		3	
y	=		4	
x	=		4	
y	=		3	
Maior:		4	
Menor:		3	
	
Em	 Python	 é	 possível	 o	 programador	 escrever	 suas	 próprias	
funções	dentro	de	um	módulo	e	inseri-lo	em	seus	programas.	O	módulo	é	
um	 arquivo	 Python	 (modulo.py)	 somente	 com	 definições	 de	 funções.	 A	
princípio,	este	módulo	deve	estar	junto	ao	programa	fonte,	ou	seja,	na	
mesma	localização.	
	
#---------------------------------------------------------	Luzzardi.py	
#	O	programa	testa	a	conversão	de	string	para	float	ou	inteiro		
#					sem	erro	na	entrada	de	dados	com	input	
#	-------------------------------------------------------------------	
	
def	REAL(s):	
				n	=	len(s)	
				temLetras	=	False	
				for	i	in	range(n):	
								if	s[i]	==	',':	
												s	=	s.replace(',',	'.')		 #	converte	vírgula	em	ponto	
								if	s[i]	==	'-'	and	i	!=	0:	 #	verifica	sinal	negativo	
												temLetras	=	True;	
												break	
								if	s[i]	not	in	['.',	'-',	'0',	'1',	'2',	'3',	'4',	'5',	'6',	'7',	'8','9']:
	 	 #	verifica	caracteres	não	numéricos	
											temLetras	=	True	
											break	
				if	not	temLetras:	
								numero	=	float(s)	
								return(numero)	
				else:	
								print("ERRO:	Conversão	Inválida")	
								return(-1)	 #	retorna	um	valor	inválido	
	
def	INTEIRO(s):	
				n	=	len(s)	
 
59 
				temLetras	=	False	
				for	i	in	range(n):	
								if	s[i]	==	'-'	and	i	!=	0:	
												temLetras	=	True;	
												break	
								if	s[i]	not	in	['-',	'0',	'1',	'2',	'3',	'4',	'5',	'6',	'7',	'8','9']:	
											temLetras	=	True	
											break	
				if	not	temLetras:	
								numero	=	int(s)	
								return(numero)	
				else:	
								print("ERRO:	Conversão	Inválida")	
								return(-1)	
	
#	----------------------------------------	Modulo.py	
	
import	Luzzardi	 	 #	inserção	do	módulo	do	programador	
	
s	=	input("Digite	um	Real:	")	
numero	=	luzzardi.REAL(s)	
if	numero	!=	-1:	
				print("Real	digitado	foi:	",	numero)	
while	numero	==	-1:	
				s	=	input("Digite	um	Real:	")	
				numero	=	luzzardi.REAL(s)	
				print("Número	digitado:	",	numero)	
					
s	=	input("Digite	um	Inteiro:	")	
numero	=	luzzardi.INTEIRO(s)	
if	numero	!=	-1:	
				print("Inteiro	digitado	foi:	",	numero)	
while	numero	==	-1:	
				s	=	input("Digite	um	Inteiro:	")	
				numero	=	luzzardi.INTEIRO(s)					
				print("Número	digitado:	",	numero)	
	
=======	RESTART:	/Users/pluzzardi/Desktop/Python/Python/Modulo.py	===	
Digite	um	Real:	1234Paulo	
ERRO:	Conversão	Inválida	
Digite	um	Real:	123,45	
Número	digitado:		123.45	
Digite	um	Inteiro:	123Paulo	
ERRO:	Conversão	Inválida	
Digite	um	Inteiro:	123	
Número	digitado:		123	
>>>	
	
24.	Tratamento	de	erros	(exceções)	
 
Na execução de um programa em Python, podem ocorrer 
erros não previstos que podem interromper a execução normal 
 
60 
do programa. Tais erros podem ser: 
 
• Conversão numérica inválida; 
• Limite de um vetor (acessar um índice inválido) 
• Problemas em arquivos: abertura, criação ou caminho 
(path); 
• Overflow; 
 
• Erro de entrada e saída (input/output); 
 
• Divisão por zero. 
 
Python pode assumir o controle da execução em caso que 
ocorra uma situação de erro não prevista. 
 
Isso é feito através do mecanismo de tratamento de 
exceções que ao detectar uma situação de erro, o programa 
em Python gera uma exceção. 
 
Se o programa que estiver sendo executado possuir um 
tratamento de exceções (try: ... except ...:), ele assume o 
controle da execução. Mas se a exceção não tiver um 
tratamento associado, o programa é interrompido e é exibida 
uma mensagem de erro e o programa é abortado. 
 
Uma exceção é um evento que indica uma condição 
anormal que interrompe a execução normal de um programa. 
 
O tratamento de erros no Python cria objetos da classe 
error, o tratamento destes erros é feita pela manipulação 
destes objetos. Analise o exemplo abaixo, aonde são 
testados a conversão de string para inteiro (comando input) 
e raiz quadrada de número negativo (math.sqrt()). 
 
Tipo de Exceção: ValueError 
 
#	--------------------------	ValueError.py	
	
import	math	
	
try:	
				num	=	int(input("Digite	um	Número:	"))	
				try:	
								raiz	=	math.sqrt(num)	
								print("Raiz	Quadrada:	",	raiz)	
				except	ValueError	as	error:	
								print("Erro:	",	error)	
except	ValueError	as	error:	
				print("Erro:	",	error)	
	
Teste	do	Programa:	
	
========== RESTART: /Users/pluzzardi/Documents/ValueError.py ======= 
 
61 
Digite um Número: paulo 
Erro: invalid literal for int() with base 10: 'paulo' 
>>> 
========= RESTART: /Users/pluzzardi/Documents/ValueError.py ======== 
Digite um Número: -16 
Erro: math domain error 
>>> 
======= RESTART: /Users/pluzzardi/Documents/ValueError.py ========= 
Digite um Número: 16 
Raiz Quadrada: 4.0 
>>> 
 
O tratamento de erros em Python baseia-se no comando 
try. A sintaxe é a seguinte: 
 
try: 
 comando 
 comando 
except erro: 
 comando 
 comando 
 
A execução de um bloco de código, protegido por um 
tratamento de erros, é feito colocando o bloco no try, e 
para cada erro que se deseja tratar, deve-se colocar uma 
cláusula except tipo_de_erro as variável_erro: 
 
Exceções são instâncias de classes geradas quando 
houver erro. Estas exceções podem ser captadas e tratadas 
para que não ocorra erros em tempo de execução. 
 
Tipo de Exceção: ZeroDivisionError 
 
# ------------------------------- Zero.py 
 
try: 
 x = float(input("Digite um Valor: ")) 
 y = float(input("Digite outro Valor: ")) 
 try: 
 divisão = x / y 
 print("Divisão é: ", divisão) 
 except ZeroDivisionError as error: 
 print("Erro: ", error) 
except ValueError as error: 
 print('Erro: ', error) 
Teste	do	Programa:	
 
======= RESTART: /Users/pluzzardi/Desktop/Python/Python/Zero.py ====== 
Digite um Valor: paulo 
Erro: could not convert string to float: 'paulo' 
>>> 
======= RESTART: /Users/pluzzardi/Desktop/Python/Python/Zero.py ===== 
Digite um Valor: 4 
Digite outro Valor: 0 
Erro: float division by zero 
>>> 
 
 
62 
Tipo de Exceção: NameError e TypeError 
 
# ------------------------------------ NameError.py 
 
try: 
 num = int(input("Valor: ")) 
 print("Soma: ", soma + num) # soma não está definido 
except NameError as error: # erro por nome 
 print("ERRO: ", error) 
 
try: 
 a = 5

Outros materiais