Fundamentos de Programação em Python
Diego Silveira Costa Nascimento
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do [email protected]
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