Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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.62	
02-05-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,	2	de	maio	de	2018	(09:48	am)	
 
 2 
Sumário	
	
1.	Linguagem	de	Programação	Python .................................................................... 4 
2.	Como	executar	comandos	em	Python .................................................................. 4 
3.	Entrar	na	IDLE	do	Python ................................................................................. 4 
4.	Primeiros	comandos	ou	instruções .................................................................. 4 
5.	Identificadores	e	variáveis............................................................................ 5 
6.	Operadores	aritméticos ..................................................................................... 6 
6.1	Hierarquia	dos	operadores	(precedência)................................................... 7 
7.	Comando	print	(imprimir	dados	na	tela) ...................................................... 7 
8.	Comando	input	(ler	dados	do	teclado) .......................................................... 9 
9.	Deletar	uma	variável	(del) ............................................................................. 9 
10.	Módulos	(import) ............................................................................................. 10 
11.	Funções	de	matemáticas	(math) .................................................................... 11 
12.	Strings	(cadeia	de	caracteres) .................................................................. 13 
12.1	Funções	para	Strings ................................................................................... 13 
13.	Comandos:	Sequência,	Seleção	e	Repetição ............................................... 15 
13.1	Comandos	de	Sequência ................................................................................. 15 
13.2	Lista	de	Exercícios	(Comandos	de	sequência) ....................................... 17 
14.	Operadores	relacionais ................................................................................. 20 
15.	Operadores	lógicos ......................................................................................... 20 
16.	Comando	de	Seleção	(if) ............................................................................... 20 
16.1	Lista	de	Exercícios	(Comando	de	Seleção	if) ....................................... 23 
17.	Contador	e	acumulador ................................................................................... 24 
18.	Comandos	de	Repetição	(while	e	for) ........................................................ 25 
18.1	range	(faixa) ................................................................................................. 27 
18.2	Lista	de	Exercícios	(Comando	de	Repetição	while	e	for) .................. 28 
19.	Listas	em	Python	(vetores).......................................................................... 29 
19.1	Lista	de	Exercícios	de	Vetores	(listas) ............................................... 35 
20.	Questões	de	prova ........................................................................................... 38 
21.	Curiosidades	e	testes	no	Python ................................................................ 43 
22.	Funções	escritas	pelo	programador	em	Python ......................................... 45 
22.1	Exercícios	sobre	funções	em	Python ........................................................ 52 
23.	Criação	e	utilização	de	módulos	em	Python ............................................. 55 
24.	Tratamento	de	erros	(exceções) .................................................................. 58 
25.	Banco	de	Dados	em	Python	(SQLite) ............................................................ 62 
26.	Sistema	de	Arquivos	em	Python .................................................................... 67 
29.	Arquivos	Binários	em	Python ........................................................................ 72 
30.	Sockets	em	Python ........................................................................................... 78 
31.	Threads	em	Python ........................................................................................... 83 
32.	Módulo	tkinter	para	GUI	em	Python ............................................................ 83 
 
 
 
 
 3 
 
 
Lista de Exercícios do Prof. Dr. Ricardo Andrade Cava 
	
DropBox:	
	
https://www.dropbox.com/sh/kea9kr4j2qttnjg/AAAGkXES6sWvRKCJh8R7x9aia/ListaCava?dl=0	
	
 
 
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>	
 
 5 
	 	 	 	 	 	 	 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ário	em	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.	
	
Função	type:	Exibe	o	Tipo	do	Dado.	
 
 6 
	
#	--------------------------	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	 **	
	
 
 7 
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>	
3	
>>>	b	=	4	<enter>	
 
 8 
>>>	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	
	
from	datetime	import	datetime	
	
 
 9 
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	
>>>	
9.	Deletar	uma	variável	(del)	
	
 
 10 
	 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	
	 	 >>> 
	
Ajuda	(help)	dos	módulos:	
	
>>>	import	math	<enter>	
 
 11 
>>>	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	
>>>	print(math.log1p(2))	
1.0986122886681098	
>>>	
 
 12 
	
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	
>>>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)	
 
 13 
>>>	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"	
print("Número	de	letras:	",	len(s))	
partes	=	s.split('	')	
n	=	len(partes)	
print("Número	de	nomes:	",	n)	
 
 14 
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())	
	
#	--------------------------------------------	swapcase	
s	=	'Paulo	Roberto	Gomes	Luzzardi'	
print(s.swapcase())	#	inverte	as	letras	maiúsculas	e	minúsculas	
 
 15 
	
#	--------------------------------------------	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	
	
diametro	=	float(input("Digite	o	valor	do	Diâmetro:	"))	
raio	=	diametro	/	2	
area	=	math.pi	*	raio	**	2	
 
 16 
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:	
	
=======	RESTART:	/Users/pluzzardi/Documents/Aleatorio.py	=======	
n	=		2	
n	=		9	
n	=		7	
 
 17 
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>		
Diâmetro:	11.46
	
Raio:	5.73	
	
comprimento	da	circunferência	=	2	.	Pi	.	raio	
 
 18 
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	imprima	a	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	
mensal	e	percentual	de	reajuste.	Calcular	e	escrever	o	valor	do	
novo	salário.	
	
 
 19 
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	suasparedes	(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	
	
Teste	do	Programa:	
	
a	=	1	<enter>
	
 
 20 
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.		
	
16.	Comando	de	Seleção	(if)	
	
 
 21 
	 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.	
	
Teste	do	Programa:	
	
=======	RESTART:	/Users/pluzzardi/Documents/If.py	========	
Digite	um	Número:	-5	
Número	é	negativo	
 
 22 
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	
x2	=		-3.0	
>>>	
	
Programa	exemplo:	if	com	elif	
	
 
 23 
#	----------------------------------------	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
	
	
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	
 
 24 
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	 novo	 valor	 ao	
próprio	x.	Note	ainda	que	um	(1)	é	uma	constante,	que	pode	ser	1,	2,	3,	
...	
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	
 
 25 
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	
	
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:	
 
 26 
	
=============	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	
>>>	
	
#	-----------------------------------	ForDuplo.py	
	
for	i	in	range(3):	
				for	j	in	range(4):	
								print(i,	j)	
	
======	RESTART:	/Users/pluzzardi/Documents/ForDuplo.py	==========	
 
 27 
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	
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)	
 
 28 
	
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	
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.		
 
 29 
	
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	
 
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:	
	
 
 30 
=======	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()	
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]	
 
 31 
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)	
	
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))	
 
 32 
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	
11	
12	
13	
14	
[5,	6,	7,	8,	9,	10,	11,	12,	13,	14]	
Ana	
Beatriz	
Carla	
 
 33 
Debora	
Eva	
	
Funções	para	operar	listas:	
	
Anexar	o	elemento	nofinal	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	
	
n	=	len(lista)	
	
Retorna	o	número	de	vezes	de	um	elemento	dentro	de	uma	lista:	count	
	
vezes	=	lista.count(elemento)	
	
 
 34 
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]	
>>>	
	
	 O	programa	a	seguir	mostra	a	criação	aleatória	de	palpites	para	a	
MegaSena.	
	
#	----------------------------	MegaSena.py	
	
import	random	
 
 35 
	
#	----------------------------	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		
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)	
	
 
 36 
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	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>
 
 
 37 
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):		
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 
 
 38 
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): 
 
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 
 
 39 
 
2. Escreva um programa em Python que lê nomes via teclado. 
Para cada nome digitado pelo usuário, armazeneem 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 
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. 
 
 40 
 
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> 
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 
	
 
 41 
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: 
 
 
 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 
 
 
 42 
 
 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 
7 Homens 
3 Mulheres 
	
13. 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	
 
 43 
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	
 
	 A	seguir	são	vistos	algumas	curiosidades	e	testes	feitos	no	
Python:	
	
#	---------------------------------	Teste.py	
	
#	====================	inicialização	de	várias	variáveis	
 
 44 
	
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")	
	
#	==================================	data	e	hora	
	
from	datetime	import	datetime	
	
data	=	datetime.now()	
 
 45 
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	 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.	
	
 
 46 
	 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	
Menor:		3.0	
>>>	
	
	 Exemplo	usando	uma	função	Raiz,	usando	um	conceito	da	matemática:	
 
 47 
	
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:	
	
# ...................... Fibonacci.py 
 
def Fibonacci(n): 
 if n == 0: 
 
 48 
 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	
#	-------------------------------------------------------------------	
	
def	REAL(s):	
				n	=	len(s)	
				temLetras	=	False	
 
 49 
				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)					
				print("Número	digitado:	",	numero)	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Desktop/Python/Python/float.py	=====	
 
 50 
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.pydef 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 == '/': 
 valor = div(x,y) 
 else: 
 return("ERRO: Operador Inválido") 
 return(valor) 
 
 
 51 
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) 
	
	
Teste	do	Programa:	
	
x	=		3	
 
 52 
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 
 
Trecho do programa principal: 
 
a = float(input("a = ")) 
b = float(input("b = ")) 
 
 53 
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: 
 print("Dia: %d" %dia) 
if mes != -1: 
 print("Mês: %d" %mes) 
if ano != -1: 
 print("Ano: %d" %ano) 
 
 54 
	
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	
	
Teste	do	Programa:	
	
Data	[dd/mm/aaaa]:	32/03/18	<enter>	
ERRO:	Dia	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) 
if final != -1: 
 print("Final da Placa é: %d" %final) 
	
Teste	do	Programa:	
	
Placa	[xxx9999]:	etq1234	<enter>	
Final	da	Placa	é:		34	
	
Teste	do	Programa:	
	
Placa	[xxx9999]:	etq123	<enter>	
ERRO:	Formato	Inválido	
 
 55 
	
23.	Criação	e	utilização	de	módulos	em	Python	
	
	 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) 
 
 
 56 
def menor(x, y): 
 if x <= y: 
 return(x) 
 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.	
 
 57 
		
# ....................... Modulos.py 
 
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	
	
 
 58 
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)	
	
#	----------------------------------------	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)	
 
 
 59 
Na execução de um programa em Python, podem ocorrer 
erros não previstos que podem interromper a execução normal 
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:	
 
 60 
	
========== RESTART: /Users/pluzzardi/Documents/ValueError.py ======= 
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 
 
 61 
Erro: float division by zero 
>>> 
 
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 
 soma = 'a' + a # tipos diferentes 
 print("Soma: ", soma) 
except TypeError as error: # erro por tipo 
 print("ERRO: ", error) 
 
Teste	do	Programa:	
	
==========	RESTART:	/Users/pluzzardi/Documents/NameError.py	========	
Valor:	5	
ERRO:		name	'soma'	is	not	defined	
ERRO:		must	be	str,	not	int	
>>>	
 
Tipo de Exceção: IndexError 
 
# ------------------------- LimiteVetor.py 
 
x = [10, 20, 30, 40, 50] 
n = 5 
try: 
 i = 1 
 while i <= n: # erro i <= n, pois o vetor começa em ZERO 
 print(x[i]) 
 i = i + 1 
except IndexError as error: 
 print("Erro: ", error) 
 
 
Teste	do	Programa:	
 
========= RESTART: /Users/pluzzardi/Documents/LimiteVetor.py ======== 
20 
30 
40 
50 
Erro: list index out of range 
>>> 
 
Tipo de Exceção: IOError (Arquivos) 
 
# ---------------------------------------- FileCria.py 
 
nomeArquivo = input("Nome do Arquivo: ") 
try: 
 
 62 
 file = open(nomeArquivo, 'r') 
except IOError as error: 
 print("Erro: ", error) 
else: 
 print("Nome do Arquivo: ", nomeArquivo) 
 file.close() 
 
Teste	do	Programa:	
 
========== RESTART: /Users/pluzzardi/Documents/FileCria.py ======== 
Nome do Arquivo: Agenda.bd 
Nome do Arquivo: Agenda.bd 
>>> 
========== RESTART: /Users/pluzzardi/Documents/FileCria.py ========== 
Nome do Arquivo: test.bd 
Erro: [Errno 2] No such file or directory: 'test.bd' 
>>> 
25.	Banco	de	Dados	em	Python	(SQLite)	
 
A seguir são dados alguns exemplos de programas com 
Banco de Dados (BD) em Python (SQLiteCriaBD, SQLiteLeBD, 
SQLiteConsultaBD, SQLiteRemoveBD e SQLiteAppendBD). É criado 
um banco de dados de uma agenda contendo id (identificador), 
nome e fone utilizando o módulo SQLite3. 
 
SQLiteCriaBD: Cria um banco de dados. 
SQLiteLeBD: Faz a leitura dos registros do BD criado. 
SQLiteConsultaBD: Consulta um registro através do id. 
SQLiteRemoveBD: Remove um registro através do id. 
SQLiteAppendBD: Anexa novos registros ao final do BD. 
 
 O programa a seguir cria um BD (Agenda.bd) com uma 
tabela “agenda” com os seguintes campos: id, nome e fone. 
 
#	------------------------	SQLiteCriaBD.py	
	
import	sqlite3	
	
nomeBD	=	input("Nome	do	Banco	de	Dados:	")	
conector	=	sqlite3.connect(nomeBD)	
cursor	=	conector.cursor()	
cursor.execute('''	
								create	table	agenda	(	
												id	integer,	 	 #	identificador	
												nome	text,	
												fone	text)''')	
id	=	1	
nome	=	"Pessoa"	
while	nome	!=	"":	
				print("id:	",	id)	
				nome	=	input("Nome:	")	
				if	nome	!=	"":	
								fone	=	input("Fone:	")	
 
 63 
								cursor.execute('''	
																insert	into	agenda	(id,	nome,	fone)	
																				values(?,	?,	?)	
																				''',	(id,	nome,	fone))	
								conector.commit()	
								id	=	id	+	1	
cursor.close()	
conector.close()	
print("Banco	de	Dados	foi	CRIADO:	",	nomeBD)	
	
Teste	do	Programa:	
	
======	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteCriaBD.py	=====	
Nome	do	Banco	de	Dados:	Agenda.bd	
id:	1	
Nome:	Paulo	Roberto	
Fone:	99164-8037	
id:	2	
Nome:	Adriane	Maria	
Fone:	99145-6789	
id:	3	
Nome:	Paola	Maria	
Fone:	98478-7856	
id:	4	
Nome:		
Banco	de	Dados	foi	CRIADO:		Agenda.bd	
>>>	
	
 O programa a seguir faz uma leitura dos campos do banco 
de dados (Agenda.bd) gerado pelo programa anterior. 
	
#	--------------------------	SQLiteLeBD.py	
	
import	sqlite3					#	as	lite	
import	os	
	
nomeBD	=	input("Nome	do	Banco	de	Dados:	")	
try:	 	 	 	 	 	 	 #	tratamento	de	exceção	
				conector	=	sqlite3.connect(nomeBD)	
				cursor	=	conector.cursor()	
				numRegistros	=	0	
				cursor.execute("SELECT	*	FROM	agenda")	
				result	=	cursor.fetchall()	
				for	contato	in	result:	
									print("id:	%d\nNome:	%s	\nFone:	%s"	%	(contato))	
									numRegistros	+=	1	
				print(numRegistros,	"registro(s)")	
				cursor.close()	
				conector.close()	
except	sqlite3.Error	as	error:	 #	executa	quando	ocorre	um	erro	
				print("Erro:	BD	não	encontrado")	
				print("Erro:	",	error)	
				os.remove(nomeBD)			#	remove	arquivo	criado	
 
 64 
	
	
Teste	do	Programa:	
	
======	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteLeBD.py	=======	
Nome	do	Banco	de	Dados:	Luzzardi.bd	
id:	1	
Nome:	Paulo	Roberto		
Fone:	99164-8037	
id:	2	
Nome:	Adriane	Maria		
Fone:	99156-4567	
id:	3	
Nome:	Paola	Maria		
Fone:	98434-1234	
3	registro(s)	
>>>	
	
 O programa a seguir faz uma consulta dos campos do banco 
de dados (Agenda.bd) gerados pelo programa anterior através 
da leitura via teclado do identificador (id). 
	
#	------------------------	SQLiteConsultaBD.py	
	
import	sqlite3,	os	
	
nomeBD	=	input("Nome	do	Banco	de	Dados:	")	
try:	
				conector	=	sqlite3.connect(nomeBD)	
				id	=	'1'	
				cursor	=	conector.cursor()	
				while	id	!=	'0':	
								id	=	input('Digite	o	índice	[0	-	Sair]:	')	
								if	id	!=	'0':	
												cursor.execute("SELECT	*	FROM	agenda	WHERE	id=?",(id))	
												result	=	cursor.fetchall()	
												achei	=	False	
												for	contato	in	result:	
																print("id:	%d\nNome:	%s	\nFone:	%s"	%	(contato))	
																achei	=	True	
												if	not	achei:	
																print("Erro:	Contato	não	Encontrado")	
				cursor.close()	
				conector.close()	
except	sqlite3.Error	as	error:	
				print("ERRO:	BD	não	encontrado")	
				print("Erro:	",	error)	
				os.remove(nomeBD)		 #	remove	arquivo	criado	
	
Teste	do	Programa:	
	
===	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteConsultaBD.py	====	
Nome	do	Banco	de	Dados:	Agenda.bd	
 
 65 
Digite	o	índice	[0	-	Sair]:	1	
id:	1	
Nome:	Paulo	Roberto		
Fone:	99164-8037	
Digite	o	índice	[0	-	Sair]:	2	
id:	2	
Nome:	Adriane	Maria		
Fone:	99156-4567	
Digite	o	índice	[0	-	Sair]:	3	
id:	3	
Nome:	Paola	Maria		
Fone:	98434-1234	
Digite	o	índice	[0	-	Sair]:	0	
>>>	
	
 O programa a seguir permite remover os campos do banco 
de dados (Agenda.bd) gerados pelo programa anterior através 
da leitura via teclado do identificador (id). 
	
#	------------------------	SQLiteRemoveBD.py	
	
import	sqlite3,	os	
	
nomeBD	=	input("Nome	do	Banco	de	Dados:	")	
try:	
				conector	=	sqlite3.connect(nomeBD)	
				cursor	=	conector.cursor()	
				id	=	'1'	
				while	id	!=	'0':	
								id	=	input("Digite	o	índice	[0	-	Sair]:	")	
								if	id	!=	'0':	
												cursor.execute("DELETE	FROM	agenda	WHERE	id=?",(id))	
												conector.commit()	
												print("Okay,	Contato	REMOVIDO")	
				cursor.close()	
				conector.close()	
except	sqlite3.Error	as	error:	
				print("Erro:	BD	não	encontrado")	
				print("Erro:	",	error)	
				os.remove(nomeBD)	
	
Teste	do	Programa:	
	
=====	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteRemoveBD.py	====	
Nome	do	Banco	de	Dados:	Agenda.bd	
Digite	o	índice:	3	
Digite	o	índice:	0	
Okay,	Contato	REMOVIDO	
>>>		
=======	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteLeBD.py	=====	
Nome	do	Banco	de	Dados:	Agenda.bd	
id:	1	
Nome:	Paulo	Roberto		
 
 66 
Fone:	99164-8037	
id:	2	
Nome:	Adriane	Maria		
Fone:	99156-4567	
>>>	
	
#	------------------------	SQLiteAppendBD.py	
	
import	sqlite3,	os	
	
nomeBD	=	input("Nome	do	Banco	de	Dados:	")	
try:	
				conector	=	sqlite3.connect(nomeBD)	
				cursor	=	conector.cursor()	
	
				id	=	1	
				cursor.execute("SELECT	*	FROM	agenda")	
				result	=	cursor.fetchall()	
				for	contato	in	result:	
								id	+=	1	
	
				nome	=	"Pessoa"	
				while	nome	!=	"":	
								print("id:	",	id)	
								nome	=	input("Nome:	")	
								if	nome	!=	"":	
												fone	=	input("Fone:	")	
												cursor.execute('''	
																				INSERT	INTO	agenda	(id,	nome,	fone)	
																								values(?,	?,	?)	
																								''',	(id,	nome,	fone))	
												conector.commit()	
												id	=	id	+	1	
				cursor.close()	
				conector.close()	
except	sqlite3.Error	as	error:	
				print("Erro:	BD	não	encontrado")	
				print("Erro:	",	error)	
				os.remove(nomeBD)	
	
Teste	do	Programa:	
	
====	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteAppendBD.py	=====	
Nome	do	Banco	de	Dados:	Agenda.bd	
id:		4	
Nome:	Renato	Luis	
Fone:	99134-2345	
id:		5	
Nome:	Cacaio	
Fone:	99891-3456	
id:		6	
Nome:		
>>>	
 
 67 
	
Execução	do	programa	SQLiteLeBD.py	
	
=======	RESTART:	/Users/pluzzardi/Desktop/Python/SQLiteLeBD.py	=====	
Nome	do	Banco	de	Dados:	Agenda.bd	
id:	1	
Nome:	Paulo	Roberto		
Fone:	99164-8037	
id:	2	
Nome:	Adriane	Maria		
Fone:	99156-4567	
id:	3	
Nome:	Paola	Maria		
Fone:	98434-1234	
id:	4	
Nome:	Renato	Luis		
Fone:	99134-2345	
id:	5	
Nome:	Cacaio		
Fone:	99891-3456	
5	registro(s)	
>>>	
26.	Sistema	de	Arquivos	em	Python	
 
 Python permite operar com arquivos binários e texto 
através de algumas funções, tais como: open, write, read, 
close, etc. 
Um arquivo texto é formado de linhas de caracteres 
terminados com um ‘\n’. Conforme exemplo abaixo: Dados.txt. 
 
Sintaxe do comando open: file = open(nomeArquivo, modo) 
 
Modo: ‘r’ read (leitura) 
 ‘w’ write (escrita) 
 ‘a’ append (anexar no fim) 
 ‘r+’ read e write (leitura e escrita) 
 ‘b’ binary (binário) 
 
Comandos para operar arquivos: 
 
read(): Permite ler o conteúdo do arquivo. 
readline(): Permite ler uma única linha do arquivo. 
seek(colunas, posição): Posiciona o arquivo no ponto do 
arquivo: Posição 0 é o início do arquivo, 1 é a posição do 
arquivo atual e 2 é o final do arquivo. 
write(string): Grava o conteúdo da string para o arquivo, 
retornando o número de caracteres escritos. 
close(): Fecha o arquivo aberto. 
 
Arquivo texto: Dados.txt 
 
 
 68 
1;Paulo Roberto;99164-8037; 
2;Adriane Maria;99156-2345; 
3;Paola Freitas;98678-1234; 
	
# -------------------------------------- FileLeTexto.py 
 
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, "r") 
 for linha in file: 
 campos = linha.split(';') 
 print(campos) 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
======== RESTART: /Users/pluzzardi/Documents/FileLeTexto.py ====== 
Nome do Arquivo: Dados.txt 
['1', 'Paulo Roberto', '99164-8037', '\n'] 
['2', 'Adriane Maria', '99156-2345', '\n'] 
['3', 'Paola Freitas', '98678-1234', '\n'] 
>>> 
	
# ------------------------------- FileLeDadosTexto.py 
 
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, "r") 
 for linha in file:campos = linha.split(';') 
 print("id: ", campos[0]) 
 print("Nome: ", campos[1]) 
 print("Fone: ", campos[2]) 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
====== RESTART: /Users/pluzzardi/Documents/FileLeDadosTexto.py ===== 
Nome do Arquivo: Dados.txt 
id: 1 
Nome: Paulo Roberto 
Fone: 99164-8037 
id: 2 
Nome: Adriane Maria 
Fone: 99156-2345 
id: 3 
Nome: Paola Freitas 
Fone: 98678-1234 
>>> 
	
Teste	do	Programa:	(Arquivo	texto	não	existe)	
	
====== RESTART: /Users/pluzzardi/Documents/FileLeDadosTexto.py ==== 
Nome do Arquivo: Dados.bd 
ERRO: [Errno 2] No such file or directory: 'Dados.bd' 
>>> 
 
 69 
	
# -------------------------------------- FileAnexaTexto.py 
 
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, 'r') 
 id = 1 
 for linha in file: 
 id = id + 1 # contar o número de registros 
 file.close() 
 
 file = open(nomeFile,'a') # anexando no fim do arquivo 
 nome = "Pessoa" 
 while nome != "": 
 print("id: ", id) 
 nome = input("Nome: ") 
 if nome != "": 
 fone = input("Fone: ") 
 linha = str(id) + ";" + nome + ";" + fone + ";" + "\n" 
 file.write(linha) 
 id = id + 1 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
======== RESTART: /Users/pluzzardi/Documents/FileAnexaTexto.py ====== 
Nome do Arquivo: Dados.txt 
id: 3 
Nome: Renato Luis 
Fone: 98778-3456 
Gravou dados 
id: 4 
Nome: Francisco Carlos 
Fone: 98178-5678 
Gravou dados 
id: 5 
Nome: 
>>> 
	
Listagem	do	Arquivo	alterado:	Dados.txt	
	
['1', 'Paulo Roberto', '99164-8037', '\n'] 
['2', 'Adriane Maria', '99156-2345', '\n'] 
['3', 'Paola Freitas', '98678-1234', '\n'] 
[‘4’;’Renato Luis’;’98778-3456’;’\n’] 
[‘5’;’Francisco Carlos’;’98178-5678’;’\n’] 
	
# ------------------------------- FileCriaTexto.py 
 
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, 'w') # cria novo arquivo texto 
 id = 1 # cuidado, apaga se existir 
 nome = "Pessoa" 
 while nome != "": 
 print("id: ", id) 
 nome = input("Nome: ") 
 if nome != "": 
 
 70 
 fone = input("Fone: ") 
 linha = str(id) + ";" + nome + ";" + fone + ";" + "\n" 
 file.write(linha) 
 id = id + 1 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
======= RESTART: /Users/pluzzardi/Documents/FileCriaTexto.py ====== 
Nome do Arquivo: Luz.txt 
id: 1 
Nome: Paulo Roberto 
Fone: 99164-8037 
id: 2 
Nome: Renato Luis 
Fone: 98778-3456 
id: 3 
Nome: Francisco Carlos 
Fone: 98178-5678 
id: 4 
Nome: 
>>> 
	
Listagem	do	Arquivo:	Luz.txt	
	
1;Paulo Roberto;99164-8037; 
2;Renato Luis; 98778-3456; 
3;Francisco Carlos; 98178-5678; 
	
# ------------------------------- FileProcuraDadosTexto.py 
	
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, "r") 
 posicao = 1 
 while posicao != 0: 
 posicao = int(input("Posição [0 - Sair]: ")) 
 file.seek(0, 0) # reinicializa o cursor do arquivo no início 
 imprimiu = False 
 for linha in file: 
 campos = linha.split(';') 
 if campos[0] == str(posicao): 
 imprimiu = True 
 print("id: ", campos[0]) 
 print("Nome: ", campos[1]) 
 print("Fone: ", campos[2]) 
 if not imprimiu: 
 print("Erro: Registro não encontrado") 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
RESTART: 
/Users/pluzzardi/Desktop/Python/Python/File/FileProcuraDadosTexto.py 
Nome do Arquivo: Dados.txt 
Posição [0 - Sair]: 1 
 
 71 
id: 1 
Nome: Paulo Roberto 
Fone: 99164-8037 
Posição [0 - Sair]: 2 
id: 2 
Nome: Adriane Maria 
Fone: 99156-2345 
Posição [0 - Sair]: 3 
id: 3 
Nome: Paola Freitas 
Fone: 98678-1234 
Posição [0 - Sair]: 4 
id: 4 
Nome: Renato Luis 
Fone: 98778-3456 
Posição [0 - Sair]: 5 
id: 5 
Nome: Francisco Carlos 
Fone: 98178-5678 
Posição [0 - Sair]: 6 
Erro: Registro não encontrado 
Posição [0 - Sair]: 7 
Erro: Registro não encontrado 
Posição [0 - Sair]: 8 
Erro: Registro não encontrado 
Posição [0 - Sair]: 9 
Erro: Registro não encontrado 
Posição [0 - Sair]: 0 
Erro: Registro não encontrado 
>>> 
	
# ------------------------------------ FileBuscaDadosTexto.py 
 
nomeFile = input("Nome do Arquivo: ") 
try: 
 file = open(nomeFile, "r") 
 nome = "Pessoa" 
 while nome != "": 
 nome = input("Nome: ") 
 file.seek(0, 0) 
 imprimiu = False 
 for linha in file: 
 campos = linha.split(';') 
 if nome == campos[1]: 
 imprimiu = True 
 print("id: ", campos[0]) 
 print("Nome: ", campos[1]) 
 print("Fone: ", campos[2]) 
 if not imprimiu: 
 print("Erro: Nome não encontrado") 
 file.close() 
except IOError as error: 
 print("ERRO: ", error) 
	
Teste	do	Programa:	
	
RESTART: 
/Users/pluzzardi/Desktop/Python/Python/File/FileBuscaDadosTexto.py 
Nome do Arquivo: Dados.txt 
Nome: Paulo 
Erro: Nome não encontrado 
 
 72 
Nome: Paulo Roberto 
id: 1 
Nome: Paulo Roberto 
Fone: 99164-8037 
Nome: Renato Luis 
id: 4 
Nome: Renato Luis 
Fone: 98778-3456 
Nome: 
Erro: Nome não encontrado 
>>> 
29.	Arquivos	Binários	em	Python	
	
Como foi visto no capítulo 26, Python permite operar com 
arquivos binários e textos através de algumas funções, tais 
como: open, write, read, close, etc. 
 
Enquanto um arquivo texto é formado de linhas de 
caracteres terminados com um ‘\n’, um arquivo binário possui 
campos de vários tipos, tais como: inteiro, real, string, 
etc. 
	
pickle é um módulo do Python que permite a serialização de 
objetos, ou seja, transforma objetos em sequências de bytes. 
Outros módulos similares podem ser utilizados, tais como: 
Marshal, Struct (como na linguagem C), JSON e Shelve. 
 
Exemplo de um programa em Python que grava em um arquivo 
binário: teste.bin os seguintes campos: nome (string), 
telefone (string) e idade (inteiro). 
	
# ........................ GravaBin.py 
 
import pickle 
 
nomeArquivo = input("Nome do Arquivo Binário: ") 
try: 
 file = open(nomeArquivo, "rb") 
 file.close() 
 ch = input("Atenção: Arquivo já existe, sobre-escrever [s/n]") 
 if ch == "S" or ch == "s": 
 try: 
 file = open(nomeArquivo, "wb") 
 except IOError as error: 
 print("Erro: Impossível criar o arquivo: %s" %nomeArquivo) 
 n = int(input("Número de Elementos: ")) 
 pickle.dump(n, file) 
 for i in range(n): 
 nome = input("Nome: ") 
 pickle.dump(nome, file) 
 telefone = input("Telefone: ") 
 pickle.dump(telefone, file) 
 idade = int(input("Idade: ")) 
 pickle.dump(idade, file) 
 file.close() 
except IOError as error: 
 
 73 
 print("Atenção: Arquivo não existe") 
 try: 
 file = open(nomeArquivo, "wb") 
 except IOError as error: 
 print("Erro: Impossível criar o arquivo: %s" %nomeArquivo) 
 n = int(input("Número de Elementos: ")) 
 pickle.dump(n, file) 
 for i in range(n): 
 nome = input("Nome: ") 
 pickle.dump(nome, file) 
 telefone = input("Telefone: ") 
 pickle.dump(telefone, file) 
 idade = int(input("Idade: ")) 
 pickle.dump(idade, file) 
 file.close() 
	
Observação:	Note	que	o	número	de	elementos	também	é	salvo	no	arquivo	binário,	para	
depois	ser	lido	no	programa	que	carrega	o	arquivo	binário.		
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Binário:	teste.bin	<enter>	
Número	de	Elementos:		3	<enter>	
Nome:		Paulo	Roberto	<enter>	
Telefone:		99164-8037	<enter>	
Idade:		56	<enter>	
Nome:		Adriane	Maria	<enter>	
Telefone:		99156-3334	<enter>	
Idade:		48	<enter>	
Nome:		Paola	Freitas<enter>	
Telefone:		99167-4567	<enter>	
Idade:		19	<enter>	
	
# ........................ LeBin.py 
 
import pickle 
 
nomeArquivo = input("Nome do Arquivo Binário: ") 
try: 
 file = open(nomeArquivo, "rb") 
 n = pickle.load(file) 
 print("Número de Elementos: ", n) 
 for i in range(n): 
 nome = pickle.load(file) 
 print("Nome: ", nome) 
 telefone = pickle.load(file) 
 print("Telefone: ", telefone) 
 idade = pickle.load(file) 
 print("Idade: ", idade) 
 file.close() 
except IOError as error: 
 print('Atenção: Arquivo não Existe', nomeArquivo) 
 print(error) 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Binário:	teste.bin	<enter>	
 
 74 
Número	de	Elementos:		3	<enter>	
Nome:		Paulo	Roberto	<enter>	
Telefone:		99164-8037	<enter>	
Idade:		56	<enter>	
Nome:		Adriane	Maria	<enter>	
Telefone:		99156-3334	<enter>	
Idade:		48	<enter>	
Nome:		Paola	Freitas	<enter>	
Telefone:		99167-4567	<enter>	
Idade:		19	<enter>	
	
Exemplo de um programa em Python que grava em um arquivo 
binário: dados.bin uma lista (vetor) contendo os seguintes 
campos: nome (string), telefone (string) e idade (inteiro). 
	
# ........................... GravaBinario 
 
import pickle 
 
nomeArquivo = input("Nome do Arquivo Binário: ") 
lista = ["Paulo Roberto", "99164-8037", 56, 
 "Adriane Maria", "99156-3334", 48, 
 "Paola Freitas", "99181-3456", 19] 
n = len(lista) 
print("n = ", n) 
 
try: 
 file = open(nomeArquivo, "wb") 
except IOError as error: 
 print("Atenção: Impossível criar o arquivo") 
pickle.dump(lista, file) 
file.close() 
print("Okay, Arquivo %s criado" %nomeArquivo) 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Binário:	dados.bin	<enter>	
n	=		9	
Okay,	Arquivo	dados.bin	criado	
	
# ............................. LeBinario 
 
import pickle 
 
lista = [] 
nomeArquivo = input("Nome do Arquivo Binário: ") 
try: 
 file = open(nomeArquivo, "rb") 
except IOError as errror: 
 print("Atenção: Arquivo Inexistente") 
lista = pickle.load(file) 
print("Lista: ", lista) 
file.close() 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Binário:	dados.bin	
 
 75 
Lista:		['Paulo	Roberto',	'99164-8037',	56,	'Adriane	Maria',	'99156-3334',	48,	'Paola	
Freitas',	'99181-3456',	19]	
	
Arquivo	Texto:	Frutas.txt	
	
Abacate	
Ameixa	
Banana	
Bergamota	
Anana	
Morango	
Caqui	
Uva	
Laranja	
Lima	
Goiaba	
Damasco	
Tangerina	
	
# ........................... Letexto.py 
 
nomeArquivo = input("Nome do Arquivo Texto: ") 
linha = [] 
try: 
 file = open(nomeArquivo, "r") 
 for linha in file: 
 linha = file.read() 
 print(linha) 
 file.close() 
except IOError as error: 
 print("Atenção: Arquivo Inexistente") 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Texto:	Frutas.txt	<enter>	
Abacate	
Ameixa	
Banana	
Bergamota	
Anana	
Morango	
Caqui	
Uva	
Laranja	
Lima	
Goiaba	
Damasco	
Tangerina	
	
# .............................. ConverteTextoBinario.py 
 
import pickle 
 
nomeArquivoTexto = input("Nome do Arquivo Texto: ") 
nomeArquivoBinario = input("Nome do Arquivo Binário: ") 
 
 76 
try: 
 fileTexto = open(nomeArquivoTexto, "r") 
 try: 
 fileBinario = open(nomeArquivoBinario, "wb") # cuidado: 
apaga arquivo se já existir 
 except IOError as error: 
 print("Atenção Impossível CRIAR Arquivo Binário") 
 for linha in fileTexto: 
 linha = fileTexto.read() 
 pickle.dump(linha, fileBinario) 
 print(linha) 
 fileTexto.close() 
 fileBinario.close() 
except IOError as error: 
 print("Atenção: Arquivo texto inexistente") 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Texto:	Frutas.txt	<enter>	
Nome	do	Arquivo	Binário:	Frutas.bin	<enter>	
Abacate	
	
Ameixa	
	
Banana	
	
Bergamota	
	
Anana	
	
Morango	
	
Caqui	
	
Uva	
	
Laranja	
	
Lima	
	
Goiaba	
	
Damasco	
	
Tangerina	
	
# ........................ LeTextoConvertidoBinario.py 
 
import pickle 
 
nomeArquivo = input("Nome do Arquivo Binário: ") 
try: 
 file = open(nomeArquivo, "rb") 
 try: 
 while True: 
 linha = pickle.load(file) 
 
 77 
 print(linha) 
 file.close() 
 except EOFError as error: 
 print("Atenção: Final do Arquivo") 
except IOError as error: 
 print('Atenção: Arquivo não Existe', nomeArquivo) 
 print(error) 
	
Teste	do	Programa:	
	
Nome	do	Arquivo	Binário:	Frutas.bin	<enter>	
Abacate	
	
Banana	
	
Anana	
	
Caqui	
	
Laranja	
	
Goiaba	
	
Tangerina	
	
Atenção:	Final	do	Arquivo	
	
Atenção:	Função	que	verifica	se	um	arquivo	já	existe:	
	
def ArquivoExiste(nomeArquivo): 
 try: 
 file = open(nomeArquivo, "r") 
 except IOError: # se não precisar da variável error não precisa 
 return False # definir 
 file.close() 
 return True 
	
# .............................. GravaDados.py 
 
import pickle 
 
def ArquivoExiste(nomeArquivo): 
 try: 
 file = open(nomeArquivo, "r") 
 except IOError: 
 return False 
 file.close() 
 return True 
 
nomeArquivo = input("Nome Arquivo Binário: ") 
if not(ArquivoExiste(nomeArquivo)): 
 try: 
 
 78 
 file = open(nomeArquivo, "wb") 
 ch = "S" 
 while ch == "S" or ch == "s": 
 nome = input("Nome: ") 
 pickle.dump(nome, file) 
 idade = int(input("Idade: ")) 
 pickle.dump(idade, file) 
 ch = input("Continua [s/n]? ") 
 file.close() 
 except IOError as error: 
 print("Atenção: Impossível CRIAR o Arquivo") 
	
Teste	do	Programa:	
	
Nome	Arquivo	Binário:	Dados.bin	<enter>	
Nome:	Paulo	Roberto	
Idade:	56	
Continua	[s/n]?	s	
Nome:	Adriane	Maria	
Idade:	48	
Continua	[s/n]?	s	
Nome:	Paola	Freitas	
Idade:	19	
Continua	[s/n]?	s	
Nome:	Julia	Helena	
Idade:	58	
Continua	[s/n]?	s	
Nome:	Ana	Maria	
Idade:	59	
Continua	[s/n]?	n	
	
30.	Sockets	em	Python	
	
Socket é um mecanismo para comunicação de programas em 
dois sentidos que funcionam em uma rede computadores. 
 
O cliente solicita que uma conexão seja estabelecida 
com o servidor através de um Socket. 
 
Quando o servidor aceita o pedido de conexão, ele cria 
um novo socket por uma porta diferente. No cliente, outro 
socket é criado e então é utilizado para a comunicação com 
este servidor. 
 
Programas que utilizam sockets trabalham sempre em 
formato cliente-servidor, e para isto é necessário criar um 
programa servidor, que “escutará” as conexões em uma porta, 
e o programa cliente, que faz a conexão com algum socket 
disponível em alguma porta. 
 
Os principais comandos para uso de sockets em Python 
são os seguintes: 
 
 
 79 
accept( ): aceita uma nova conexão e retorna os valores: o 
novo objeto socket e o endereço que o socket está se 
comunicando. 
 
bind((hostname,port)): conecta o socket ao endereço da 
porta. 
 
close(): fecha o socket. 
 
connect((hostname,port)): conecta-se com outro socket, que 
pode ser externo ou local. Para conexões locais utiliza-se 
localhost ou 127.0.0.1 
 
getpeername(): retorna o endereço IP e a porta na qual o 
socket está conectado. 
 
getsocketname(): retorna o endereço IP da porta do próprio 
socket. 
 
listen(max_connections): inicia ouvindo a porta e fica 
esperando outras conexões. O sistema operacional recusa 
novas conexões quando ela atingir o valor máximo de conexões. 
 
send(string): Envia uma string de dados pelo socket. 
 
Para a criação de programas que utilizem sockets no 
lado do servidor é necessário principalmente o uso dos 
seguintes comandos: 
 
serverSocket=socket.socket(socket.AF_INET,socket.SOCK_STREA
M): para definir o protocolo a ser utilizado. 
 
serverSocket.bind((host,porta)): iniciando a escuta de 
conexões no lado do servidor. 
 
serverSocket.listen(1): realiza o controle de conexões 
simultâneas que o servidor suportará. 
 
serverSocket.send(dados): para enviar dados. 
 
serverSocket.recv(1024): para receber dados controlando o 
tamanho do buffer. 
 
Para a criação de programas que utilizem sockets nolado do cliente é necessário principalmente o uso dos 
seguintes comandos: 
 
clientSocket.socket(socket.AF_INET,socket.SOCK_STREAM): 
para definir o protocolo a ser utilizado. 
 
 
 80 
clientSocket.connect((servidor,porta)): para criar o objeto 
de conexão que irá conectar em um servidor. 
 
clientSocket.send(dados) : para enviar dados. 
 
clientSocket.recv(1024): para receber dados controlando o 
tamanho do buffer. 
 
 
 
Exemplo da criação de uma conexão do lado do Cliente: 
 
# ...................... Cliente.py 
 
import socket 
 
# define host e porta 
HOST = "127.0.0.1" 
PORTA = 5000 
 
# define o protocolo 
cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
 
# tenta conectar ao servidor 
cliente.connect((HOST, PORTA)) 
 
# envia mensagem 
cliente.send("Olá!! Boa Noite!".encode("utf-8")) 
 
print("Mensagem Enviada") 
 
# fecha a conexão 
cliente.close() 
 
Exemplo da “escuta” de uma conexão do lado do Servidor: 
 
# ..................... Servidor.py 
 
import socket 
 
# define host e porta 
HOST = "127.0.0.1" 
PORTA = 5000 
 
# define protocolo 
servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
 
print("Na escuta ...") 
 
# inicia a escuta do lado servidor 
servidor.bind((HOST, PORTA)) 
 
# define o número máximo de conexões na fila 
servidor.listen(1) 
 
# para aceitar novas conexões 
conexao, endereco = servidor.accept() 
 
 81 
 
# recebe os dados enviados pelo cliente 
dados = conexao.recv(1024) 
 
# exibe os dados recebidos 
print("Dados Recebidos: ", dados.decode("utf-8")) 
 
print("Conectado por: ", endereco) 
 
# fecha a conexão 
conexao.close() 
 
Observação: Tem que se executar os dois programas ao mesmo 
tempo, isto pode ser feito via abertura de dois terminais, 
pois um programa “conversa” com o outro. 
 
Teste do Programa: 
 
 
 
 82 
 
 
 
 83 
31.	Threads	em	Python	
	
Forma de um processo dividir-se em duas ou mais 
tarefas que podem ser executadas concorrentemente, ou 
seja, pode ser visto como um fluxo de controle 
sequencial isolado dentro do programa. 
Uma thread tem começo, fim e uma sequência de 
comandos. Uma thread em Python não é um programa, pois não 
executa sozinha, ela executa dentro de um programa. 
Threads permitem que um programa simples possa 
executar várias tarefas diferentes ao mesmo tempo, 
independentemente uma das outras. Programas multithreaded 
são programas que contém várias threads, executando 
tarefas distintas simultaneamente. 
32.	Módulo	tkinter	para	GUI	em	Python	
 
Existe um módulo não-nativo no Python que permite 
desenvolver interfaces gráficas (GUI - Graphics User 
Interface). 
 
Este módulo se chama “tkinter” (tk interface ou 
toolkit interface). Onde tk vem de toolkit, ou seja, um 
conjunto de ferramentas gráficas. 
 
Ele é baseado em tcl/tk. Tcl é Tool Command Language 
(Linguagem de Comandos de Ferramentas), ou seja, uma 
linguagem de programação para scripts. 
 
Link para vídeo aulas sobre o módulo “tkinter”: 
https://www.youtube.com/watch?v=vmoH9I9d570&list=PLesCEcYj003ShHnUT83gQEH6KtG8uysUE&index=2	
 
Elementos de interface (widgets) correspondem a 
objetos de diversas classes. São alguns exemplos de 
widgets: 
• Frame (área retangular) 
• Button (botão) 
• Label (rótulo) 
• Text (caixa de texto) 
• Canvas (caixa de desenho) 
 
 
 84 
Exemplo de como criar uma janela gráfica na aplicação 
utilizando o módulo tkinter: 
# ........................ Tk_1.py 
 
import tkinter as tk # renomear um módulo 
 
janela = tk.Tk() 
 
janela.mainloop() 
 
No programa acima é necessário importar o módulo 
“tkinter”. A chamada janela = tk.Tk() cria e exibe uma 
janela gráfica na aplicação. A instrução 
janela.mainloop() faz com que a janela fique ativa, até 
que o usuário resolva fechar a janela no “x” (entrar em 
modo de tratamento de eventos). 
Resultado do programa: 
	
	
	 	
	
	
	
	
	
	
	
	
	
	
No programa abaixo é possível 
colocar o nome na janela, neste caso: “Calculadora”, 
através da instrução janela.title(“Calculadora”).	
	
# .............................. Tk_2.py 
 
import tkinter as tk 
 
janela = tk.Tk() 
 
janela.title("Calculadora") 
 
janela.mainloop() 
	
Resultado do programa: 
	
 
 85 
	
	
 No programa abaixo é possível trocar a cor do 
background (fundo) através da instrução janela[“bg”] = 
“blue) ou janela[“background”] = “blue”. 
	
# .......................... Tk_3.py 
 
import tkinter as tk 
 
janela = tk.Tk() 
 
janela.title("Chat") 
 
janela["bg"] = "blue" # bg é background 
 
janela.mainloop() 
	
Resultado do programa: 
	
	
	
 
 86 
 No programa abaixo é possível especificar o tamanho 
e a posição da janela gráfica, isto é feito através da 
instrução janela.geometry(“LxA+E+T”), onde “L” é a 
largura, “A” é a altura, “E” é a distância da origem 
até a esquerda da janela e “T” é a distância da origem 
até o topo da janela. Alias a origem é na esquerda x 
topo da janela. 
	
	
# .............................. Tk_4.py 
 
import tkinter as tk 
 
janela = tk.Tk() 
 
janela.title("Chat") 
 
janela["background"] = "blue" # bg ou background 
 
janela.geometry("300x300+200+100") 
#LarguraxAltura+distânciaEsquerda+distância_Topo, alguns são opcionais 
 
janela.mainloop() 
	
Resultado do programa: 
	
	
	
	
 
 87 
 No programa abaixo é possível inserir texto na 
janela gráfica, isto é feito através das instruções lb 
= Label(janela, text=mensagem[i]) e lb.place(x=10, 
y=yc).	
	
 Label é um objeto tipo rótulo. 
 
 Place é responsável pela posição de onde a mensagem 
vai ser colocada, ou seja, posição “x” e “y” em relação 
a origem (0,0) [left, top]. 
	
# ............................ Tk_5.py 
 
from tkinter import * 
 
janela = Tk() 
 
janela.title("Chat") 
 
xMax = 300 
yMax = 300 
left = 100 
top = 200 
s = str(xMax) + "x" + str(yMax) + "+" + str(left) + "+" + str(top) 
janela.geometry(s) 
mensagem = ["Olá, tudo bem", "Quando vais vir?", "Não demora", 
"Abraços"] 
n = len(mensagem) 
yc = 10 
for i in range(n): 
 lb = Label(janela, text=mensagem[i]) 
 lb.place(x=10, y=yc) 
 yc = yc + 20 
 
janela.mainloop() 
	
Resultado do programa: 
	
	
 
 88 
	
 No programa abaixo é possível inserir um botão na 
janela gráfica, isto é feito através das instruções 
botao = tk.Button(janela, text=" Aperte ", command= 
Mensagem) [insere o botão na janela da aplicação] e 
botao.pack() [exibe o botão].	
	
	
# ........................... Tk_6.py 
 
import tkinter as tk 
 
def Mensagem(): 
 print("Olá, tudo bem?") 
 
janela = tk.Tk() 
 
janela.title("Tkinter") 
 
janela.geometry("300x300+200+100") 
 
botao = tk.Button(janela, text=" Aperte ", command=Mensagem) 
 
botao.pack() 
 
janela.mainloop() 
	
Resultado do programa: 
	
	
Note que quando o botão foi pressionado, foi impressa a 
mensagem “Olá, tudo bem” na tela em modo texto (ou 
terminal). 
	
 
 89 
O programa a seguir contém um botão (chamado “aperte”) 
que quando pressionado imprime a mensagem “Olá, tudo 
bem?” na janela gráfica. 
 
# ........................... Tk_7.py 
 
import tkinter as tk 
from tkinter import * 
 
def Mensagem(): 
 mensagem = "Olá, tudo bem?" 
 lb = Label(janela, text=mensagem) 
 lb.place(x=100, y=200) 
 
janela = tk.Tk() 
 
janela.title("Tkinter") 
 
janela.geometry("300x300+200+100") 
 
botao = tk.Button(janela, text=" Aperte ", command=Mensagem) 
 
botao.pack() 
 
janela.mainloop() 
	
 
 
O programa a seguir contém uma caixa de diálogo que 
permite a entrada de dados reais e exibe um somador 
(acumulador). 
 
 90 
 
# ........................ Tk_8.py 
 
import tkinter as tk 
from tkinter import * 
 
def Soma(x): 
 somador.set(somador.get() + valor.get()) 
 
def Mensagem(): 
 mensagem = "Digite um valor e pressione <Enter>" 
 lb = Label(janela, text=mensagem) 
 lb.place(x=25, y=200) 
 
janela = tk.Tk() 
 
janela.title("Acumulador") 
 
janela["background"] = "lightblue" 
 
janela.geometry("300x300+200+100") 
 
Mensagem() 
 
somador = DoubleVar(janela) 
 
valor = DoubleVar(janela) 
 
lSomador = Label(textvar=somador)eValor = Entry(textvar=valor) 
 
eValor.bind("<Return>", Soma) 
 
lSomador.pack() 
 
eValor.pack() 
 
janela.mainloop() 
 
 
 
 91 
	
 No programa acima, a caixa de diálogo foi 
realizada através da instrução: eValor = 
Entry(textvar=valor). 
 
O programa a seguir, mostra como encerrar uma 
aplicação através de um botão (Button) e uma chamada de 
um comando do Sistema Operacional: exit, por isto o 
import sys (from sys import exit). 
 
# .............................. Tk_9.py 
 
from sys import exit 
import tkinter as tk 
from tkinter import * 
 
janela = tk.Tk() 
 
janela.title("Tkinter") 
 
janela["background"] = "lightblue" 
 
janela.geometry("300x300+200+100") 
 
Button(janela, text=' Quit ', command=exit).pack() 
 
janela.mainloop() 
 
 
 
O programa a seguir, mostra como configurar um 
rótulo, ou seja, selecionar a fonte, background , borda 
e etc através da instrução 
rotulo.configure(relief="ridge", font="Arial 24 bold", 
border=5, background="yellow"). 
 
 92 
 
# ............................. Tk_10.py 
 
from tkinter import * 
 
janela = Tk() 
janela.title("Rótulo") 
janela.geometry("400x100") 
frame = Frame() ; frame.pack() 
rotulo = Label(frame, text=" Configurando um Rótulo ", 
foreground="blue") 
rotulo.pack() 
rotulo.configure(relief="ridge", font="Arial 24 bold", border=5, 
background="yellow") 
janela.mainloop() 
 
 
 
 O programa a seguir exibe a posição x e y do cursor 
do mouse. 
 
# ........................ Tk_11.py 
 
from tkinter import * 
 
def clique(e): 
 txt = "Mouse: %d x %d" %(e.x,e.y) 
 r.configure(text=txt) 
 
 
janela = Tk() 
janela.title("Mouse") 
r = Label() 
r.pack(expand=True, fill="both") 
r.master.geometry("200x200") 
r.bind("<Button-1>", clique) 
mainloop() 
 
 
 
 
 93 
 O programa a seguir exibe uma listbox. 
 
# ............................ Tk_12.py 
 
from tkinter import * 
 
root = Tk() 
 
listbox = Listbox(root) 
listbox.pack() 
 
for i in range(10): 
 listbox.insert(END, " -> "+str(i)) 
 
mainloop() 
 
 
 
 O seguinte programa mostra como exibir na tela 
gráfica, texto colorido, configurando a cor da frente 
(foreground = fg) e a cor de fundo (background = bg), 
através da instrução: rot = Label(janela, text="Red", 
bg="red", fg="white"). 
 
# ............................ Tk_13.py 
 
from tkinter import * 
 
janela = Tk() 
janela.title("Cores") 
janela.geometry("300x300+200+100") 
rot = Label(janela, text="Red", bg="red", fg="white") 
rot.pack(fill=X) 
rot = Label(janela, text="Green", bg="green", fg="black") 
rot.pack(fill=X) 
rot = Label(janela, text="Blue", bg="blue", fg="white") 
rot.pack(fill=X) 
 
janela.mainloop() 
 
 
 
 94

Mais conteúdos dessa disciplina