Fundamentos de Programação em Python -...

Preview:

Citation preview

Fundamentos de Programação em Python

Diego Silveira Costa Nascimento

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Nortediego.nascimento@ifrn.edu.br

23 de junho de 2017

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 2 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 3 / 43

Objetivos da Disciplina

Apresentar algumas metodologias de desenvolvimento de programas decomputador;Contribuir para a formação de bons programadores; eFormar profissionais com habilidade de desenvolver programas nosvariados nichos.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 4 / 43

Motivações em Estudar Programação

Atualmente temos um conjunto vasto de linguagens de programaçãodisponíveis para se desenvolver sistemas, sejam elas: Java, C/C++,Python, Ruby, PHP, Pascal, Fortran, Cobol, entre outras;Quase tudo ao nosso redor possui sistemas embarcados (celular,televisor, ar-condicionado, carro, entre outros); eEssa disciplina é de fundamental importância para que o aluno possase aprofundar em qualquer linguagem de programação que venha autilizar no futuro.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 5 / 43

O que é Python?

DefiniçãoÉ uma linguagem de script de propósito geral, podendo ser usada para criarqualquer tipo de software.

Foi concebido no final de 1989 por Guido van Rossum; eO nome Python teve a sua origem no grupo humorístico britânicoMonty Python.

Guido van Rossum Ícone

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 6 / 43

Motivações em Programar em Python

É uma linguagem fácil de ser aprendida;Possui uma sintaxe agradável;Possui implementações livres;É produtiva para desenvolver aplicações;É interativa; eO mercado de trabalho para programador vem utilizando cada vezmais Python em projetos de pequeno, médio e grande porte.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 7 / 43

Características

É uma linguagem interpretada;Os tipos das variáveis são determinados dinamicamente;Oferece tipos de alto nível;É orientada a objetos; eÉ multi-plataforma.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 8 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 9 / 43

Programa em Python

Um programa em Python pode ser escrito em qualquer editor de texto;O documento com o código fonte deve ser salvo com extensão .py;Para facilitar o desenvolvimento é comum utilizar-se um IDE(Integrated Development Environment); eO IDLE é o ambiente de desenvelvimento padrão.

Executando

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 10 / 43

Instrução de Saída

DefiniçãoA instrução de saída de dados é a instrução através da qual o computadorse comunica com usuário durante a execução do programa. Isso é feito,geralmente, através da exibição de alguma informação na tela.

Em Python existe apenas um comando para instrução de saída: print.

Saída de DadosExemplo

print('Oi , mundo!')

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 11 / 43

Comentários

DefiniçãoÉ uma estrutura da linguagem que permite ao desenvolvedor fazer umabreve explicação do código escrito.

Comentários são iniciados com #.

Exemplo

#Exemplo.py (linha ignorada pelo interpretador)#Autor: Diego

print('Testando ...')

ImportanteO que for escrito no bloco de comentário será ignorado pelo interpretador.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 12 / 43

Codificação dos Arquivos Fontes

Os códigos fontes em Python usam como padrão codificação ASCII;Para modificar o tipo de codificação, basta incluir no início do arquivo:

#-*- coding:UTF-8 -*-

Exemplo

#-*- coding:UTF -8 -*-

print('Utilizando a codificação UTF -8')

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 13 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 14 / 43

Variável

Uma variável representa uma posição de memória;Possui um nome e tipo;Seu conteúdo pode variar ao longo do tempo, durante a execução doprograma;Embora uma variável possa assumir diferentes valores, ela só podearmazenar um valor a cada instante; eNão existe limite para o número de variáveis em um programa; eCada variável criada ocupa um espaço de memória de acordo com seutipo e seu tamanho.

Ilustração

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 15 / 43

Declaração de Variáveis

Não é necessário declarar os tipos de variáveis; eA tipagem de Python é dinâmica;Devem ser declaradas inicialmente por letras (a–z, A–Z) ou sublinhado(_);Acentuação é permitida (não é recomendado); eÉ case sensitive (a 6= A).

Exemplosanomedata_nascimento

nota1_sexomediaGeral

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 16 / 43

Tipos de Variáveis

Definições

Tipo Descrição Exemplostr Cadeia de caracteres ’Python’ “Python” ” ’ Lin-

guagem de ProgramaçãoPython” ’

int Inteiro 42float Ponto flutuante 1.618bool Booleano True ou False

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 17 / 43

Operador de Atribuição

DefiniçãoO comando de atribuição é utilizado para conceder valores ou operações avariáveis.

Em python o operador de atribuição é o sinal de igual: = ;Do lado esquerdo ao operador de atribuição fica a variável à qual estásendo atribuído o valor; eA direita do operador pode-se escrever qualquer expressão (constantes,variáveis ou expressões numéricas).

Exemplosnome = ’Diego’idade = 30

Nota_1 = 8.5matriculado = True

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 18 / 43

Instrução de Entrada

DefiniçãoÉ o meio pelo qual as informações (mais especificamente os dados) sãotransferidas pelo usuário ou pelos níveis secundários de memória aocomputador.

Python possui o comando para instrução de entrada via teclado:input().

Entrada de DadosExemplo

nome = input('Digite seu nome:')

print(nome)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 19 / 43

Operadores Aritméticos

DefiniçãoA aritmética é o ramo da matemática que lida com números e com asoperações possíveis entre eles.

Os operadores aritméticos em python são:+ (Adição);- (Subtração);* (Multiplicação);/ (Divisão);// (Divisão inteira);% (Resto); e** (Potência).

Exemplos10 + 2 = 125 - 2 = 32 * 3 = 6

5 / 2 = 2.55 // 2 = 25 % 2 = 1

2 ** 3 = 8

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 20 / 43

Demonstração do Uso de Operador Aritmético

Exemplo

#-*- coding:UTF -8 -*-

a = int(input('Digite um número inteiro:'))b = int(input('Digite um número inteiro:'))

c = a + b

print('Resultado =',c)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 21 / 43

Expressão Aritmética

DefiniçãoUma expressão constitui-se em um conjunto de variáveis e/ou valores,separados por caracteres especiais, que indicam as operações que devem serexecutadas.

ImportanteOs operadores devem obedecer umaordem de precedência:

1 Parênteses;2 Potenciação;3 Multiplicação, Divisão e Resto; e4 Adição e subtração.

Exemplo

a = 2b = 8c = a + b / 2

print(c)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 22 / 43

Teste de Mesa

DefiniçãoO teste de mesa simula a execução de um algoritmo sem utilizar ocomputador, empregando apenas papel e caneta.

Os passos necessários para realizar um teste de mesa são:

Identifique as variáveis envolvidas em seu algoritmo;Crie uma tabela com linhas e colunas, no qual corresponde,respectivamente, ao número de instruções observadas pelo teste demesa e é o número de variáveis envolvidas; eDe cima para baixo, preencha cada uma das linhas da tabela com onúmero da linha que identifica cada instrução, seguido dos valoresassumidos pelas variáveis do programa após a execução daquelainstrução.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 23 / 43

Teste de Mesa na Prática

Código Fonte

#-*- conding:UTF -8 -*-

nota1 = float(input('Digite a primeira nota:'))nota2 = float(input('Digite a segunda nota:'))

soma = nota1 + nota2media = soma / 2

print('A média =',media)

Teste de MesaLinha de código nota1 nota2 soma media Saída

2 5 ? ? ? Digite a primeira nota:3 5 8 ? ? Digite a segunda nota:4 5 8 13 ?5 5 8 13 6,56 5 8 13 6,5 Média = 6.5

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 24 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 25 / 43

Estrutura de Seleção

DefiniçãoTambém citado na literatura por Estrutura Condicional, é arepresentação de um ou mais comandos de decisão que são responsáveispor mudar o fluxo das instruções de um algoritmo em tempo de execução.

Python possui apenas uma estrutura de controle: if

Estruturaif condição:

Bloco de comandoselse:

Bloco de comandos

ImportanteO comando else não é obrigatório.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 26 / 43

Demonstração do If

Exemplo

#-*- coding:UTF -8 -*-

nota1 = float(input('Digite a primeira nota:'))nota2 = float(input('Digite a segunda nota:'))

soma = nota1 + nota2media = soma / 2

if media >= 7:print('Aluno aprovado!')

else:print('Aluno reprovado!')

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 27 / 43

Operadores Relacionais

DefiniçãoOs operadores relacionais estabelecem uma relação entre seus operandos.

As relações em python podem ser:

== (igual);!= (diferente);< (menor);<= (menor ou igual);> (maior); e>= (maior ou igual).

Exemplos100 == 100 (True)0 ! = 0 (False)5 > 2 (True)

0 < −50 (False)7 >= 10 (False)600 <= 600 (True)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 28 / 43

Operadores Lógicos

DefiniçãoOs operadores lógicos definem as maneiras como as relações podem serconectadas.

Os operadores lógicos em python podem ser:

not (negação lógica);and (e lógico); eor (ou lógico).

Exemplos(10 == 10) and (0 < 1) (True)not (0 ! = 0) (True)

(0 < −50) or (0 < 1) (True)(10 < 20) and (0 < −1) (False)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 29 / 43

Tabela-verdade

Construçãoa = b = print (a and b) print (a or b) print (not a)True True True True FalseTrue False False True FalseFalse True False True TrueFalse False False False True

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 30 / 43

Estrutura de Seleção Aninhada

DefiniçãoÉ uma estrutura para desvio de fluxo do programa formada pelo comandode decisão if /elif /else mais subestruturas de decisão.

Exemplo

#-*- coding:UTF -8 -*-

numero = int(input('Digite um número inteiro:'))

if numero > 0:print('Número positivo ')

elif numero < 0:print('Número negativo ')

else:print('O número digitado foi zero')

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 31 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 32 / 43

Estrutura de Repetição

DefiniçãoUma estrutura de repetição é uma estrutura de desvio do fluxo de controlepresente em linguagens de programação que realiza e repete diferentescomputações ou ações.

Python possui duas estruturas de repetição:while; efor.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 33 / 43

Estrutura While

DefiniçãoA construção while (também chamada repetição pré-testada) é a maisdifundida estrutura de repetição.

Estrutura do Whilewhile condição:

Bloco de comandos

Exemplo

i = 1while i <= 10:

print(i)i = i + 1

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 34 / 43

Comando Break em Python

DefiniçãoO comando break permite parar uma execução de uma instrução derepetição toda vez que o mesmo for invocado, ignorando, caso aindaexistam, outras instruções a serem executadas.

Exemplo

i = 1while(i <= 10):

print(i)if i == 5:

breaki = i + 1

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 35 / 43

Estrutura For

DefiniçãoA construção for, ou repetição com variável de controle, é uma estrutura derepetição que designa uma variável de controle para cada iteração dobloco, e uma operação de passo a cada iteração.

Estrutura do Forfor contador in sequência:

Bloco de comandos

Exemplo

for i in range (1 ,11):print(i)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 36 / 43

Ementa do Curso

1 Introdução

2 Estrutura de um Programa

3 Variavel

4 Estrutura de Seleção

5 Estrutura de Repetição

6 Subprograma

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 37 / 43

Função

DefiniçãoSão subrotinas (módulos ou métodos) de programas, capazes de executaruma tarefa definida pelo programador, que pode retorna ou não algumvalor. Os programas desenvolvidos com subprogramas são ditos modulares.

As principais vantegens são:

Melhor organização do programa;Reutilização de código em outras partes do programa; eFacilidade de manutenção.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 38 / 43

Função

Python possui uma estrutura para definição de função: def.

Estruturadef nome_da_função (argumentos):

Bloco de comandosreturn valor de retorno

AtençãoNem toda função precisa retornar valor.

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 39 / 43

Demonstração de Função I

Exemplo

def exibir_cumprimento ():print('Oi, mundo!')

exibir_cumprimento ()

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 40 / 43

Demonstração de Função II

Exemplo

#-*- coding:UTF -8 -*-

def exibir_cumprimento(nome):print('Oi, ',nome ,'!')

nome = input('Digite seu nome:')exibir_cumprimento(nome)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 41 / 43

Demonstração de Função III

Exemplo

def somar(a,b):return a + b

valor1 = float(input('Digite o primeiro valor:'))valor2 = float(input('Digite o segundo valor:'))

resultado = somar(valor1 ,valor2)

print('A soma de ',valor1 ,' + ',valor2 ,' = ',resultado)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 42 / 43

Recursividade

DefiniçãoÉ quando uma função refere-se a si própria durante a própria definição.

Exemplo

def contador(i):if (i > 1):

contador(i - 1)print(i)

contador (10)

Diego S. C. Nascimento (IFRN) Fundamentos de Programação 23 de junho de 2017 43 / 43