Programação I Aula 2 Apresentação da linguagem Python

Documentos relacionados
1 Introdução à Programação O que é? Para que serve?... 1

Introdução à Programação Aula 2 Introdução à linguagem Python

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Python - Variáveis e expressões

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver:

Linguagens de Programação

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Introdução ao Python. Programa Computacional

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Paradigmas de Linguagem de Programação. Aspectos Básicos

Fundamentos de Programação 1

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Linguagem Haskell. Riocemar S. de Santana

Introdução à Computação

1/ 26. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

1/ 23. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Computação I - Python Aula 1 - Prática: Primeiros Passos- Função

Revisão: linguagens de programação

Programação de Computadores

3. Linguagem de Programação C

Algoritmos e Programação

Algoritmos e Programação

Linguagens de Programação. Introdução. Carlos Bazilio

Introdução à Programação Aula 3 Primeiros programas

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Capítulo 7. Expressões e Sentenças de Atribuição

Expressões e sentença de atribuição

Programação de Computadores

Linguagens de Programação Aula 13

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

MC-102 Aula 01. Instituto de Computação Unicamp

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti

PROGRAMAÇÃO I. Introdução

Programação I Aula 3 Primeiros programas

Fundamentos de Programação em Python

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Computação I - Python

Programação I Aula 17 Correção de programas Pedro Vasconcelos DCC/FCUP

Linguagens de Programação Classificação

Informática I. Aula 9. Aula 9-17/05/2006 1

Capítulo 1. Aspectos Preliminares

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Linguagens de programação

Computação 1 - Python 1/ 41

Métodos de implementação de linguagens. Kellen Pinagé

Algoritmos e Programação

Programação de Computadores:

Noções de compilação

Introdução à Computação: Máquinas Multiníveis

Linguagens de Programação Aula 3

Programação de Computadores III

Introdução a Ciência da Computação

Programação de Computadores:

Linguagens de Programação

Fundamentos de Sistemas Operacionais

Programação de Computadores III

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

TCC 00308: Programação de Computadores I Organização de programas em Python

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Aula 6 Módulo 5. DCC 001 Programação de Computadores 2 Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC

As fases de um compilador

Linguagens de Programação

Disciplina: Introdução à Engenharia da Computação

11 - Estrutura de um programa em C

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Transcrição:

Programação I Aula 2 Apresentação da linguagem Python Pedro Vasconcelos DCC/FCUP 2017 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 1 / 25

Nesta aula... 1 Porquê programar? 2 Linguagens de Programação 3 A linguagem Python Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 2 / 25

O que é a programação de computadores? Implementação de métodos computacionais para resolução de problemas Análise e comparação de métodos diferentes Conjunção de várias competências: matemática linguagens formais para especificar processos; engenharia juntar componentes para formar um sistema; avaliar prós/contras de alternativas ciências naturais observar comportamento de sistemas complexos; formular hipóteses; testar previsões Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 3 / 25

Porquê aprender a programar? Trabalhos científicos necessitam de processamento complexo de dados Facilita a automatização de tarefas repetitivas Muitas aplicações científicas são programáveis (ex: Excel, GNUplot, Matlab, Maple, Mathematica) Estrutura o pensamento para resolver problemas Desenvolve o pensamento analítico É um desafio intelectual É divertido! Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 4 / 25

Porquê aprender a programar? (cont.) Programar desenvolve competências de resolução de problemas: capacidade para descrever problemas de forma rigorosa; pensar de forma criativa em possíveis soluções; expressar as soluções de forma clara e precisa. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 5 / 25

Linguagens de Programação Linguagens formais para exprimir computação sintaxe: regras de formação (gramática) semântica: significado ou operação associados Outras linguagens: expressões aritméticas, símbolos químicos sintaxe semântica 3 (1 + 2) ok 9 3 1 + 2 ok 5 )1 + 2 + (3 erro H 2 O ok água 2zZ erro Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 6 / 25

Código máquina 55 89 e5 83 ec 20 83 7d 0c 00 75 0f... Códigos numéricos associados a operações básicas Linguagem específica de cada micro-processador Única linguagem directamente executável pelo computador Difícil escrever programas diretamente em código máquina Concebida para facilitar a implementação usando circuitos eletrónicos Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 7 / 25

Linguagem assembly 55 push %ebp 89 e5 mov %esp,%ebp 83 ec 20 sub $0x20,%esp 83 7d 0c 00 cmpl $0x0,0xc(%ebp) 75 0f jne 1b...... Representação do código máquina usando mnemónicas Mais legível do que a linguagem máquina Pode ser traduzida automaticamente para código máquina Continua a ser específica para cada micro-processador Exige programação lenta, fastidiosa e susceptível a erros Usada apenas em contextos muito específicos Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 8 / 25

Linguagens de alto-nível Exemplo: linguagem C p = 1; for(i=2; i<=n; i++) p = p*i; printf("factorial %d = %d\n", n, p); Mais próximas da formulação matemática dos problemas Permitem o desenvolvimento de programas mais rápido e facilitam a deteção e a correção de erros Permitem desenvolver programas portáveis e.g. independentes do micro-processador específico em cada computador Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 9 / 25

Interpretadores vs. compiladores Linguagens de alto-nível são traduzidas automaticamente para código máquina um programa especial interpretador a tradução é efectuada de cada vez que o programa executa compilador tradução é efectuada uma única vez Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 10 / 25

Interpretadores vs. compiladores (cont.) Vantagens dos interpretadores: permitem uso interativo rápido facilitam testar fragmentos de programas são mais simples de implementar Vantagens dos compiladores: permitem gerar código máquina mais eficiente; geram programas independentes (o compilador não tem de estar presente durante execução) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 11 / 25

Cronologia de algumas linguagens 1956 Fortran I 1958 Lisp 1960 Cobol, Algol 60 1964 PL/I 1968 Smalltalk 1970 Pascal, Prolog 1974 Scheme 1976 Fortran 77, ML 1978 C (K&R) 1980 Smalltalk 80 1982 Ada 83 1984 Common Lisp, C++, SML 1986 Eiffel, Perl, Caml 1988 Tcl 1990 Fortran 90, Python, Java 1994 Ruby, Perl 5 1995 JavaScript 1996 OCaml 1998 Scheme R5RS, C++(ISO), Haskell 98 2000 Python 2.0, C# 2004 C# 2.0(beta), Java 2 (beta) 2008 Python 3.0 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 12 / 25

Porquê tantas linguagens? Diferentes níveis de abstração: nível mais alto: mais próximo da formulação dos problemas; facilita a programação, deteção e correção de erros nível mais baixo: mais próximo da máquina; potencialmente mais eficiente Diferentes tipos de problemas: cálculo numérico: Fortran, C, C++ sistemas operativos: C, C++ sistemas críticos: Ada, C, C++ sistemas web: Java, JavaScript, Ruby, Python Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 13 / 25

Porquê tantas linguagens? (cont.) Diferentes paradigmas: imperativo: Algol, Pascal, C funcional: Lisp, Scheme, ML, OCaml, Haskell lógico: Prolog orientado a objectos: Smalltalk, C++, Java, C# Preferências subjectivas (estilo, elegância, legibilidade) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 14 / 25

A linguagem Python Linguagem de alto nível Sintaxe simples: fácil de aprender Pode ser usada em Windows, Linux, FreeBSD, Mac OS, etc.... Implementação standard distribuida como código livre Suporta programação procedimental e orientada a objectos Muitas bibliotecas disponíveis Muito utilizada: Google, Microsoft, Dropbox, NASA, Lawrence Livermore Labs, Industrial Light & Magic... Sítio oficial http://www.python.org Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 15 / 25

A linguagem Python Python é implementado com um interpretador híbrido: programa Python é compilada para um código intermédio mais simples (byte-code); o byte-code é executado por um interpretador próprio. Vantagens: fácil de usar interativamente fácil testar e modificar componentes mais eficiente do que um interpretador clássico Desvantagem: não é tão eficiente como uma linguagem compilada convencional (ex: C, C++, Fortran) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 16 / 25

Utilização interativa Executando python3 num terminal podemos escrever comandos Python e ver os resultados imediatamente. Python 3.2.3 (default, Jul 5 2013, 08:29:02) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 1+1 2 >>> print("ola, mundo!") Ola, mundo! >>> Ctrl-D ( end-of-file ) ou quit() para terminar. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 17 / 25

Utilização com um script Em alternativa podemos escrever um programa completo num ficheiro de texto (script) e executar de uma só vez. programa.py print("ola, mundo!") print("1 + 1 = ", 1+1) Executamos no terminal python3 programa.py e obtemos: Ola, mundo! 1 + 1 = 2 Convenção: ficheiros de programas Python têm extensão.py Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 18 / 25

Utilização com um script (cont.) A forma interativa é usada para testar pequenas partes de código. Devemos escrever programas com mais do que algumas linhas num script. Ambientes de desenvolvimento como o IDLE e o IEP combinam: uma janela para testes interativos; uma ou mais janelas para scripts (segue-se uma demonstração... ) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 19 / 25

Usar Python como uma calculadora Operadores aritméticos básicos: adição e subtração + - multiplicação e divisão * / exponenciação ** parênteses ( ) Números inteiros e fracionários: 42-7 3.1416 Expressões incorretas: SyntaxError Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 20 / 25

Usar Python como uma calculadora (cont.) Prioridade entre os operadores (ordem de cálculo): 1 parêntesis ( ) 2 exponenciação ** 3 multiplicação e divisão * / 4 soma e subtração + - Operadores da mesma prioridade agrupam à esquerda. Exemplos: >>> 1+2-3+4 4 >>> 1+2-(3+4) -4 >>> 2**3*4+1 33 >>> 2**3*(4+1) 40 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 21 / 25

Funções matemáticas Muitas funções e constantes matemáticas estão disponíveis no módulo math. Para usar devemos começar por importar o módulo. >>> import math Os nomes das funções começam com prefixo math : >>> math.sqrt(2) 1.4142135623730951 >>> math.pi 3.141592653589793 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 22 / 25

Funções matemáticas (cont.) Algumas funções e constantes do módulo math: raiz quadrada sqrt funções trignométricas sin, cos, tan funções trignométricas inversas asin, acos, atan, atan2 exponencial e logaritmos exp, log, log10 e, π e, pi Para obter mais informação: >>> help(math) informação geral >>> help(math.log) específica sobre uma função Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 23 / 25

Tipos Os valores em Python são classificados em diferentes tipos. Algumas operações só são possíveis com determinados tipos: >>> "Ola mundo!" + 42 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can t convert int object to str Tipos básicos tipo exemplos inteiros int 1-33 29 vírgula-flutuante float 1.0-0.025 3.14156 cadeias de texto str "Ola mundo!" ABC 1.23.99 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 24 / 25

Tipo de um resultado No interpretador de Python podemos usar type(...) para obter o tipo dum resultado: >>> (1+2+3)*5-1 29 >>> type((1+2+3)*5-1) <class int > >>> type(1.234) <class float > >>> type( ABC ) <class str > Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 25 / 25