Raciocínio Computacional com Python
PyLadies Teresina
Raciocínio
Computacional:
Habilidades
Computational Thinking
Evolução do Conhecimento
Raciocínios:
Lógico-Matemático: Computacional:
● Abstrações; ● Processo de resolução de
● Ferramentas. problemas;
● Abstrações e ferramentas
matemáticas.
Conceitos para Raciocínio Computacional
● Recursão, divisão e conquista, composição;
● Redução, transformações de problemas;
● Diferentes abstrações para representar a realidade;
● Ver dados como programas e programas como dados;
● Diferentes modelos de computação;
● Possibilidades/limites do computador/da computação.
Vantagem:
Somos estimulados a pensar em coisas que antes eram
inimagináveis!
Vamos pensar como um cientista da
computação?
Solucionar Problemas
Algoritmo
Uma sequência de passos lógicos e finitos para a resolução de um problema.
A linguagem de programação Python
● Linguagem de alto nível;
● Interpretada;
Interpretadores x Compiladores
Generalização de um programa
● Entrada;
● Saída;
● Lógica e matemática;
● Execução condicional;
● Repetições.
O que é depuração?
É encontrar e corrigir erros no programa. Também conhecido como debugging.
Erros
● Erros de sintaxe;
● Erros de semântica;
● Erros de execução;
Erros de Sintaxe
Se refere à estrutura de um programa e as regras sobre essa estrutura.
Erros de Semântica
Se refere a lógica do seu programa
Erros de Execução
Também conhecido como runtime errors ou exceções e só aparecem quando
executa o programa.
Depuração experimental
Embora possa ser frustrante, depurar é uma das partes intelectualmente mais
ricas, desafiadoras e interessantes da programação.
Ling. Formais x Ling.Naturais
Nosso primeiro Hello World em Python
Variáveis, Expressões e Comandos
Variáveis e tipos de dados:
● Int;
➢ Função type( );
● Float;
➢ Função para conversão de
● Str;
valores;
● Bool.
Palavras Reservadas
and - as - assert - break - class - continue - def - del - elif - else - except - exec
finally - for - from - global - if - import - in - is - lambda - nonlocal - not - or
pass - raise - return - try - while - with - yield - True - False - None
Comando e Expressão
Comando é uma instrução que o Expressão é uma combinação de
interpretador Python pode executar; valores, variáveis, operadores e
chamadas de funções e necessitam
Ex.: while, if, for, import. ser calculadas.
Ex.: x = x + 1
Operadores e Operandos
+ adição
- subtração
* multiplicação
** exponenciação
/ divisão
// divisão inteira
% resto
Operadores Relacionais
> maior que
>= maior igual que
< menor que
<= menor igual que
== igual
!= diferente
Operadores Lógicos
and e
or ou
not não
Input
● nome = input(“Digite um nome: ”)
● numero = int(input(“Digite um numero inteiro: ”))
● racional = float(input(“Digite um float: ”))
Regras de Precedência:
● Parênteses têm a mais alta precedência e podem ser usados para forçar que
uma expressão seja calculada na ordem que você deseja;
● Exponenciação tem a segunda precedência mais alta;
● Multiplicação e ambas as divisões têm a mesma precedência, que são mais
altas que adição e subtração, que também têm a mesma precedência.
Reatribuição
Atualização de Variáveis
● Incremento;
● Decremento.
Listas
● Valores em uma lista
[item 0, item 1, item 2, …, item n]
● Comprimento de uma lista;
len(lista)
● Acessando os elementos;
Listas
● Concatenação e repetição;
print([item 0, item 1] + [‘string’,
‘string’]
print([item] * quantidade)
● Fatias de listas (slice)
● Remoção em listas; del lista[indice]
Listas
● Objetos e referências;
● Listas são objetos imutáveis
lista 1 == lista 2
lista 1 is lista 2
print([item 0, item1, item 2 * 3] )
print([item 0, item1, item 2 ] *3 )
Listas
● Métodos de listas.
minha_lista = []
dir(minha_lista)
● Laço for nas listas
● List Comprehensions
[<expressão> for <item> in <sequência> if < condição>]
Estrutura de Decisão
Estrutura de Decisão
● Valores booleanos;
● Expressão booleana;
● Operadores Lógicos e Relacionais;
● Precedência.
Estrutura de Decisão
Execução condicional: Seleção binária
if EXPRESSÃO BOOLEANA:
COMANDOS_1
else:
COMANDOS_2
Estrutura de Decisão
Seleção unária: omissão do else
if EXPRESSÃO BOOLEANA:
COMANDOS_1
COMANDOS_2
Estrutura de Decisão
Condicionais Aninhados
if EXPRESSÃO BOOLEANA:
COMANDOS_1
else:
if EXPRESSÃO BOOLEANA:
COMANDOS_2
else:
COMANDOS_3
Estrutura de Decisão
Condicionais Encadeados
if EXPRESSÃO BOOLEANA:
COMANDOS_1
elif EXPRESSÃO BOOLEANA:
COMANDOS_2
else:
COMANDOS_3
Estrutura de Repetição
Laço for
for <var> in <lista>:
<bloco de código identado>
Estrutura de Repetição
Laço while
while <condição>:
<bloco de código identado>
Módulos
Módulo Math
Módulo Random
Olá, tartaruguinhas!
Vamos nos divertir agora
com a biblioteca turtles
para exercitar o raciocínio
computacional!
Que tal virarmos tartarugas
ninjas? hehehe =)
Embora seja muito divertido brincar com as tartarugas, o
propósito real é ensinar um pouco mais de Python e
desenvolver o nosso tema sobre raciocínio computacional
ou pensando como um cientista da computação.
Nosso primeiro programa com tartarugas
import turtle
janela = turtle.Screen()
pylady = turtle.Turtle()
pylady.forward(150)
pylady.left(90)
pylady.forward(75)
Atividade breve sobre a turtle
● Importe a turtle;
● Mude a cor da janela;
● Abra uma tartaruga;
● Mude a cor da tartaruga;
● Mude o tamanho do rabo da tartaruga;
● Faça um desenho;
● Feche a janela.
+ Atividade breve sobre a turtle
● Mude o programa para pedir ao usuário a cor da janela
e a cor da tartaruga;
● Peça ao usuário o tamanho do rabinho da turtle.
Instância: Um bando de tartarugas!
● Vamos inicializar várias
tartaruguinhas ao mesmo tempo e
atribuir características a elas
e ações.
Michelangelo, Raphael, Leonardo e
Donatello.
O laço for
Iteração simplifica o programa de tartaruga
import turtle for i in [0,1,2,3]:
janela = turtle.Screen() pylady.forward(50)
pylady = turtle.Turtle() pylady.left(90)
janela.exitonclick()
A função range
● range(parada);
● range(começo, parada);
● range(começo, parada, variação);
Observações
● Há 360 graus em uma circunferência. Convenções geométricas
estabelecem que 0 graus aponta para o leste;
● Sempre que você precisar desenhar uma forma fechada, como
um quadrado ou retângulo, é uma boa prática deixar a
tartaruga de volta ao estado original, apontando para a
mesma direção inicial;
● Um dos principais usos para comentários é deixar gravado o
seu agrupamento mental e as ideias grandes. Elas nem sempre
ficam explícitas no código.
Outras observações e métodos de Turtle
● Sentido horário e anti-horário;
● O rabo da tartaruga pode ser deixado para baixo ou para
cima;
● Mudar o corpo da tartaruga;
● Controlar a velocidade de animação [1-10];
● A tartaruga pode ser carimbada na janela.
Resumo de métodos de Turtle
Vamos pensar?
● Estrela;
● Sistema Solar.
Referências Bibliográficas
1.Como pensar como um cientista da computação
(https://panda.ime.usp.br/pensepy/static/pensepy/index.html#
listas)
2.Os básicos de Python
(http://cacho.la/julia/os-basicos-de-python)
3. Tutorial de Introdução ao Python - PET-Tele UFF
(http://www.telecom.uff.br/pet/petws/downloads/apostilas/PYT
HON.pdf)
"Um navio é seguro no porto. Mas não é para
isso que os navios foram construídos."
(Grace Hopper)
Obrigada <3