Вы находитесь на странице: 1из 27

Aula 01 – Python

• Linguagem de programação interpretada de alto nível

• Linguagem de programação de uso geral

• Lançada em 1991

• Guido van Rossum

Algoritmos e Estruturas de Dados 23


Aula 01 – Python
• Enfatiza a legibilidade do código

• Espaço em branco significativo

• Blocos expressos por endentação

• Permitir programação clara em pequena ou


grande escala

• Tipos dinâmicos

• Gerenciamentos automático de memória

Algoritmos e Estruturas de Dados 24


Aula 01 – Python
• Paradigmas de programação suportados

• Imperativo, procedural, orientado a objetos, funcional, orientada a


aspectos

• Biblioteca padrão

• Multiplataforma

• Código aberto

• Implementação de referência - CPython

Algoritmos e Estruturas de Dados 25


Aula 01 – Python

“... Em dezembro de 1989, eu estava procurando por um projeto de programação ‘hobby’ que me mantivesse ocupado
durante a semana em torno do Natal. Meu escritório... estaria fechado, mas eu tinha um computador em casa, e não
tinha muito mais em minhas mãos. Eu decidi escrever um interpretador para a nova linguagem de script que eu vinha
pensando ultimamente: um descendente da ABC que atraísse os hackers do Unix/C. Eu escolhi Python como um título de
trabalho para o projeto, por estar de bom humor (e ser um grande fã do Circo Voador do Monty Python)”

- Guido van Rossum

Algoritmos e Estruturas de Dados 26


Aula 01 – Python
• Filosofia central

• Bonita é melhor que feia

• Explicito é melhor do que implícito

• Simples é melhor que complexo

• Complexo é melhor do que complicado

• Legibilidade conta

Algoritmos e Estruturas de Dados 27


Aula 01 – Python
• The Zen of Python

• Python Enhancement Proposals

• PEP 20

• https://www.python.org/dev/peps/pep-0020/

Algoritmos e Estruturas de Dados 28


Aula 01 – Python
• Guia de Estilo para o Código Python

• PEP 8

• https://www.python.org/dev/peps/pep-0008/

Algoritmos e Estruturas de Dados 29


Aula 01 – Python
• Executando um programa em Python
# conteudo do arquivo ola.py
print("ola mundo")

Algoritmos e Estruturas de Dados 30


Aula 01 – Python
• Com Python

• Aplicações desktop

• Aplicações web

• Computação científica

• Scripts

• Software de inteligência artificial

Algoritmos e Estruturas de Dados 31


Aula 01 – Python
• Com Python

• Desenvolvimento desktop multi plataforma / PyQT

• Desenvolvimento web / Flask, Django

• Computação científica / ScyPy

• Inteligência artificial / TensorFlow

Algoritmos e Estruturas de Dados 32


Aula 01 – Python
• Python básico

• Tipos

• Inteiros, textos

• Funções, classes, recursos exclusivos do python

• Como juntar tudo

Algoritmos e Estruturas de Dados 33


Aula 01 – Python
• Python básico

• Console

• Web

Algoritmos e Estruturas de Dados 34


Aula 01 – Python
• Python básico

• Simples, elegante, poderosa

• Inicio imediato / setup mínimo

• Multiplataforma

• Presenta na maioria dos SO

• Linux, Windows, Mac OS

• Sem necessidade de modificação de código

Algoritmos e Estruturas de Dados 35


Aula 01 – Python
• Python básico

• Usada para qualquer propósito

• Console, scripts, científica, retaguarda, desktop, web, automação,


aprendizagem de máquina, inteligência artificial, computação móvel,
análise de dados, IoT, etc.

• Linguagem de programação mais popular

Algoritmos e Estruturas de Dados 36


Aula 01 – Python
• Python básico

Python básico – tipos Simples, elegante,


de dados, funções e poderosa e Multi utilidade
classes multiplataforma

Algoritmos e Estruturas de Dados 37


Aula 01 – Python
• Usando Python

• Automatizar tarefas rotineiras

• Analisar arquivos CSV

• Realizar manutenção regular de um servidor

• Executar computação científica complexa

• Processamento complexo

• Grafos

Algoritmos e Estruturas de Dados 38


Aula 01 – Python
• Usando Python

• Desenvolvimento multiplataforma

• Com aparência nativa de cada sistema operacional

• Desenvolvimento Android

• Construir websites

• Frente e retaguarda

• Poucas linhas de código

• Flask / Django

Algoritmos e Estruturas de Dados 39


Aula 01 – Python
• Usando Python

• Aprendizagem de máquina

• Reconhecimento de imagens, categorização de informações, etc.

• Biblioteca TensorFlow

Algoritmos e Estruturas de Dados 40


Aula 01 – Python
• Usando Python

Automação Ciência Desktop

Android Web Aprendizagem de Máquina

Algoritmos e Estruturas de Dados 41


Aula 01 – Python
• Python 2 / 3

Python 2 Python 3

Mantida, sem novas funcionalidades Novas funcionalidades adicionadas


Fim de vida (EOL) / 2020 Suporte Unicode padrão
Continua padrão em muitos sistemas Melhorou alguns problemas do Python 2
print “Ola mundo!” print(“Ola mundo!”)
Poucas diferenças do Python 2

Algoritmos e Estruturas de Dados 42


Aula 01 – Python
• Python 2 / 3

Python 2 Python 3

Mantida, sem novas funcionalidades Novas funcionalidades adicionadas


Fim de vida (EOL) / 2020 Suporte Unicode padrão
Continua padrão em muitos sistemas Melhorou alguns problemas do Python 2
print “Ola mundo!” print(“Ola mundo!”)
Poucas diferenças do Python 2

Algoritmos e Estruturas de Dados 43


Aula 01 – Python
• Instalando Python

• https://www.python.org/

• https://brew.sh/

Algoritmos e Estruturas de Dados 44


Aula 01 – Python
• Console Python

• Console Python integrado

• IDLE – Integrated DeveLopment Environment ou Integrated Development


and Learning Environment
• Comando python / python3

• Interativo / interpreta cada linha digitada

>>> x-5 >>> def subrotina():


>>> x=12 ... return 14+5
>>> x-5 ...

Algoritmos e Estruturas de Dados 45


Aula 01 – Python
• IDEs

• Ambientes de desenvolvimento integrado

• Bloco de notas, Sublime, Wing, Vim, Emacs

• PyCharm, Visual Studio Code

Algoritmos e Estruturas de Dados 46


Aula 01 – Python
• IDEs

• Ambientes de desenvolvimento
integrado

• https://www.jetbrains.com/pychar
m/

Algoritmos e Estruturas de Dados 47


Aula 01 – Python
• IDEs

• Ambientes de desenvolvimento
integrado

• https://code.visualstudio.com/

Algoritmos e Estruturas de Dados 48


Aula 01 – Python
• Criando/Executando Scripts
#!/usr/local/bin/python3
vi teste.py
nano teste.py def funcao_dois_mais_dois():
return 2 + 2
notepad teste.py
x = funcao_dois_mais_dois()
code teste.py
... print(x)

$ python teste.py
$ python3 teste.py
$ chmod +x teste.py
$ ./teste.py

Algoritmos e Estruturas de Dados 49