Automatiza tarefas maçantes com python
604 pág.

Automatiza tarefas maçantes com python

Disciplina:Python164 materiais485 seguidores
Pré-visualização50 páginas
Al	Sweigart

Novatec

2

Copyright	©	2015	by	Al	Sweigart.	Title	of	English-language	original:	Automate	the	Boring	Stuff	with
Python,	 ISBN	 978-1-59327-599-0,	 published	 by	 No	 Starch	 Press.	 Portuguese-language	 edition
copyright	©	2015	by	Novatec	Editora	Ltda.	All	rights	reserved.

3

Copyright	©	2015	by	Al	Sweigart.	Título	original	em	inglês:	Automate	 the	Boring	Stuff	with	Python,
ISBN	978-1-59327-599-0,	publicado	pela	No	Starch	Press.	Edição	em	Português	copyright	©	2015	pela
Novatec	Editora	Ltda.	Todos	os	direitos	reservados.
©	Novatec	Editora	Ltda.	2015.
Todos	os	direitos	reservados	e	protegidos	pela	Lei	9.610	de	19/02/1998.	É	proibida	a	reprodução	desta
obra,	mesmo	parcial,	por	qualquer	processo,	sem	prévia	autorização,	por	escrito,	do	autor	e	da	Editora.
Editor:	Rubens	Prates
Assistente	editorial:	Priscila	Yoshimatsu
Tradução:	Lúcia	A.	Kinoshita
Revisão	gramatical:	Marta	Almeida	de	Sá
Editoração	eletrônica:	Carolina	Kuwabata

4

ISBN:	978-85-7522-608-7
Histórico	de	edições	impressas:
Maio/2017	Segunda	reimpressão
Fevereiro/2016	Primeira	reimpressão
Agosto/2015	Primeira	edição

5

Novatec	Editora	Ltda.
Rua	Luís	Antônio	dos	Santos	110
02460-000	–	São	Paulo,	SP	–	Brasil
Tel.:	+55	11	2959-6529
E-mail:	novatec@novatec.com.br
Site:	www.novatec.com.br
Twitter:	twitter.com/novateceditora
Facebook:	facebook.com/novatec
LinkedIn:	linkedin.com/in/novatec

6

Para	meu	sobrinho	Jack.

7

Sobre	o	autor
Al	Sweigart	é	desenvolvedor	de	software,	autor	de	livros	técnicos	e	mora	em
San	Francisco.	O	Python	é	sua	linguagem	de	programação	favorita,	e	o	autor
desenvolveu	 vários	 módulos	 de	 código	 aberto	 para	 essa	 linguagem.	 Seus
outros	 livros	 estão	 disponíveis	 gratuitamente	 por	 meio	 da	 licença	 Creative
Commons	 em	 seu	 site	 http://www.inventwithpython.com/.	 Seu	 gato	 pesa
aproximadamente	seis	quilos	e	meio.

8

Sobre	a	revisora	técnica
Ari	 Lacenski	 é	 desenvolvedora	 de	 aplicações	 Android	 e	 softwares	 Python.
Mora	 em	 San	 Francisco	 e	 escreve	 sobre	 programação	 Android	 em
http://gradlewhy.ghost.io/,	além	de	ser	orientadora	do	Women	Who	Code.	Ela
também	toca	música	folk	no	violão.

9

SUMÁRIO

Agradecimentos

Introdução
A	quem	este	livro	se	destina?
Convenções
O	que	é	programação?
O	que	é	Python?
Programadores	não	precisam	saber	muita	matemática
Programação	é	uma	atividade	criativa

Sobre	este	livro
Download	e	instalação	do	Python
Iniciando	o	IDLE
Shell	interativo

Onde	encontrar	ajuda
Fazendo	perguntas	inteligentes	sobre	programação
Resumo

Parte	I	■	Básico	da	programação	python
Capítulo	1	■	Básico	sobre	o	python
Fornecendo	expressões	no	shell	interativo
Tipos	de	dado	inteiro,	de	ponto	flutuante	e	string
Concatenação	e	repetição	de	strings
Armazenando	valores	em	variáveis
Instruções	de	atribuição
Nomes	de	variáveis

Seu	primeiro	programa
Dissecando	seu	programa
Comentários
Função	print()
Função	input()
Exibindo	o	nome	do	usuário
Função	len()
Funções	str(),	int()	e	float()

10

Resumo
Exercícios	práticos

Capítulo	2	■	Controle	de	fluxo
Valores	booleanos
Operadores	de	comparação
Operadores	booleanos
Operadores	booleanos	binários
Operador	not

Misturando	operadores	booleanos	e	de	comparação
Elementos	do	controle	de	fluxo
Condições
Blocos	de	código

Execução	do	programa
Instrução	de	controle	de	fluxo
Instruções	if
Instruções	else
Instruções	elif
Instruções	de	loop	while
Instruções	break
Instruções	continue
Loops	for	e	a	função	range()

Importando	módulos
Instruções	from	import

Encerrando	um	programa	previamente	com	sys.exit()
Resumo
Exercícios	práticos

Capítulo	3	■	Funções
Instruções	def	com	parâmetros
Valores	de	retorno	e	instruções	return
Valor	None
Argumentos	nomeados	e	print()
Escopo	local	e	global
Variáveis	locais	não	podem	ser	usadas	no	escopo	global
Escopos	locais	não	podem	usar	variáveis	de	outros	escopos	locais
Variáveis	globais	podem	ser	lidas	a	partir	de	um	escopo	local
Variáveis	locais	e	globais	com	o	mesmo	nome

Instrução	global

11

Tratamento	de	exceções
Um	pequeno	programa:	adivinhe	o	número
Resumo
Exercícios	práticos
Projetos	práticos
Sequência	de	Collatz
Validação	de	dados	de	entrada

Capítulo	4	■	Listas
Tipo	de	dado	lista
Obtendo	valores	individuais	de	uma	lista	por	meio	de	índices
Índices	negativos
Obtendo	sublistas	com	slices
Obtendo	o	tamanho	de	uma	lista	com	len()
Alterando	valores	de	uma	lista	usando	índices
Concatenação	e	repetição	de	listas
Removendo	valores	de	listas	usando	instruções	del

Trabalhando	com	listas
Utilizando	loops	for	com	listas
Operadores	in	e	not	in
Truque	da	atribuição	múltipla

Operadores	de	atribuição	expandidos
Métodos
Encontrando	um	valor	em	uma	lista	com	o	método	index()
Adicionando	valores	a	listas	com	os	métodos	append()	e	insert()
Removendo	valores	de	listas	com	remove()
Ordenando	os	valores	de	uma	lista	com	o	método	sort()

Exemplo	de	programa:	Magic	8	Ball	com	uma	lista
Tipos	semelhantes	a	listas:	strings	e	tuplas
Tipos	de	dados	mutáveis	e	imutáveis
Tipo	de	dado	tupla
Convertendo	tipos	com	as	funções	list()	e	tuple()

Referências
Passando	referências
Funções	copy()	e	deepcopy()	do	módulo	copy

Resumo
Exercícios	práticos
Projetos	práticos
Código	para	vírgulas

12

Grade	para	imagem	composta	de	caracteres

Capítulo	5	■	Dicionários	e	estruturação	de	dados
Tipo	de	dado	dicionário
Comparação	entre	dicionários	e	listas
Métodos	keys(),	values()	e	items()
Verificando	se	uma	chave	ou	um	valor	estão	presentes	em	um	dicionário
Método	get()
Método	setdefault()

Apresentação	elegante
Utilizando	estruturas	de	dados	para	modelar	objetos	do	mundo	real
Um	tabuleiro	de	jogo	da	velha
Dicionários	e	listas	aninhados

Resumo
Exercícios	práticos
Projetos	práticos
Inventário	de	um	jogo	de	fantasia
Função	de	“lista	para	dicionário”	para	o	inventário	de	jogo	de	fantasia

Capítulo	6	■	Manipulação	de	strings
Trabalhando	com	strings
Strings	literais
Indexação	e	slicing	de	strings
Operadores	in	e	not	in	com	strings

Métodos	úteis	de	string
Métodos	de	string	upper(),	lower(),	isupper()	e	islower()
Métodos	de	string	isX
Métodos	de	string	startswith()	e	endswith()
Métodos	de	string	join()	e	split()
Justificando	texto	com	rjust(),	ljust()	e	center()
Removendo	espaços	em	branco	com	strip(),	rstrip()	e	lstrip()
Copiando	e	colando	strings	com	o	módulo	pyperclip

Projeto:	Repositório	de	senhas
Passo	1:	Design	do	programa	e	estruturas	de	dados
Passo	2:	Tratar	argumentos	da	linha	de	comando
Passo	3:	Copiar	a	senha	correta

Projeto:	Adicionando	marcadores	na	marcação	da	Wiki
Passo	1:	Copiar	e	colar	no	clipboard
Passo	2:	Separar	as	linhas	de	texto	e	acrescentar	o	asterisco

13

Passo	3:	Juntar	as	linhas	modificadas
Resumo
Exercícios	práticos
Projeto	prático
Exibição	de	tabela

Parte	II	■	Automatizando	tarefas
Capítulo	7	■	Correspondência	de	padrões	com	expressões
regulares

Encontrando	padrões	de	texto	sem	usar	expressões	regulares
Encontrando	padrões	de	texto	com	expressões	regulares
Criando	objetos	Regex
Objetos	Regex	de	correspondência
Revisão	da	correspondência	com	expressão	regular

Mais	correspondência	de	padrões	com	expressões	regulares
Agrupando	com	parênteses
Fazendo	a	correspondência	de	vários	grupos	com	pipe
Correspondência	opcional	usando	ponto	de	interrogação
Correspondendo	a	zero	ou	mais	ocorrências	usando	asterisco
Correspondendo	a	uma	ou	mais	ocorrências	usando	o	sinal	de	adição
Correspondendo	a	repetições	específicas	usando	chaves

Correspondências	greedy	e	nongreedy
Método	findall()
Classes	de	caracteres
Criando	suas	próprias	classes	de	caracteres
Acento	circunflexo	e	o	sinal	de	dólar
Caractere-curinga
Correspondendo	a	tudo	usando	ponto-asterisco
Correspondendo	a	quebras	de	linha	com	o	caractere	ponto

Revisão	dos	símbolos	de	regex
Correspondências	sem	diferenciar	letras	maiúsculas	de	minúsculas
Substituindo