0% acharam este documento útil (0 voto)
20 visualizações20 páginas

Aula 3

Enviado por

Souza
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
20 visualizações20 páginas

Aula 3

Enviado por

Souza
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Universidade Federal de Minas Gerais

Departamento de Ciência da Computação

Programação de Computadores
Tipos e operadores lógicos em Python

Prof. José de Siqueira

2024/2

1 / 20
Variáveis e tipos em Python

Tipos básicos no Python: booleano (True e False), numérico


(int, float, complex), textuais ou string (str), sequências
binárias (bytes) e outros.
Tipos numéricos são representações binárias de decimais, no
caso de inteiros (int) e de reais (float).
A representação em binário do tipo int é exata, mas não é o
caso da representação binária do tipo float:
>>> .1+.2
0.30000000000000004
>>>

Isso não é um problema do Python, mas da representação


binária da base decimal em ponto flutuante.
Quais são os limites da representação binária de reais como
float?
2 / 20
Limites da representação binária de reais em
Python

Perguntemos ao Python:

>>> import sys


>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308,
max_exp=1024, max_10_exp=308,
min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=-307, dig=15, mant_dig=53,
epsilon=2.220446049250313e-16,
radix=2, rounds=1)
>>> sys.int_info
sys.int_info(bits_per_digit=30,
sizeof_digit=4)
>>>

3 / 20
O menor número representável em Python

O menor número representável em Python é 2**-1074:


>>> print(f'{2**-1074:.750e}')

4.940656458412465441765687928682213723650598026143
24764425585682500675507270208751865299836361635992
37979656469544571773092665671035593979639877479601
07818781263007131903114045278458171678489821036887
18636056998730723050006387409153564984387312473397
27316961514003171538539807412623856559117102665855
66867681870395603106249319452715914924553293054565
44401127480129709999541931989409080416563324524757
14786901472678015935523861155013480352649347201937
90268107107491703332226844753335720832431936092382
89345836806010601150616980975307834227731832924790
49825247307763759272478746560847782037344696995336
47017972677717585125660551199131504891101451037862
73816725095583738973359899366480994116420570263709
0279242767544565229087538682506419718265533447265625e-324
Esse número é exato, com 745 casas decimais!
4 / 20
O maior número representável em Python

O maior número representável em Python é 2**1023:


print(f'{2**1023:.307e}')
8.9884656743115795386465259539451236680898848947115
328636715040578866337902750481566354238661203768010
560056939935696678829394884407208311246423715319737
062188883946712432742638151109800623047059726541476
042502884419075341171231440736956555270413618581675
255342293149119973622969239858152417678164812112068608e+307

5 / 20
Variáveis em Python

As regras para definir os nomes de variáveis em Python são:


1. Nomes de variáveis devem começar com letras maiúsculas ou
minúsculas.
2. Python distingue entre nomes de variáveis com letras
minúsculas e maiúsculas em qualquer posição.
3. Nomes de variáveis podem ter algarismos, mas não podem
começar com eles.
4. Nomes de variáveis podem ter o símbolo _, inclusive no início
do nome.
Variáveis em Python podem ser de qualquer tipo e não é
preciso declará-las antes de usá-las.

6 / 20
Variáveis de tipo booleano

Exemplo de variáveis do tipo booleano:


>>> Fim = False
>>> aprovado = True
>>> print(Fim)
False
>>> print(aprovado)
True
>>>

7 / 20
Operadores de comparação

O tipo booleano dá o resultado verdadeiro (True) ou falso


(False) para a avaliação de operadores relacionais em Python:

Operador Operação Símbolo


== igual a =
> maior do quê >
< menor do quê <
!= diferente de 6=
>= maior ou igual a ≥
<= menor ou igual a ≤

8 / 20
Comparações e os tipos booleanos

O resultado de comparações dá um valor booleano:

>>> a = 1 # a recebe 1
>>> b = 2 # b recebe 2
>>> a == b # a é igual a b?
False
>>> a !=b # a é diferente de b?
True
>>> a <= b # a é menor ou igual a b?
True
>>> a <= a # a é menor ou igual a a?
True

9 / 20
Operadores de comparação e lógicos

Como “traduzir” para o português as seguintes comparações?

2≤3
0 > x > −∞
−1 ≤ y < 10

10 / 20
Operadores de comparação e lógicos

2 < 3 ou 2 = 3
0 > x e x > −∞
−1 < y ou − 1 = y e y < 10

11 / 20
Operadores de comparação e lógicos
Qual é a negação dos operadores de comparação?

não(2 > 3)

2≤3

não (0 < x < 100)

0 ≥ x ou x ≥ 100

não (10 > y ≥ −1)

10 ≤ y ou y < −1
12 / 20
Operadores lógicos em Python

As operações lógicas “E” (∧), “OU”(∨) e “NÃO”(¬) em Python


são, respectivamente, os seguintes operadores lógicos:
and, or e not

cujas definições são dadas pelas respectivas “tabelas de verdade”.

13 / 20
Tabelas de verdade dos operadores lógicos

Operação “E” (∧) Operação “OU” (∨)


(operador and) (operador or):

A B A∧B A B A∨B
F F F F F F
F V F F V V
V F F V F V
V V V V V V

Operação “NÃO” (¬)


(operador not):

A ¬A
F V
V F

14 / 20
Outros operadores lógicos

A implicação lógica é definida como:


A B A→B
F F V
F V V
V F F
V V V
Ela é um “açúcar sintático” para ¬A ∨ B.

Já a equivalência entre A e B,
A ↔ B,
é “açúcar sintático” para A → B ∧ B → A.

15 / 20
Negação de operadores lógicos

Teorema de De Morgan

A negação do “E” é o “OU” das negações:


¬ (A ∧ B) ↔ (¬ A ∨ ¬ B).
A negação do “OU” é o “E” das negações:
¬ (A ∨ B) ↔ (¬ A ∧ ¬ B).

16 / 20
Gerando tabelas de verdade em Python

Podemos gerar as tabelas de verdade em Python, com o


comando print():
print(" p q p E q ") #cabeçalho
p = False; q = False
print(p," ",q," ", p and q) #linha 1
p = False; q = True
print(p," ",q," ", p and q) #linha 2
p = True; q = False
print(p," ",q," ", p and q) #linha 3
p = True; q = True
print(p," ",q," ", p and q) #linha 4

17 / 20
Gerando tabelas de verdade com Python

Resultado:
p q p E q
False False False
False True False
True False False
True True True

18 / 20
Exercícios
1. Como expressar as seguintes expressões matemáticas usando
apenas >, <, = e operações lógicas básicas (OU, E e NÃO)?
1.1. x ≥ y.
1.2. x ≤ y.
1.3. x 6= y .
1.4. 0 ≤ x ≤ ∞.
1.5. x > 0 → y ≥ 0.
1.6. x ≤ 0 ↔ y ≥ 0.
2. Escreva as tabelas de verdade para as expressões acima.
3. Outra operação lógica importante é “OU EXCLUSIVO”,
também conhecido como “XOR” (⊗). A ⊗ B só é verdade se A
e B NÃO têm o mesmo valor de verdade.
3.1. Escreva a tabela de verdade da operação lógica “XOR”.
3.2. Expresse o “XOR” em termos dos operadores lógicos básicos
“E”, “OU” e “NÃO”.
4. Compare as tabelas de verdade em 3.1 com a tabela de
verdade da operação lógica ↔.
19 / 20
Exercícios
5. Qual é a expressão equivalente das seguintes expressões:
5.1. ¬ x ≤ y.
5.2. ¬ x > y.
5.3. x ≥ y ∧ x < y.
5.4. x ≤ y ∨ x > y.
5.5. 0 ≤ x ≤ 10.
5.6. ¬ (a ∨ ¬ b).
5.7. ¬ a → b.
5.8. ¬( a → b).
5.9. ¬ (¬ a ∧ ¬ b).
6. Faça as tabelas da verdade em Python dos exercícios 5.6, 5.7,
5.8 e 5.9 acima e das suas respostas, para verificar se são
idênticas.
7. Quais das expressões dos exercícios 5.6, 5.7, 5.8 e 5.9 acima
são equivalentes entre si?
8. Faça as tabelas de verdade do Teorema de De Morgan em
Python e verifique se o Teorema é válido.
20 / 20

Você também pode gostar