Escolar Documentos
Profissional Documentos
Cultura Documentos
Uma língua é um meio (e uma ferramenta) para expressar e registrar pensamentos. Há muitas
línguas ao nosso redor. Alguns deles não exigem nem falar nem escrever, como a linguagem
corporal; é possível expressar seus sentimentos mais profundos muito precisamente sem dizer
uma palavra.
Outra língua que você usa todos os dias é sua língua materna, que você usa para manifestar sua
vontade e pensar sobre a realidade. Computadores têm sua própria linguagem, também,
chamada linguagem de máquina, que é muito rudimentar.
Os comandos que reconhece são muito simples. Podemos imaginar que o computador
responde a ordens como "pegue esse número, divida por outro e salve o resultado".
Nenhum computador é atualmente capaz de criar uma nova linguagem. No entanto, isso pode
mudar em breve. Por outro lado, as pessoas usam uma série de línguas muito diferentes,
também, mas essas línguas se desenvolveram naturalmente. Além disso, eles ainda estão
evoluindo.
Novas palavras são criadas todos os dias e velhas palavras desaparecem. Essas línguas
são chamadas de línguas naturais.
UM ALFABETO
um conjunto de símbolos usados para construir palavras de uma determinada língua (por
exemplo, o alfabeto latino para o inglês, o alfabeto cirílico para o russo, Kanji para japonês, e
assim por diante)
UM LEXIS
(também conhecido como dicionário) um conjunto de palavras que o idioma oferece aos seus
usuários (por exemplo, a palavra "computador" vem do dicionário de língua inglesa, enquanto
"cmoptrue" não; a palavra "chat" está presente tanto em dicionários em inglês quanto em
francês, mas seus significados são diferentes)
UMA SINTAXE
Semântica
um conjunto de regras determinando se uma certa frase faz sentido (por exemplo, "Eu comi
uma rosquinha" faz sentido, mas "Uma rosquinha me comeu" não faz)
Infelizmente, esta língua está longe de ser uma língua materna humana. Todos nós
(computadores e humanos) precisamos de outra coisa, uma linguagem comum para
computadores e humanos, ou uma ponte entre os dois mundos diferentes.
Precisamos de uma linguagem na qual os humanos possam escrever seus programas e uma
linguagem que os computadores possam usar para executar os programas, um que é muito
mais complexo do que a linguagem da máquina e ainda muito mais simples do que a linguagem
natural.
Tais idiomas são frequentemente chamadas de linguagens de programação de alto nível. Eles
são pelo menos um pouco semelhantes aos naturais, pois usam símbolos, palavras e
convenções legíveis aos humanos. Essas línguas permitem que os humanos expressem
comandos para computadores muito mais complexos do que os oferecidos pelas ILs.
Infelizmente, um programador também pode cometer erros com cada um dos quatro sentidos
acima. Cada um deles pode fazer com que o programa se torne completamente inútil.
Vamos supor que você escreveu com sucesso um programa. Como convencemos o computador
a executá-lo? Você tem que transformar seu programa em linguagem de máquina. Felizmente,
a tradução pode ser feita por um computador em si, tornando todo o processo rápido e
eficiente.
Compilação - o programa de origem é traduzido uma vez (no entanto, este ato deve ser
repetido cada vez que você modificar o código fonte) obtendo um arquivo (por exemplo, um
arquivo .exe se o código for destinado a ser executado no MS Windows) contendo o código da
máquina; agora você pode distribuir o arquivo em todo o mundo; o programa que realiza esta
tradução é chamado de compilador ou tradutor;
Interpretação - você (ou qualquer usuário do código) pode traduzir o programa de origem
cada vez que tiver que ser executado; o programa que realiza esse tipo de transformação é
chamado de intérprete, pois interpreta o código toda vez que se pretende executar; também
significa que você não pode simplesmente distribuir o código-fonte como está, porque o
usuário final também precisa do intérprete para executá-lo.
Devido a algumas razões muito fundamentais, uma linguagem de programação de alto nível é
projetada para se enquadrar em uma dessas duas categorias.
Há muito poucas línguas que podem ser compiladas e interpretadas. Normalmente, uma
linguagem de programação é projetada com esse fator na mente de seus construtores - será
que ela será compilada ou interpretada?
O intérprete lê o código fonte de uma forma comum na cultura ocidental: de cima para baixo e
da esquerda para a direita. Há algumas exceções - eles serão cobertos mais tarde no curso.
Em primeiro lugar, o intérprete verifica se todas as linhas subsequentes estão corretas (usando
os quatro aspectos abordados anteriormente).
Se o compilador encontrar um erro, ele termina seu trabalho imediatamente. O único resultado
neste caso é uma mensagem de erro. O intérprete informará onde o erro está localizado e o
que o causou. No entanto, essas mensagens podem ser enganosas, já que o intérprete não é
capaz de seguir suas intenções exatas, e pode detectar erros a alguma distância de suas causas
reais.
Por exemplo, se você tentar usar uma entidade de um nome desconhecido, isso causará um
erro, mas o erro será descoberto no local onde ele tenta usar a entidade, não onde o nome da
nova entidade foi introduzido.
Em outras palavras, a razão real geralmente está localizada um pouco mais cedo no código, por
exemplo, no lugar onde você tinha que informar o intérprete que você ia usar a entidade do
nome.
Se a linha parecer boa, o intérprete tenta executá-la (nota: cada linha geralmente é executada
separadamente, de modo que o trio "read-check-execute" pode ser repetido muitas vezes -
mais vezes do que o número real de linhas no arquivo fonte, já que algumas partes do código
podem ser executadas mais de uma vez).
Também é possível que uma parte significativa do código possa ser executada com sucesso
antes que o intérprete encontre um erro. Este é um comportamento normal neste modelo de
execução.
Compilação Interpretação
• a execução do código
traduzido é geralmente
mais rápida; • você pode executar o código
• apenas o usuário tem que assim que você completá-lo -
ter o compilador - o não há fases adicionais de
usuário final pode usar o tradução;
código sem ele; • o código é armazenado usando
• o código traduzido é linguagem de programação, não
Vantagens armazenado usando a máquina - isso significa que
linguagem de máquina - ele pode ser executado em
como é muito difícil computadores usando
entendê-lo, suas próprias diferentes linguagens de
invenções e truques de máquina; você não compila seu
programação código separadamente para
provavelmente cada arquitetura diferente.
permanecerão em seu
segredo.
• a compilação em si pode • não espere que essa
Desvantagens ser um processo muito interpretação irá aumentar seu
demorado - você pode não código para alta velocidade -
Compilação Interpretação
ser capaz de executar seu seu código compartilhará o
código imediatamente após poder do computador com o
qualquer alteração; intérprete, então não pode ser
• você tem que ter tantos muito rápido;
compiladores quanto • tanto você quanto o usuário
plataformas de hardware final têm que ter o intérprete
que você quer que seu para executar seu código.
código seja executado.
• Python é uma linguagem interpretada. Isso significa que herda todas as vantagens e
desvantagens descritas. Claro, ele adiciona algumas de suas características únicas para
ambos os conjuntos.
• Se você quiser programar em Python, você precisará do intérprete Python. Você não
será capaz de executar seu código sem ele. Felizmente, Python é livre. Esta é uma de
suas vantagens mais importantes.
O que é Python?
Python é uma linguagem de programação amplamente usada, interpretada, orientada a
objetos e de alto nível com semântica dinâmica, usada para programação de uso geral.
E embora você possa conhecer a píton como uma grande cobra, o nome da linguagem de
programação Python vem de uma antiga série de esquetes de comédia da BBC
chamada Monty Python's Flying Circus.
No auge de seu sucesso, a equipe monty python estava realizando seus esboços para
audiências ao vivo em todo o mundo, incluindo no Hollywood Bowl.
Não há muitas línguas cujos autores são conhecidos pelo nome. Python foi criado
por Guido van Rossum, nascido em 1956 em Haarlem, holanda. Claro, Guido van
Rossum não desenvolveu e evoluiu todos os componentes Python ele mesmo.
A velocidade com que o Python se espalhou pelo mundo é resultado do trabalho contínuo
de milhares (muitas vezes anônimos) de programadores, testadores, usuários (muitos
deles não são especialistas em TI) e entusiastas, mas deve-se dizer que a primeira ideia
(a semente da qual Python brotou) veio a uma cabeça - guido.
Objetivos python
Em 1999, Guido van Rossum definiu seus objetivos para Python:
• uma linguagem fácil e intuitiva tão poderosa quanto a dos principais concorrentes;
• código aberto, para que qualquer pessoa possa contribuir para o seu
desenvolvimento;
• código que é tão compreensível quanto inglês simples;
• adequado para tarefas cotidianas,permitindo tempos curtos de desenvolvimento.
Cerca de 20 anos depois, está claro que todas essas intenções foram cumpridas. Algumas
fontes dizem que o Python é a linguagem de programação mais popular do mundo, enquanto
outras afirmam que é a terceira ou a quinta.
De qualquer forma, ele ainda ocupa um alto posto entre os dez primeiros do PYPL PopularitY
of Programming Language e do TIOBE Programming Community Index.
Python não é uma linguagem jovem. É maduro e confiável. Não é uma maravilha de um só
sucesso. É uma estrela brilhante no firmamento de programação, e o tempo gasto aprendendo
Python é um investimento muito bom.
Há muitas razões - já listamos algumas delas, mas vamos enumerá-las novamente de uma
maneira mais prática:
• é fácil de aprender - o tempo necessário para aprender Python é menor do que para
muitas outras línguas; isso significa que é possível iniciar a programação real mais
rapidamente;
• é fácil de ensinar - a carga horária de ensino é menor do que a necessária por outras
línguas; isso significa que o professor pode dar mais ênfase às técnicas gerais
(independentes da linguagem), não desperdiçar energia em truques exóticos, exceções
estranhas e regras incompreensíveis;
• é fácil de usar para escrever novos softwares - muitas vezes é possível escrever
código mais rápido ao usar Python;
• é fácil de entender - também é muitas vezes mais fácil entender o código de outra
pessoa mais rapidamente se ele é escrito em Python;
• é fácil de obter, instalar e implantar - Python é livre, aberto e multiplataforma; nem
todas as línguas podem se vangloriar disso.
Tem muitos seguidores, mas há muitos que preferem outras línguas e nem sequer consideram
Python para seus projetos.
Rivais python?
Python tem dois concorrentes diretos, com propriedades e predisposições comparáveis. São
elas:
O primeiro é mais tradicional, mais conservador que python, e se assemelha a algumas das
boas e antigas línguas derivadas da clássica linguagem de programação C.
Em contraste, este último é mais inovador e mais cheio de novas ideias do que python. Python
em si está em algum lugar entre essas duas criações.
A Internet está cheia de fóruns com infinitas discussões sobre a superioridade de um desses
três sobre os outros, caso você deseje aprender mais sobre cada um deles.
Há mais de um Python
Existem dois tipos principais de Python, chamados Python 2 e Python 3.
Python 2 é uma versão mais antiga do Python original. Desde então, seu desenvolvimento foi
intencionalmente paralisado, embora isso não signifique que não haja atualizações sobre ele.
Pelo contrário, as atualizações são emitidas regularmente, mas não se destinam a modificar o
idioma de forma significativa. Eles preferem consertar qualquer bug recém-descoberto e falhas
de segurança. O caminho de desenvolvimento do Python 2 já chegou a um beco sem saída, mas
o Próprio Python 2 ainda está muito vivo.
Python 3 é a versão mais recente (para ser preciso, a atual) da linguagem. Está passando
por seu próprio caminho de evolução, criando seus próprios padrões e hábitos.
O primeiro é mais tradicional, mais conservador que python, e se assemelha a algumas das
boas e antigas línguas derivadas da clássica linguagem de programação C.
Estas duas versões do Python não são compatíveis uma com a outra. Os scripts Python 2 não
serão executados em um ambiente Python 3 e vice-versa, então se você quiser que o antigo
código Python 2 seja executado por um intérprete Python 3, a única solução possível é
reescrevê-lo, não do zero, é claro, pois grandes partes do código podem permanecer intocadas,
mas você tem que rever todo o código para encontrar todas as incompatibilidades possíveis.
Infelizmente, esse processo não pode ser totalmente automatizado.
É muito difícil, demorado demais, muito caro e muito arriscado migrar um antigo aplicativo
Python 2 para uma nova plataforma. É possível que reescrever o código introduza novos bugs
a ele. É mais fácil e sensato deixar esses sistemas em paz e melhorar o intérprete existente, em
vez de tentar trabalhar dentro do código fonte já funcional.
Python 3 não é apenas uma versão melhor do Python 2 - é uma linguagem completamente
diferente, embora seja muito semelhante ao seu antecessor. Quando você olha para eles à
distância, eles parecem ser os mesmos, mas quando você olha de perto, no entanto, você nota
um monte de diferenças.
Se você está modificando uma antiga solução Python existente, então é altamente provável que
tenha sido codificada no Python 2. Esta é a razão pela qual o Python 2 ainda está em uso.
Existem muitos aplicativos Python 2 existentes para descartá-lo completamente.
Nota
Se você vai iniciar um novo projeto Python, você deve usar o Python 3, e esta é a versão do
Python que será usada durante este curso.
É importante lembrar que pode haver diferenças menores ou maiores entre as versões
subsequentes do Python 3 (por exemplo, o Python 3.6 introduziu chaves de dicionário
encomendadas por padrão sob a implementação do CPython) - a boa notícia, no entanto, é que
todas as versões mais recentes do Python 3 são incompatíveis com as versões anteriores do
Python 3. Sempre que significativo e importante, sempre tentaremos destacar essas diferenças
no curso.
Todas as amostras de código que você encontrará durante o curso foram testadas contra
Python 3.4, Python 3.6 e Python 3.7.
Em primeiro lugar, há os Pythons que são mantidos pelas pessoas reunidas em torno da PSF
(Python Software Foundation),uma comunidade que visa desenvolver, melhorar, expandir e
popularizar python e seu ambiente. O presidente do PSF é o próprio Guido von Rossum, e por
essa razão, esses Pythons são chamados de canônicos. Eles também são
considerados pythons de referência,já que qualquer outra implementação do idioma deve
seguir todos os padrões estabelecidos pelo PSF.
Guido van Rossum usou a linguagem de programação "C" para implementar a primeira versão
de sua linguagem e essa decisão ainda está em vigor. Todos os Pythons provenientes do PSF
são escritos na linguagem "C". Há muitas razões para essa abordagem e ela tem muitas
consequências. Um deles (provavelmente o mais importante) é que, graças a ele, o Python
pode ser facilmente portado e migrado para todas as plataformas com a capacidade de
compilar e executar programas de idioma "C" (praticamente todas as plataformas têm esse
recurso, o que abre muitas oportunidades de expansão para python).
É por isso que a implementação do PSF é frequentemente referida como CPython. Este é o
Python mais influente entre todos os Pythons do mundo.
Cython
Outro membro da família Python é Cython.
Cython é uma das possíveis soluções para o mais doloroso traço de Python - a falta de
eficiência. Cálculos matemáticos grandes e complexos podem ser facilmente codificados em
Python (muito mais fácil do que em "C" ou em qualquer outra língua tradicional), mas a
execução do código resultante pode ser extremamente demorada.
Como essas duas contradições se reconciliam? Uma solução é escrever suas ideias matemáticas
usando Python, e quando você está absolutamente certo de que seu código está correto e
produz resultados válidos, você pode traduzi-lo em "C". Certamente, "C" vai correr muito mais
rápido do que python puro.
Isto é o que Cython pretende fazer - traduzir automaticamente o código Python (limpo e claro,
mas não muito rápido) em código "C" (complicado e falante, mas ágil).
Jython
Outra versão do Python se chama Jython.
"J" é para "Java". Imagine um Python escrito em Java em vez de C. Isso é útil, por exemplo, se
você desenvolver sistemas grandes e complexos escritos inteiramente em Java e quiser
adicionar alguma flexibilidade Python a eles. O CPython tradicional pode ser difícil de integrar
em tal ambiente, já que C e Java vivem em mundos completamente diferentes e não
compartilham muitas ideias comuns.
Jython pode se comunicar com a infraestrutura Java existente de forma mais eficaz. É por isso
que alguns projetos o acham utilizável e necessário.
Isso é útil porque se você quiser testar qualquer novo recurso que possa ser (mas não precisa
ser) introduzido na implementação python mainstream, é mais fácil checá-lo com PyPy do que
com CPython. É por isso que o PyPy é sim uma ferramenta para pessoas que desenvolvem
Python do que para o resto dos usuários.
Isso não torna pypy menos importante ou menos grave do que CPython, é claro.
Há muito mais Pythons diferentes no mundo. Você vai encontrá-los se você olhar, mas este
curso vai se concentrar em CPython.
Como obter Python e como começar a usá-lo
Existem várias maneiras de obter sua própria cópia do Python 3, dependendo do sistema
operacional que você usa.
Por exemplo, alguns distribuidores podem acoplá-los com o sistema e muitas dessas
ferramentas, como os gerentes de pacotes, são frequentemente escritas em Python. Algumas
partes de ambientes gráficos disponíveis no mundo Linux também podem usar python.
python3
>>>
Se o Python 3 estiver ausente, consulte sua documentação linux para descobrir como usar o
gerenciador de pacotes para baixar e instalar um novo pacote - o que você precisa é
chamado python3 ou seu nome começa com isso.