Iniciação a Programação

Quem Sou eu?
Daniel Oliveira Araújo
- Graduado em Telemática pelo IFCE
- Instrutor da UTD desde 2016
- Iniciação à Programação
- Introdução à Banco de Dados
- Java com banco de Dados
- Instrutor E-Jovem entre 2015-2017
- Instrutor a distância do Projeto MedioTec no IFCE
- Integrante do educLab

O que é educlab?
educlab
- O Laboratório de Análise de Dados e Economia da Educação (educLAB) consiste em um programa de extensão da Universidade Federal do Ceará (UFC), nascido a partir de um grupo de estudos em economia da educação.
Alessandra Benevides - Professora adjunto da Universidade Federal do Ceará (UFC), no campus de Sobral. Exerce o cargo de coordenadora do curso de Ciências Econômicas e atua especialmente na área de Economia da Educação com avaliação de políticas públicas. Graduada em jornalismo pela UFC, concluiu o mestrado e o doutorado em Economia pelo Programa de Pós-Graduação em Economia (CAEN/UFC).
Membros Fundadores

George Gomes - Licenciado em filosofia pela Universidade Estadual do Ceará e especialista em Ensino de Filosofia pela Faculdade Farias Brito, é professor da rede estadual na Secretaria da Educação do Ceará (SEDUC) e membro fundador do educLAB. Desenvolve aplicações para o tratamento e análise de bases, dados e informações educacionais, para a produção de relatórios, gráficos e mapas.
MEMBROS FUNDADORES

Rafael Barbosa - Professor adjunto da Universidade Federal do Ceará (UFC), doutor em economia pelo CAEN/UFC. Pesquisa nas áreas de análise de dados, economia da educação e macroeconomia. Pesquisador Junior do Centro de Avaliação de Políticas Públicas do IPECE (CAPP). Membro fundador do educLAB.
MEMBROS FUNDADORES

Zilania Mariano - Professora adjunto da Universidade Federal do Ceará (UFC) e vice coordenadora do curso de ciências econômicas, no campus de Sobral. Doutora em economia pelo CAEN/UFC. Pesquisa nas áreas de avaliação de políticas públicas, economia da educação e mercado de trabalho. Pesquisadora Junior do Centro de Análise de Dados e Avaliação de Políticas Públicas (CAPP/IPECE).
MEMBROS FUNDADORES

Principais Objetivos
-
Desenvolver pesquisa na área de economia da educação;
-
Realizar projetos que visem contribuir para melhoria da educação em suas mais diversas etapas: ensino fundamental, médio e superior;
-
Capacitar estudantes, docentes e pesquisadores da UFC e de outras instituições em teorias, técnicas e instrumentos de análise de dados educacionais.
SAiba mais
-
Visite nossa home page: educlab.com.br
E Agora?
Quem são Vocês?
O que vamos ver no curso
- Introdução à Lógica
- Funcionamento do computador
- Conversão de Valor Binário
- Algorítimo e Fluxograma
- Python
- Variáveis e entrada de dados
- Funções e procedimentos
- Listas
Material de Apoio



Conceitos Básicos
Quanto maior a dificuldade, tanto maior o mérito em superá-la.
H. W. BEECHER
Introdução ao sistema de computação
- O ser humano sempre desenvolveu ferramentas para auxiliar nos seus trabalhos, a roda, a polia, pá, enxada, calculadora são exemplos de ferramentas que hoje evoluiu para a computação.
Computar
- Fazer cálculos, contar, efetuar operações aritméticas, sendo assim o COMPUTADOR seria um mecanismo que auxilia nesta tarefa.
Ábaco
- Considerado o primeiro computador, ele foi usado na Babilônia por volta de 2400 a.c, mas também foi utilizados em outras regiões através dos gregos, egípcios, e chineses e demais povos.

Blaise Pascal
- 1642 Pascal desenvolveu uma calculadora mecânica, ele simulava o funcionamento do ábaco através de rodas dentadas.

Memória
- Em 1800 foi desenvolvido uma maneira de armazenar informações calculadas, foi criado o cartão perfurado.
Charles Babbage
É mais conhecido e, de certa forma, referenciado como o inventor que projetou o primeiro computador de uso geral, utilizando apenas partes mecânicas, a máquina analítica. Ele é considerado o pioneiro. Seu invento, porém, exigia técnicas bastante avançadas e caras na época, e nunca foi construído. Sua invenção também não era conhecida dos criadores do computador moderno.

Charles Babbage

Lord Byron
Foi um poeta britânico e uma das figuras mais influentes do romantismo. Entre os seus trabalhos mais conhecidos estão os extensos poemas narrativos Don Juan, A Peregrinação de Childe Harold e o curto poema lírico She Walks in Beauty.
Byron é considerado um dos maiores poetas britânicos, e permanece vastamente lido e influente.

Ada Lovelace
- Foi uma matemática e escritora inglesa. Hoje é reconhecida principalmente por ter escrito o primeiro algoritmo para ser processado por uma máquina, a máquina analítica de Charles Babbage. Durante o período em que esteve envolvida com o projeto de Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica. Por esse trabalho é considerada a primeira programadora de toda a história.
Ada Lovelace

Computadores eletrônicos
- Eletronic Numeric Integrator and Calculator (ENIAC), foi o primeiro computador eletônico. O seu desenvolvimento se iniciou em 1943 e foi concluido em 1946. Tinha função de calcular as trajetórias balísticas.
- O ENIAC tinha em torno de 18 mil válvulas, 70 mil resistores e 10 mil capacitores. Consumia cerca de 150 kW de potência, ocupando uma área de 1400 m².
Alan Turing
- Foi um matemático, lógico, criptoanalista e cientista da computação britânico. Foi influente no desenvolvimento da ciência da computação e na formalização do conceito de algoritmo e computação com a máquina de Turing, desempenhando um papel importante na criação do computador moderno. Foi também pioneiro na inteligência artificial e na ciência da computação. É conhecido como o pai da computação moderna.
Alan Turing
- Durante a Segunda Guerra Mundial, Turing trabalhou para a inteligência britânica em Bletchley Park, num centro especializado em quebra de códigos. Por um tempo ele foi chefe do Hut 8, a seção responsável pela criptoanálise da frota naval alemã. Planejou uma série de técnicas para quebrar os códigos alemães, incluindo o método da bomba eletromecânica, uma máquina eletromecânica que poderia encontrar definições para a máquina Enigma.
Alan Turing

Dica de Filme 01

A máquina de Turing
-
É um dispositivo teórico conhecido como máquina universal, concebido muitos anos antes de existirem os modernos computadores digitais. Num sentido preciso, é um modelo abstrato de um computador, que restringe-se apenas aos aspectos lógicos do seu funcionamento (memória, estados e transições), e não a sua implementação física. Numa máquina de Turing pode-se modelar qualquer computador digital.
Sistema de Numeração
Decimal
- São representados por dez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 sendo que pode realizar junção destes algarismos para representar números maiores.
Binário
- Também conhecido como de base 2, utiliza apenas os algorismos 0 e 1. Neste sistema os algorismo são chamados de dígitos binários ou bits.

Octal
- O sistema de numeração octal, ou de base 8, utiliza oito algorismo para sua representação (0, 1, 2, 3, 4, 5, 6 e 7).

Hexadecimal
- O sistema de numeração hexadecimal, ou de base 16, utiliza oito algorismo para sua representação (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E , F).
Sistema de numeração

Bits x Bytes
- Nas redes de computadores bits e bytes são unidades de dados transmitidos através de conexões de rede. Em outras palavras, podemos dizer que são unidades de medidas digitais. Por exemplo: na costura, a unidade de medida mais comum é centímetro. Na estrada, é quilômetros, nas TV’s, polegadas e nos meios digitais bits e bytes.
Bits
- O nome “bits” é uma abreviação para dígito binário (binary digit) em inglês, e ele é representado por sequências de 0 e 1. Códigos binários são a linguagem dos computadores e eles representam desde as mais básicas funções, até informações e dados que nós não vemos.
Bytes
- Assim como 100 centímetros formam 1 metro, 8 bits formam 1 byte. As combinações de 8 bits podem ser as mais diversas e um Byte pode representar um caractere, um número, um espaço ou um símbolo. Esse texto que você está lendo, por exemplo, na linguagem dos computadores apareceria como diversas sequências de zeros e uns, agrupadas de oito em oito.
Cuidado!!!


O que é lógica?
- Lógica trata da correção do pensamento. Como filosofia, ela procura saber por que pensamos assim e não de outro jeito. Com arte ou técnica, ela nos ensina a usar corretamente as leis do pensamento.
- Poderíamos dizer também que a Lógica é a arte de pensar corretamente e, visto que a forma mais complexa do pensamento é o raciocínio, a Lógica estuda ou tem em vista a correção do raciocínio.
Lógica no dia a dia
- Sei que o livro está no armário
- O armário está fechado
- Logo, concluo que tenho de abrir o armário para pegar o livro
Vamos brincar
- Se o semáforo com a luz vermelha é para o motorista parar e o verde para seguir, estando eu a pé para atravessar a rua então concluo que:
- Posso atravessar a rua com a luz vermelha.
- O semáforo tem duas luzes
- Só devo atravessar a rua com a luz verde
Vamos brincar
- Patos são animais. Patos têm duas patas. Logo:
- Todo o animal tem duas patas
- Patos têm duas patas
- Patos tem bico
Torre de Hanoi

Portas Lógicas
Portas Lógicas
- Todos os circuitos elétricos fazem uso das denominadas "portas lógicas", responsáveis pela representação física da aritmética e expressões binárias. As portas lógicas são consideradas as menores unidades encontradas no computadores, sendo formadas por componentes eletrônicos, em sua maioria transistores.
- As portas lógicas são dispositivos, ou circuitos lógicos, que possuem um ou mais sinais lógicos de entrada, resultando em apenas uma saída.
Portas Lógicas
- As portas lógicas trabalham com os onceitos da ágebra booleana, a qual é definida sobre um conjunto de dois elementos, denominados verdadeiro ou falso, ou 0 e 1.
Principais Portas
- Porta OR (OU) - Executa a soma booleana de duas ou mais entradas binárias.
- Porta AND (E) - Executa a multiplicação booleana de duas ou mais entradas binárias.
- Porta NOT - Conhecida como porta inversora, executa o complemento (negação) de uma variável binária, ou seja, um circuito inversor de sinais.
- Porta XOR (OU Exclusivo) - Representa um circuito que compara as entradas a fim de verificar se uma e somente uma delas é verdadeira.
Principais Portas
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Variavéis
Varavéis
-
São os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado.
-
Estas devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e às vezes um valor inicial.
-
Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis para calcular novos valores, na aula 6 iremos ver mais detalhes e a aplicação das mesmas em uma linguagem de programação.
Tamanho das Variaveis

Algoritmo
O que é algoritmo?
- Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica.
Exemplo
- Faça um algoritmo da saída da sala de convivência até a sala de aula da FEAAC.
Tipos de Algoritmos
- Os tipos de algoritmos mais usados são descrição narrativa, fluxograma e Pseudocódigo ou Portugol.
Descrição Narrativa
- Utiliza linguagem natural
- Vantagem: Não é necessário aprender nenhum conceito novo, é como estivéssemos falando ou escrevendo os detalhes de algo para outra pessoa.
- Desvantagem: Permite várias interpretações, dificultando transcrição para programa.
Ler dois números e calcular a média
- Ler os dois números.
- Calcular a média.
- Mostrar o resultado da média.
Fluxograma
- Utiliza elementos gráficos, que nos próximos tópicos abordaremos com mais detalhes este assunto.
- Vantagem: Entendimento de gráficos é mais fácil que de textos.
-
Desvantagem: Necessário aprender simbologia e não apresenta detalhes para transcrever
para programa.
Fluxograma
Pseudocódigo ou Portugol
- Utiliza uma linguagem com regras definidas com uma estrutura formal também conhecido como português estruturado.
- Vantagem: Transcrição para programa (linguagem de computador) é praticamente imediata.
- Desvantagem: Necessário aprender regras.
Pseudocódigo ou Portugol

Regras para a construção de um algoritmo
-
Usar somente um verbo por frase.
-
Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática.
-
Usar frases curtas e simples.
-
Ser objetivo.
-
Procurar usar palavras que não tenham sentido dúbio.
Fases
-
É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo.

Regras Básicas
-
Não utilizar espaços entre as letras ou caracteres especiais como acentos, símbolos (@#%&*?:/) entre outros.
-
Para identificar um algoritmo com duas palavras, por exemplo “calcular media“ usar o underline o correto ficaria calcular_media.
-
Não utilizar palavras reservadas como as que são utilizadas para representar ações especificas como ler, variavel, escrever no portugol ide as palavras reservadas são destacadas em negrito.
Regras Básicas
-
Não utilizar números no inicio da identificação do algoritmo como, por exemplo; “1exemplo” o correto seria “exemplo1”.
-
Usar nomes coerentes para identificação de algoritmos, nomes os quais possam identificar o que o algoritmo vai fazer.
Corpo do Algoritmo
-
No corpo do algoritmo deve ser escrito todos os passos para a resolução de problemas, como por exemplo;
-
Entrada de valores para as variáveis.
-
Operações de atribuição tais como lógicas e aritméticas.
-
Laços de repetição.
-
Exibição de resultados.
-
Brincadeira de Algoritmo
- Escreva um algoritmo que receba 2 números e ao final exiba o resultado da soma, subtração, multiplicação e divisão dos números lidos.
- Escreva um algoritmo que receba o ano atual, ano de nascimento de uma pessoa e mostre a sua idade.
Brincadeira de Algoritmo

Fluxograma
Fluxograma
- É um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo ou algoritmo, muitas vezes feito através de gráficos que ilustram de forma descomplicada a transição de informações entre os elementos que o compõem, ou seja, é a sequência operacional do desenvolvimento de um processo, o qual caracteriza: o trabalho que está sendo realizado, o tempo necessário para sua realização, a distância percorrida pelos documentos, quem está realizando o trabalho e como ele flui entre os participantes deste processo.

Simbologia

Bricadeira com fluxograma
- Refaça os exercícios da aula passada no formato de fluxograma.
ESTRUTURAS DE DECISÃO E SELEÇÃO
Comando If

Comando If - Else


Operadores Lógicos
- Expressões lógicas são aquelas que realizam uma operação lógica (ou, e, não, etc...) e retorna verdadeiro ou falso.

Exemplo
inicio
inteiro anoAtual
inteiro anoNasc
inteiro idade
logico amigoDono
ler anoAtual
ler anoNasc
amigoDono <-verdadeiro
idade <- (anoAtual - anoNasc)
escrever "A idade é: "
escrever idade
escrever "\n"
se idade>=18 e amigoDono então
escrever "Você pode entrar!"
senão
escrever "Vá pra casa criatura!!!"""
fimse
fimEstrutura de Repetição
Loop
- Segundo o dicionário Aurélio: "Trecho de programa executado repetidamente um número defi nido de vezes, ou até que uma condição seja satisfeita.”
Exemplo
inicio
real n1
real n2
real m
inteiro contador <- 1
enquanto contador <=5 faz
ler n1
ler n2
m <- (n1+n2)/2
escrever "Aluno "
escrever contador
escrever ": "
escrever m
contador <- contador+1
fimenquanto
fim
Fluxograma

Conceitos de Programação
Linguagem de programação
- É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sobre várias circunstâncias.
Linguagens de Baixo Nível
- São linguagens totalmente dependentes da máquina, ou seja, o programa que utiliza este tipo de linguagem não pode ser migrado ou utilizado em outras máquinas. Ao estar praticamente desenhado para aquele hardware, aproveitam ao máximo as características do mesmo.
Linguagem de máquina
- Ordena à máquina as operações fundamentais para seu funcionamento. Consiste na combinação de 0's e 1's para formar as ordens entendíveis pelo hardware da máquina.
- Esta linguagem é muito mais rápida que as linguagens de alto nível.
- A desvantagem é que são bastante difíceis de manejar e usar, além de ter códigos fonte enormes onde encontrar uma falha é quase impossível.
Assembler

Linguagens de alto Nível
- São aquelas que se encontram mais próximas à linguagem natural do que à linguagem de máquina. Estão dirigidas a solucionar problemas mediante o uso da Estruturas Dinâmicas de Dados.
- São estruturas que podem mudar de tamanho durante a execução do programa. Permitem-nos criar estruturas de dados que se adaptem às necessidades reais de um programa.
Linguagens de alto Nível
nome = input('Digite seu nome:')
print(nome)Principais Linguagens de Programação
Linguagem C
- Criada em 1972 nos Bell Telephone Laboratories por Dennis Ritchie com a finalidade de permitir a escrita de um sistema (UNIX), utilizando uma linguagem de alto nível, evitando o Assembly.
Exemplo
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf ("Hello world!\n");
return(0);
}Dennis Ritchie

Por favor não confudir!


Ritchie
Ritchie Valens
Razões para programar C
- Cobol - Processamento de Registros
- Pascal - Ensino de Técnicas de Programação
- Fortran - Cálculo Científico
Dica de Filme 2

Java
- Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferente das linguagens de programação convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um bytecode que é executado por uma máquina virtual. A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não é a sua única linguagem
James Gosling

Exemplo
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}C#
- É uma linguagem de programação interpretada multi-paradigma fortemente tipada, e, possuindo paradigmas de programação imperativa, funcional, declarativa, orientada a objetos e generica C# foi desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e Java. O código fonte é compilado para Common Intermediate Language (CIL) que é interpretado pela máquina virtual Common Language Runtime (CLR).
Anders Hejlsberg

Exemplo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, world!");
Console.ReadLine();
}
}
}PHP
- É uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web.
Rasmus Lerdorf

Exemplo
<?php
echo "Hello World!!!";
?>Exemplo
<!DOCTYPE html>
<html>
<body>
<h1>É hora do PHP!</h1>
<?php
echo "Hello World!!!";
?>
</body>
</html>Python
- É uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991.
Guido van Rossum

Exemplo
print('Hello World')O nosso curso será de?






Python

Senta que lá vem história
História
- A linguagem foi criada em 1990 por Guido van Rossum, no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda
(CWI) e tinha originalmente foco em usuários como físicos e engenheiros. O Python foi concebido a partir de outra linguagem existente na época, chamada ABC.
Principais Características
- Além de ser uma linguagem de alto nível, ela possui uma tipagem dinâmica, é orientada a objetos, permite que o código seja organizado por classes e possui a característica peculiar de utilizar a identação do código para definir a estrutura de dados, ou seja, enquanto outras linguagens utilizam identação para organização do código, em python ela é vital para o correto funcionamento dos scripts.
Interpretador
- Python é tanto uma linguagem interpretada quanto uma linguagem compilada. Um compilador traduz linguagem Python em linguagem de máquina - código Python é traduzido em um código intermediário que deve ser executado por uma máquina virtual conhecida como PVM (Python Virtual Machine).
Interpretar X Compilar
Interpretar X Compilar

Download
- Python já vem instalado nos sistemas Linux e Mac OS mas será necessário fazer o download da última versão (Python 3.6). O Python não vem instalado por padrão no Windows e o download deverá ser feito no site https://www.python.org/
Objetivos
- Python é uma linguagem de propósito geral. Muitas vezes precisamos lidar com tarefas laterais: buscar dados em um banco de dados, ler uma página na internet, exibir graficamente os resultados, criar planilhas etc. E Python possui vários módulos prontos para realizar essas tarefas.
Onde a linguagem é usada




Quebrando a maldição
print('Olá, mundo!')Atividade
- Altere o programa para imprimir seu nome.
- Altere seu programa para imprimir duas linhas de código utilizando a função print() .

VARIÁVEIS E TIPOS EMBUTIDOS
Função type( )
- Tem função de identificar se um valor é uma string ou um número inteiro.

String
- Ao colocarmos um valor dentro de aspas simples ou duplas, o python interpreta como uma string

Números complexos
- São definidos por dois valores: a parte real e a parte imaginária. É escrito na seguinte forma real + img j

Variáveis
- Podemos pedir para o Python lembrar de um valor que queiramos utilizar em outro momento do
programa. O Python vai guardar este valor em uma variável. Variável é um nome que faz referência a
um valor. - Um comando de atribuição (o sinal de igualdade = ) cria uma nova variável e atribui um valor a ela.
Variáveis
mensagem = 'oi, python'
numero = 5
pi = 3.14
print (mensagem)
print (numero)
print (pi)Nomes de Variáveis
- Programadores escolhem nomes para variáveis que sejam semânticos e que ao mesmo tempo
documentem o código. Esses nomes podem ser bem longos, podem conter letras e números. - É uma convenção entre os programadores Python começar a variável com letras minúsculas e utilizar o underscore ( _ ) para separar palavras como: meu_nome, numero_de_cadastro, telefone_residencial.
- Esse padrão é chamado de snake case. Variáveis também podem começar com underscore ( _ ) mas
deve ser evitado e utilizado em casos mais específicos.
Operadores Aritméticos
| Operador | Função |
|---|---|
| + | Soma |
| - | Subtração |
| * | Multiplicação |
| / | Divisão |
| % | Módulo |
| // | Divisão inteira |
| ** | Exponenciação |
Concatenação
- O operador + também funciona com strings de uma maneira diferente dos números. Ele funciona concatenando strings, ou seja, juntando duas strings:
texto1 = 'oi'
texto2 = ' Python'
texto1 + texto2
Concatenação
- O operador * também funciona com strings, multiplicando seu conteúdo por um inteiro. Vamos
checar esse resultado:
texto1 = 'Penny'
Penny * 3
Entrada de Dados
- O Python possui uma função que captura a entrada de valores: a função input() . Quando essa função é chamada, o programa para e espera o usuário digitar alguma coisa. Quando o usuário aperta a tecla ENTER , o programa processa e imprime o valor digitado em forma de string:
entrada = input('Digite qualquer coisa: ')
print(entrada)Operadores de comparação
- Não são operadores aritméticos, mas operadores que realizam comparações e retorna um valor booleano.
| Operação | Descrição |
|---|---|
| a == b | a igual a b |
| a != b | a diferente de b |
| a < b | a menor do que b |
| a > b | a maior do que b |
| a <= b | a menor ou igual a b |
| a >= b | a maior ou igual a b |
Operadores de comparação
| Operação | Descrição |
|---|---|
| a is b | True se a e b são idênticos |
| a is not b | True se a e b não são idênticos |
| a in b | True se a é membro de b |
| a not in b | True se a não é membro de b |
Vamos testar
x = [1, 2, 3]
y = [1, 2, 3]
x == y
x is y
Comando if
Comando if
- Serve para alterar o fluxo de execução de um programa em python baseado no valor, verdadeiro ou falso, de uma expressão lógica.
if chute == numero:
print('Você acertou')
else:
print('Você errou')Comando elif
if (numero_secreto == chute):
print('Você acertou!')
elif (chute > numero_secreto):
print('Você errou! O seu chute foi maior que o número secreto')
elif (chute < numero_secreto):
print('Você errou! O seu chute foi menor que o número secreto')Laços
While
- Assim como o if , recebe uma condição, mas no if executa o código apenas uma vez e o while encerra somente no caso que condição seja verdadeira ele encerra
x = 5
while(x > 1):
print(x)
x = x - 1
O que poderá acontecer?
x = 5
while(x > 1):
print(x)For
- Uma outra opção de loop é o for, no qual ele automaticamente ele faz incrementos com o auxília da função range
for rodada in range(1,10):
print(rodada)
Vamos brincar?
Jogo da adivinhação
- Desenvolva uma aplicação no qual o usuário escreva um número e tente adivinhar o número correto. O usuário terá apenas três tentativas e terá o seguinte retornos:
- Você acertou
- Você errou! Você digitou um número maior
- Você errou! Você digitou um número menor
Estrutura de Dados
Sequências
- São containers, um tipo de dado que contém outros dados. Existem três tipos básicos de sequência: list (lista) , tuple (tupla) e range (objeto de intervalo). Outro tipo de sequência famoso que já vimos são as strings que são sequências de texto.
- Sequências podem ser mutáveis ou imutáveis. Sequências imutáveis não podem ter seus valores
modificados. Tuplas, strings e ranges são sequências imutáveis, enquanto listas são sequências mutáveis.
Listas
- Listas são coleções de dados em Python que agrupam um conjunto de elementos. Listas podem conter strings, valores numéricos e até mesmo outras listas.
frutas_citricas = ['laranja', 'acerola', 'abacaxi', 'tangerina']
print(frutas_citricas)
numeros_pares = [2,4,6,8,10]
print(numeros_pares)Máximo e mínimo
- Podemos verificar o mínimo com min e o máximo com max. Na lista de numeros_pares podemos utilizar essas funções para verificar o seus valores máximo e mínimo:
numeros_pares = [2,4,6,8,10]
print(numeros_pares)
min(numeros_pares)
max(numeros_pares)Índice
- Para acessar um valor específico, podemos acessá-lo através do seu índice (posição). O primeiro elemento da lista possui índice 0, o segundo possui índice 1 e assim por diante.
numeros_pares = [2,4,6,8,10]
print(numeros_pares[3])
print(numeros_pares[1])Índice
- Para modificar um valor, basta usar o operador de atribuição em uma determinada posição:
numeros_pares = [2,4,6,8,10]
numeros_pares[3] = 60
numeros_pares[1] = 40
print(numeros_pares[3])
print(numeros_pares[1])Índice
- É possível saber o tamanho da lista com a função len e verificar se determinado valor está
guardado nela com o comando in :
numeros_pares = [2,4,6,8,10]
numeros_pares[3] = 60
numeros_pares[1] = 40
print(numeros_pares[3])
print(numeros_pares[1])
len(numeros_pares)
14 in numeros_pares
60 in numeros_pares
IndexError
- Aparece quando tentamos acessar um valor em uma lista no qual não existe no indice.
guardado nela com o comando in :
numeros_pares = [2,4,6,8,10]
print(numeros_pares[3])
print(numeros_pares[6])
Métodos para listas
| Método | Uso |
|---|---|
| lista.append(x) | Insere o elemento x no final da lista. |
| lista.insert(i,x) | Insere o elemento x na posição i. |
| lista.extend(L) | Insere todos os elementos da lista L no final da lista. |
| print lista.index(x) | Imprime a posição da primeira ocorrência do elemento x na lista. |
| lista.remove(x) | Remove o primeiro elemento cujo valor seja igual a x. |
Tuplas
- Uma tupla é uma lista imutável, ou seja, uma tupla é uma sequência que não pode ser alterada depois de criada. Uma tupla é definida de forma parecida com uma lista com a diferença do delimitador.
Enquanto listas utilizam colchetes como delimitadores, as tuplas usam parênteses:
dias = ('domingo', 'segunda', 'terça', 'quarta')
Tuplas
- Como são imutáveis, uma vez criadas não podemos adicionar nem remover elementos de uma tupla. O método append( ) da lista não existe na tupla.
- Quando é necessário armazenar uma coleção de dados que não pode ser alterada, prefira usar tuplas a listas. Outra vantagem é que tuplas podem ser usadas como chaves de dicionários.
Range
- É um tipo de seqüência imutável de números e é comumente usado para looping de um número específico de vezes em um comando for já que representam um intervalo. O comando range gera um valor contendo números inteiros sequenciais, obedecendo a sintaxe:
range(inicio, fim)
sequencia = range(1, 3)
print(sequencia)Range
- O range não imprime os elementos da sequência, ele apenas armazena seu início e seu final. Para imprimir seus elementos precisamos de um laço for :
for valor in range(1, 3):
print(valor)Conjuntos
- Diferente de uma sequência, é uma coleção não ordenada e que não admite elementos duplicados.
frutas = {'laranja', 'banana', 'uva', 'pera', 'laranja'}Exemplo
a = set('abacaxi')
b = set('abacate')
print(a)
print(b)
print('A diferença do conjunto A com o conjunto B é: ', a -b)
print('A união do conjunto A com o conjunto B é: ', a | b)
print('A interceção do conjunto A com o conjunto B é: ', a & b)Dicionários
- É outra estrutura de dados em Python e seus elementos, como os conjuntos, não são ordenados.
- São estruturas poderosas e muito utilizadas já que podemos acessar seus elementos através de chaves e não de sua posição. Em outras linguagens este tipo é conhecido como "matrizes associativas".
- Dicionários são pares de chave-valor não ordenados.
Dicionários
pessoa = {'nome': 'João', 'idade': 25, 'cidade': 'São Paulo'}Dicionários
- O que será que acontece se tentarmos acessar seu primeiro elemento?

Dicionários
- Não é possível acessar um elemento de um dicionário por um índice como na lista. Devemos acessar por sua chave:

Dicionários
- Para adicionar algum elemento:


Vamos brincar?
Jogo da forca
- Desenvolva uma aplicação no qual o usuário irá tentar adivinhar a palavra secreta, um jogo chamado de FORCA. Nesse programa deve informar que:
- Você ganhou
- Você errou e mostrar quantas tentativas lhe resta
Funções
O que são funções?
- O conceito de função é um dos mais importantes na matemática. Em computação, uma função é uma sequência de instruções que computa um ou mais resultados que chamamos de parâmetros.
def nome_da_função(parâmetros):
métodosExemplo
def dados(nome, idade=None):
print('nome:{}'.format(nome))
if(idade is not None):
print('idade: {}'.format(idade))
else:
print('idade não informada')Função com Retorno
- No lugar de apenas calcular, uma função pode retornar um valor. No Python, é utilizado o comando return:
def dados(nome, idade=None):
if(idade is not None):
return ('nome: {} \nidade: {}'.format(nome, idade))
else:
return ('nome: {} \nidade: não informada'.format(nome))Programação Orientada a Objeto
O que é?
- Diz respeito a um padrão de desenvolvimento que é seguido por muitas linguagens, como C# e Java.
- A Programação Estruturada, que era muito utilizada há alguns anos, principalmente com a linguagem C, cada linha de código é executada após a outra, sem muitos desvios.
- Na programação orientada a objetos é caracterizado pelo reaproveitamento de códigos.
Classe
- É a essência da Programação Orientada a Objeto. A classe define a natureza de objeto. Dentro da classe são definidos dados e o código que age sobre eles.
- Uma classe é um modelo que define a forma de um objeto. ela especifica tanto os dados quanto o código que operará sobre eles. Uma classe é usada pelo python para construir objetos.
Classe

Objeto

Classe

Objeto

Classe
Class Veiculo:
passageiros: int
tanque: float
consumo:floatObjeto
Especificação de um veículo
Fusca
Passageiros: 5
Tanque: 120L
Consumo: 2km/l
Camaro
Passageiros: 2
Tanque: 240L
Consumo: 10km/l
Referência
- Quando declaramos uma variável para associar a um objeto, na verdade, essa variável não guarda o objeto, e sim uma maneira de acessá-lo, chamada de referência.
Memória
Veiculo
Veiculo
fusca
camaro
Atividade
- Dentro da pasta curso_python crie uma pasta(diretório) chamada conta.
- crie um arquivo chamado conta.py
- Defina a classe conta.
class Conta:
numero
titular
saldo
limiteModificadores de Acesso
Métodos de Classe
- Em linguagens como Java e C# basta declarar que os atributos não podem ser acessados de fora da classe utilizando a palavra chave private. Em orientação a objetos, é prática quase que obrigatória proteger seus atributos com private.
- Cada classe é responsável por controlar seus atributos, portanto ela deve julgar se aquele novo valor é válido ou não. E esta validação não deve ser controlada por quem está usando a classe e sim por ela mesma, centralizando essa responsabilidade e facilitando futuras mudanças
no sistema.
Métodos de Classe
- O Python não utiliza o termo private, que é um modificador de acesso e também chamado de modificador de visibilidade. No Python inserimos dois underscores ('__') ao atributo para adicionar esta característica:
class Conta:
__numero
__titular
__saldo
__limiteMétodos de Classe
- O interpretador acusa que o atributo não existe na classe. Mas isso não garante que ninguém possa acessá-lo. No Python não existem atributos realmente privados, ele apenas alerta que você não deveria tentar acessar este atributo, ou modificá-lo. Para acessá-lo, fazemos:
conta.Conta__titularModificadores de Acesso
| Modificadores | Definição |
|---|---|
| Public | Modificador de acesso mais permissivo que existe. Atributos, métodos e classes declarados como public são acessíveis por qualquer classe |
| Private | É o modificador de acesso mais restritivo que existe. Atributos e métodos declarados como private são acessíveis somente pela classe que os declara. |
| Protected | É um modificador de acesso um pouco mais permissivo que o private. Atributos e métodos declarados como protected são acessíveis pela classe que os declara, suas subclasses em outros pacotes e outras classes dentro do mesmo pacote. |
Encapsulamento
- É uma ideia de 'esconder' todos os membros de uma classe, além de esconder como funcionam as rotinas (no caso métodos) do nosso sistema.
- É fundamental para que seu sistema seja suscetível a mudanças: não precisamos mudar uma regra de negócio em vários lugares, mas sim em apenas um único lugar, já que essa regra está encapsulada.
Getters e setters
- são usados em muitas linguagens de programação orientada a objetos para garantir o princípio do encapsulamento de dados. O encapsulamento de dados é visto como o agrupamento de dados com os métodos que operam nesses dados. Esses métodos são, obviamente, o getter para recuperar os dados e o setter para alterar os dados.
Getters e setters
def get_saldo(self):
return self._saldo
def set_saldo(self, saldo):
self._saldo = saldo
def get_titular(self):
return self._titular
def set_titular(self, titular):
self._titular = titularProperty
- É uma solução mais estilosa do python, no Java recomenda-se que as pessoas usem somente atributos privados com getters e setters, para que possam alterar a implementação sem precisar alterar a interface.
Property
@property
def saldo(self):
return self._saldo
@saldo.setter
def saldo(self, saldo):
if(self._saldo < 0):
print("saldo não pode ser negativo")
else:
self._saldo = saldoHerança e Polimorfismo
Herança
- Adiciona a capacidade de uma classe filha estender/herdar atributos e métodos de uma classe mãe.
Herança
Classe mãe
Classe filha
Herança
class Gerente(Funcionario):
def __init__(self, senha, qtd_funcionarios):
self._senha = senha
self._qtd_funcionarios = qtd_funcionarios
def autentica(self, senha):
if self._senha == senha:
print("acesso permitido")
return True
else:
print("acesso negado")
return FalseHerança
class Gerente(Funcionario):
def __init__(self, senha, qtd_funcionarios):
Funcionario.__init__(nome, cpf, salario)
self._senha = senha
self._qtd_funcionarios = qtd_funcionarios
def autentica(self, senha):
if self._senha == senha:
print("acesso permitido")
return True
else:
print("acesso negado")
return FalsePolimorfismo
- É a capacidade de um objeto poder ser referenciado de várias formas.
- Na herança, vimos que todo Gerente é um Funcionário, pois é uma extensão deste. Podemos nos referir a um Gerente como sendo um Funcionário. Se alguém precisa falar com um Funcionário do banco, pode falar com um Gerente! Porque? Pois Gerente é um Funcionário. Essa é a semântica da herança.
The End!
Lógica de Programação com Python - Turma 01 educLAB
By pakato
Lógica de Programação com Python - Turma 01 educLAB
- 249