Prévia do material em texto
Python Pedro Henrique Resende Marques, Guilherme Santos Lima, Yander Alves de Carvalho, Taynara Diniz Moreira de Souza, Pedro Antônio Ortega Braz de Alencar. phmarques666@gmail.com guisantos2504@gmail.com yanderalves@alu.ufc.br pedro.ortega01@alu.ufc.br taynarad25@alu.ufc.br Resumo. Primeiramente, descrever o processo de criação do Python, como sua história e seu criador. Após essa descrição, irá se debater sobre a sintaxe da linguagem. Em seguida, a avaliação dessa linguagem, dando foco em sua legibilidade, capacidade de escrita e confiabilidade. Processo de criação O que o Python é? ● É uma linguagem de propósito geral; ● É fácil e intuitivo; ● Multiplataforma; ● Batteries incluída; ● Organizada; ● Orientada a objetos; ● Possui muitas bibliotecas; ● Livre (código aberto); Quem criou? ● A primeira ideia surgiu em 1982, quando Guido Van Hossum trabalhava na CWI, no projeto de criação da linguagem ABC. ● Em 1989, o desenvolvimento da linguagem teve início, e no início dos anos 90, já era a linguagem mais utilizada dentro do CWI. De onde vem o python? ● Na CWI, havia uma tradição de usar nomes de programas de TV para projetos. Desse modo, o python recebeu esse nome em mailto:phmarques666@gmail.com mailto:guisantos2504@gmail.com mailto:yanderalves@alu.ufc.br mailto:pedro.ortega01@alu.ufc.br homenagem seriado preferido de Van Houssem, “Monte Python”. Entretanto, a revista “O´Reilly” vinculou seu nome à cobra Píton, que traduzindo para o inglês fica Python, na publicação do primeiro livro da linguagem, desde então, a cobra se tornou a representante da linguagem (sua logomarca são duas cobras) e, após a publicação desse livro, o python tornou-se ainda mais famoso. ● Em 2001, foi criada a Python Software Fundation(PSF), que é uma fundação sem fins lucrativos que atualmente atua como uma das coordenadoras do Python. A linguagem evolui de acordo com a comunidade, caso uma funcionalidade seja aceito pela maioria, ela é adicionada a linguagem. Hoje em dia, a PSF é patrocinada por grandes empresas, como a Microsoft, o Google e a Globo.com, que utiliza python em seus sites e em transmissões de vídeo. Por que criou? ● Após se deparar com uma dificuldade de implementar um programa em C, ele decidiu criar uma linguagem de programação que fosse interpretada e tivesse comandos simples e fáceis de entender. Seu objetivo inicial era preencher uma lacuna entra o C e o shell. Pra que serve? ● Inteligência artificial – é usada por conta de sua sintaxe simples e ótima legibilidade, permitindo uma testagem rápida de algoritmos complexos de machine learning. Além disso, possui boas ferramentas de trabalho colaborativo, como o Google Colab. ● Biotecnologia – Usado para análise em grande escala de dados biológicos e descobertas de fármacos. ● Computação Gráfica – Utilizada na criação de filmes, por exemplo os filmes mais recentes da saga Star Wars foram feitos pela Industria Light & Magic usando python. ● Ciência de dados – Graças a seu crescente número de bibliotecas disponíveis voltadas para análise de dados, oferece funções e métodos de otimização para quaisquer objetivos. Quais empresas usam python no dia a dia? ● ZOPE- Gerenciador de conteúdo totalmente feito em python; ● AIR CANADA – Usa um programa feito em python para fazer a reserva de passagens e assentos; ● GLOBO – Usa python na área de vídeos; ● GOOGLE – Crawler que mostram conteúdo aos usuários são feitos em python; ● YOUTUBE - Feito em python; Aspectos da arquitetura de um compilador ● A arquitetura do Python pode ser classificada em quatro componentes principais: módulos do núcleo, bibliotecas padrões, e módulos criados pelo usuário,o estado atual do Python,alocador de memória e a estrutura de objetos e tipos, que constituem o ambiente em tempo de execução. O estado atual do Python refere-se ao estado de execução do interpretador, visto como uma máquina de estado finito muito grande, complexa, e modificável. O alocador de memória é responsável por alocar a memória para objetos de Python (externo e interno) e é conectado com as rotinas padrão malloc do C. As estruturas de objetos e tipos representam os objetos internos que estão disponíveis em Python. O diretório ”Modules”contém todos os módulos escritos em C, incluindo ambos os módulos do núcleo e aqueles que requerem simplesmente uma maior velocidade. Muitos módulos do núcleo (tais como o módulo ”OS”) são escritos na linguagem Python. O diretório denominado ”Parser”é um tanto incorreto, pois contém não somente rotinas do analisador sintático, como também as rotinas do analisador léxico e rotinas para gerar o analisador sintático baseado na gramática da linguagem Python (muito similar ao YACC ou Bison, mas não como Robust). O diretório ”Objects”contém todas as rotinas e arquivos de cabeçalhos para implementar objetos em tempo de execução e alguns objetos internos necessários para o interpretador Python funcionar corretamente. Contém todos os tipos internos de objetos Python (built-in objects). Por fim, o diretório ”Library”agrupa variadas rotinas padronizadas de bibliotecas. Sintaxe da Linguagem ● As variáveis precisam ser inicializadas para depois ser utilizada ● Os nome das variáveis não podem começar com números ou conter espaços ● A indentação é a forma para criar blocos de comandos ● Para escrever uma palavra ou uma frase devemos usar aspas simples ou aspas duplas ● Para imprimir uma mensagem na tela usamos o print ● Para receber uma resposta do usuário usamos o input ● Os operadores Aritméticos são: ○ Soma (+) ○ Subtração (-) ○ Divisão (/) ○ Multiplicação (*) ○ Módulo (%) ○ Exponenciação (**) ● A ordem de precedência do python, é a mesma que a ordem da matemática, ou seja: ○ Primeiro tudo que está dentro dos parênteses; ○ Segundo exponenciação; ○ Terceiro multiplicação, divisão e módulo; ○ Quarto soma e subtração. ● Para atribuir um valor em uma variável, usamos os seguintes operadores: ○ Atribuição comum (=) ○ Atribuição de soma (+=) ○ Atribuição de Subtração (-=) ○ Atribuição de Multiplicação (*=) ○ Atribuição de Divisão (/=) ○ Atribuição de Resto (%=) ● Os operadores para comparar duas variáveis são: ○ Menor que (<) ○ Menor ou igual (<=) ○ Maior que (>) ○ Maior ou igual (>=) ○ Igual (==) ○ Diferente (!=) ● Operadores Lógicos: ○ Não (not) ○ E (and) ○ Ou (or) ● A função é uma sequência de comandos que executa uma determinada tarefa, ela nos ajuda a organizar o programa em pedaços específicos ● Temos duas estruturas de decisão: ○ if else - Uma parte do código só será executado se a condição for verdadeira ou se for falso, só podendo colocar apenas uma condição. ○ if elif else - Podemos colocar mais de uma condição na estrutura. ● As estruturas de Repetição são: ○ while - Enquanto a condição for verdadeira, o comando continuará sendo executado. Quando a condição passar a ser falsa, a repetição termina. ○ for - O comando irá ser executado o número de vezes determinado código. ● Alguns erros comuns de sintaxe: ○ Escrever comandos de forma errada ○ Esquecer de indentar o código ○ Colocar nomes de variáveis iguais ○ Usar palavras reservadas para nomear as variáveis ○ Esquecer de abrir ou fechar aspas ○ Esquecer de abrir ou fechar parênteses ○ Esquecer de abrir ou fechar chaves Avaliação da Linguagem Legibilidade ● Como a linguagem de programação python foi criada com fins didáticos, possui uma legibilidade acima da média em comparação com as demais linguagens. Para definir os blocos de código, diferentemente de outras linguagens que utilizam chaves, python tem sua própria indentação para definir o começo e o fim de blocos de código, dessa forma, é possível estabelecer um patamar de legibilidade, pois, não é necessário a convenção para estabelecer uma indentação para a linguagem. ● Em python são mais utilizados caracteres que são mais comuns para usuários leigos, com intuito de parecer menos intimidador do que outras linguagens que utilizam caracteres como “%$&@!”. ● Com a intenção de ser fácil de aprender, python tem poucas palavras reservadas.Sendo uma linguagem de alto nível e com uma capacidade de abstração que torna essa linguagem muito poderosa, um exemplo é a forma de executar um loop em uma lista, sendo executado o comando praticamente dentro da lista. ● Suporte para abstração: A abstração é a capacidade de definir novos tipos de dados a partir de uma determinada entrada de dados, em python temos algumas ferramentas que ajudam bastante nesse critério pois trata as funções como tipos de dados de primeira ordem, o que a permite passar uma função como parâmetro de outras funções, armazenar funções como atributos ou elementos de uma estrutura de dados ou lista e também retorná-las como resultado de uma expressão, o que permite a criação de abstrações mais poderosas. Capacidade de Escrita ● Python possui um alto grau de flexibilidade em sua escrita e isso tem impacto na sua confiabilidade, mas é contrabalanceado com tratamento de exceções nativo e orientado a objetos e alta capacidade de abstração e recursos da programação funcional. ● A sua capacidade de escrita é alta para domínio de negócios e domínios mistos pois o custo de treinamento e escrita para programas em Python é baixo, uma vez que a capacidade de escrita e a legibilidade é alta, fazendo com que o tempo do entendimento de códigos na aprendizagem seja baixo assim como para manutenção destes, otimizando o tempo de desenvolvimento de uma aplicação. ● Em contrapartida sua velocidade de execução nem sempre é tão rápida quanto linguagens compiladas, como C e C++ pois o custo de compilar e interpretar é mais alto pois as instruções do código-fonte são traduzidas em um formato intermediário conhecido como byte-code e depois esse byte-code é quem é interpretado. Confiabilidade ● Verificação de tipos: Python é dinamicamente tipada e também possui a inferência dos tipos. Porém, o sistema de verificação de tipos não realiza a conversão implícita de um tipo de dados para outro, levantando uma exceção quando tipos inconsistentes são utilizados. Python realiza uma nova vinculação de nome e espaço a cada atribuição de valor a uma variável, inferindo o tipo de dados do valor recebido. Além disso, ela não possui definição de tipos nos parâmetros de funções ou métodos, deixando a cargo do programador o tratamento dos tipos recebidos e retornados. ● Manipulação de exceções: Para o bom desenvolvimento de um código, é necessário a previsão e o tratamento de erros, assim evitando com que a aplicação seja interrompida e com isso afetando a parte de custos de implementação, existem linguagens que não possuem suporte para esse tipo de recurso como o C. REFERÊNCIAS: UGO ROVEDA. O que é Python. Disponível em: <https://kenzie.com.br/blog/o-que-e-python/>. Acesso em: 24 de agosto de 2021 MAGNUN. A história do Python. Disponível em: <http://mindbending.org/pt/a-historia-do-python>. Acesso em: 24 de agosto de 2021 WIKIPÉDIA. Python. Disponível em: <https://pt.wikipedia.org/wiki/Python>. Acesso em: 24 de agosto de 2021 RUDÁ PORTO, SERGIO PACHECO, ADRIENNE NOGUEIRA. Uma análise comparativa das linguagens de programação. Disponível em: <http://python-blog.blogspot.com/2007/04/python-scheme-e-ml-uma-anlise.html>. Acesso em: 24 de agosto de 2021 DEVMEDIA. Python: Trabalhando com variáveis. Disponível em: <https://www.devmedia.com.br/python-trabalhando-com-variaveis/38644>. Acesso em: 24 de agosto de 2021 https://kenzie.com.br/blog/o-que-e-python/ http://mindbending.org/pt/a-historia-do-python https://pt.wikipedia.org/wiki/Python http://python-blog.blogspot.com/2007/04/python-scheme-e-ml-uma-anlise.html https://www.devmedia.com.br/python-trabalhando-com-variaveis/38644 DEVFURIA. Python - O básico da sintaxe. Disponível em: <http://devfuria.com.br/python/sintaxe-basica/>. Acesso em: 24 de agosto de 2021 IFSP - CÂMPUS SÃO CARLOS. Apostila - Introdução à programação com python. Disponível em: <http://antigo.scl.ifsp.edu.br/portal/arquivos/2016.05.04_Apostila_Python_-_PET_ADS _S%C3%A3o_Carlos.pdf>. Acesso em: 24 de agosto de 2021 CELSO KITAMURA. Operadores Aritméticos E De Atribuição Em Python. Disponível em: <https://celsokitamura.com.br/operadores-aritmeticos-e-de-atribuicao-em-python/>. Acesso em: 24 de agosto de 2021 UNIVERSIDADE DE SÃO PAULO - Introdução à Computação. Disponível em: <ime.usp.br/~kellyrb/mac2166_2014/arquivos/aulas/mac2166_aula4.html>. Acesso em: 24 de agosto de 2021 http://devfuria.com.br/python/sintaxe-basica/ http://antigo.scl.ifsp.edu.br/portal/arquivos/2016.05.04_Apostila_Python_-_PET_ADS_S%C3%A3o_Carlos.pdf http://antigo.scl.ifsp.edu.br/portal/arquivos/2016.05.04_Apostila_Python_-_PET_ADS_S%C3%A3o_Carlos.pdf https://celsokitamura.com.br/operadores-aritmeticos-e-de-atribuicao-em-python/ http://ime.usp.br/~kellyrb/mac2166_2014/arquivos/aulas/mac2166_aula4.html