Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto...

32
Programação para Juristas PROF. MATHEUS SILVA 2019-09-25

Transcript of Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto...

Page 1: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Programação para JuristasP R O F . M A T H E U S S I L V A

2 0 1 9 - 0 9 - 2 5

Page 2: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Utilizando o Python• Tanto no Mac quanto no Windows: recomendável a utilização do editor de

texto Atom. Sempre guardar com extensão .py.

•Mac: terminal, ir para a pasta em que está o ficheiro .py, python3nome_ficheiro.py

•Windows: linha de comando, ir para a pasta em que está o ficheiro .py, pynome_ficheiro.py

• PythonAnywhere.com: fazer login em sua conta, no dashboard carregar em“browse files”, em seguida digitar um novo nome com extensão .py e depois“new file”.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 3: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Realizando debug em um programa

•Debug = depuração. Processo de encontrar a causa de um erro emum código.

•O processo de depuração pode envolver os seguintes passos:• Examinar o código por meio da leitura do mesmo, tentando descobrir

se ele está fazendo o que você deseja;• Fazer pequenas mudanças no código, incluindo a função print() em

partes distintas para que você veja o resultado do que o programa fazaté ali;

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 4: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Realizando debug em um programa

• Analisar o tipo de erro apresentado, buscando descobrir o que estasmensagens significam e vinculando as mensagens com algumaeventual causa;• Desfazer as mudanças recentes, dando um passo atrás para poder

depois dar dois passos à frente.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 5: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Possíveis tipos de erros no Python

• Erros de sintaxe: erros de “gramática”;

• Erros de lógica: quando a ordem das frases está errada;

• Erros de semântica: quando não há erros de sintaxe nem de lógica,mas mesmo assim o programa não faz aquilo que dele se espera.

•Geralmente o Python irá indicar a linha em que o erro ocorre e qualé o erro, mas isto nem sempre irá ocorrer exatamente como seespera.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 6: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Realizando debug em um programa

n = 5

while n > 0:

n = n - 1

print(n)

print(“Fim”)

n = 5

while n > 0:

print(n)

n = n - 1

print(“Fim”)

n = 5

while n > 0:

print(n)

n = n - 1

primt(“Fim”)

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 7: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Exercícios: primeiros programas “oficiais”

•Mostre a mensagem “Hello, World!” (sem aspas).

print(“Hello, World!”)

•Mostre os números de 5 a 1, um em cada linha, sem utilizar ocomando while.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 8: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Valores e tipos de valores

•Valores: elemento básico de qualquer programa em Python.

•Os valores podem ser de tipos diferentes.

•Até aqui trabalhamos com dois tipos diferentes: int e str.

•Há ainda outros dois tipos de valores no Python: float e boolean.

• Para descobrir o tipo de valor usa-se a função type().

• Exercício: indique o tipo de 123, o tipo de “Hello, World” e o tipo de 123.0.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 9: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Valores e tipos de valores

• type(“123”) == type(123)?

•Qualquer coisa que apareça entre aspas será str, mesmo números.

•print(type(123))

•print(type(“123”))

•Qual o resultado deste comando: print(1,000,000)?

•Acima: erro semântico – não há mensagem de erro, mas há erro!

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 10: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Variáveis

•Variável: um nome que se refere a algum valor.

•Uma declaração de atribuição cria novas variáveis e fornece valoresa elas, ou altera seu conteúdo após sua declaração:

•mensagem = “Todos estão começando a perceber de programação.”

•n = 74

•pi = 3.14159265359 ... Ou pi = 3,14159265359?

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 11: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Exercício – variáveis

•Declare duas variáveis, pi1 = 3.14159265359 e pi2 = 3,14159265359

•Mostre o conteúdo destas duas variáveis, bem como seus tipos.

pi1 = 3.14159265359pi2 = 3,14159265359print(pi1)print(pi2)print(type(pi1))print(type(pi2))

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 12: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Constantes

•Valores que nunca mudam ao longo de um programa.

•horas_do_dia = 24

•minutos_por_dia = horas_do_dia * minutos_por_hora

•minutos_por_hora = 60

•print(minutos_por_dia)

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 13: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Nomes de variáveis e/ou constantes

•Como dar nomes a variáveis ou a constantes?

• Não podem começar por números: 74alunos_prog_jur = 74;• Não podem ter caracteres especiais: 74alun@s_prog_jur = 74;• Não podem ser palavras reservadas: class = “74 alunos”.

•Recomendações:

• Não começar com sublinha/underscore: _• Não começar com maiúsculas.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 14: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Nomes de variáveis e/ou constantes

•Nomes de variáveis/constantes têm o tamanho desejado peloprogramador.

• esta_turma_de_programacao_para_juristas_tem_um_total_de_setenta_e_quatro_alunos_se_nao_estou_em_erro = 74

•Há distinção entre maiúsculas e minúsculas: spam != Spam != SPAM

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 15: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Nomes de variáveis e/ou constantes

•Geralmente utilizam-se nomes de variáveis e/ou de constantes quetenham significado para o programador.

bfhf8j = 40

j6hbyk = 3.75

ejE6Y4 = bfhf8j * j6hbyk

gwL2KS = ejE6Y4 * 4

print(gwL2KS)

horas_por_semana = 40

valor_por_hora = 3.75

valor_por_semana = horas_por_semana * valor_por_hora

valor_por_mes = valor_por_semana * 4

print(valor_por_mes)

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 16: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Operadores

•Operadores são utilizados para realizar processos computacionais.

•Alguns já foram apresentados: +, -, * e /.

print(7**3)print(7%3)print(7//3)

•Há ainda os operadores **, % e //.

print(7**3) – potênciaprint(7%3) – restoprint(7//3) – quociente

Atenção!print(1//60)print(1/60)

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 17: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Operadores

•O operador + é também utilizado para concatenar strings.

a = “Olá,”

b = “mundo!”

print(a + b)

A) Olá,mundo!

B) Olá, mundo!

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 18: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Operadores

•O operador * é também utilizado para “multiplicar” strings.

a = “Teste”

b = 3

print(a * b)

A) Traceback

B) TesteTesteTeste

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 19: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Operadores

•Cuidado ao tentar concatenar str com int:

a = “Teste” b = 3

print(a + b)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: can only concatenate str (not "int") to str

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 20: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Ordem dos operadores

•Qual o valor final de x?

x = 5

x = 3.9 * x * (1 - x)

print(x)

•Resultado: -78.0

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 21: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Ordem dos operadores

•Ordem de precedência:

•Parênteses: 2 * (3 - 1) = 4; (1 + 1) ** (5 - 2) = 8.

•Potência: 2 ** 1 + 1 = 3, não 4; 3 * 1 ** 3 = 3, não 27.

•Multiplicação, Divisão e Resto: 2 * 3 - 1 = 5, não 4; 6 + 4 / 2 = 8, não5.

•Adição e Subtração.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 22: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Ordem dos operadores

•Operadores com a mesma precedência são executados da esquerdapara a direita: 5 - 3 - 1 = 1, não 3.

•Recomendação: sempre colocar parênteses para deixar clara paravocê mesmo a ordem de precedência.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 23: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Conversão entre tipos

•O Python converte automaticamente int em float se estes tipos devalores estiverem na mesma expressão.

x = 200.0

y = 5

z = x / y

print(type(z))

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 24: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Conversão entre tipos

• Porém, há determinados momentos em que o programador querconverter propositadamente os tipos.

•A divisão de int por outro int sempre resulta em float – mas oprogramador pode querer (ou precisar) o resultado em int.

type(10 / 5)

x = int(10 / 5)

print(type(x))

• Pode também ser necessário converteruma str em float – quando trabalha-se comnúmeros com casas decimais, por exemplo.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 25: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Conversão entre tipos

• Pode ser necessário converter uma sequência de números emformato str para int (ou vice-versa).

x = “123”type(x)y = int(x)type(y)print(x == y)

a = 123type(a)b = str(a)type(b)print(a == b)

Porém:n = “Teste”p = int(n)Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: invalid literal for int() with base 10: 'Teste'

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 26: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Entrada de dados

• Para que o programa receba dados utiliza-se a função input().

•A função input() sempre retorna valores do tipo str.

entrada = input()

print(entrada)

print(type(entrada))

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 27: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Entrada de dados

• É recomendável dizer ao utilizador o que se espera dele.

nome = input(“Insira seu nome: ”)

print(nome)

•Não se esqueça! A função input() sempre retorna valores do tipostr. Se forem solicitados números ao utilizador deve-se convertê-losde str para int (ou float) antes de utilizá-los.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 28: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Comentários no programa

• É possível inserir comentários – pequenas notas – no meio docódigo para esclarecimentos a respeito do mesmo.

•Os comentários são ignorados pelo Python.

# pede o nome do utilizador

nome = input(“Digite seu nome: ”)

• Tudo que vier após o símbolo # será ignorado.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 29: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Comentários no programa

# pede o nome do utilizador

nome = input(“Digite seu nome: ”)

nome = input(“Digite seu nome: ”) # pede o nome do utilizador

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 30: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Comentários no programa

• Podem ser feitos comentários em várias linhas, bastando inserir trêsaspas duplas no início e ao final do trecho.

nome = input(“Insira seu nome: ”)"""Isto é um comentárioem várias linhas."""print(nome)

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 31: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Exercício 1

• Escreva um programa que solicite o nome do utilizador e, emseguida, lhe dê boas vindas.

Digite seu nome: Fulano

Bom dia, Fulano!

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM

Page 32: Programação para Juristas · 2019-09-25 · Utilizando o Python •Tanto noMacquantonoWindows:recomendávelautilizaçãodoeditorde textoAtom.Sempreguardarcomextensão.py. •Mac:terminal

Exercício 2

• Escreva um programa para solicitar ao utilizador o número de horastrabalhadas por semana e o valor pago por hora para calcular osalário bruto por mês. Desconsidere os cêntimos, se for o caso.

Digite o número de horas por semana: 37

Digite o valor pago por hora: 2.7

Salário bruto por mês: 399 euros.

© 2019 PROF. MATHEUS PASSOS – HTTPS://PROFMATHEUS.COM