Comentários em Python

In [1]:
#Utiliza-se o # para inserir comentários no código. Após usar #, a linha toda será entendida como comentário
#É fundamental que o código seja inteiramente comentado, pois facilita futuras manutenções no código.
In [3]:
#para comentários multilinha podemos usar três aspas simples ou duplas (""" ou ''')
#Na verdade, aspas triplas é usada para fazer documentaçao oficial do código (DocString), mas na prática pode ser usado com comentário

"""
Testando
Comentário
Multilinha
"""
Out[3]:
'\nTestando\nComentário\nMultilinha\n'

Imprimir na Tela

In [2]:
#O comando print serve para imprimir na tela
print("Python é TOP")
Python é TOP
In [8]:
#É possível imprimir varios valores (por padrão separa com espaço e quebra linha)
print(12, 35)
print(23, 56)
12 35
23 56
In [9]:
#É possível definir o separador com o atributo sep
print(23, 56, sep="-")
23-56
In [11]:
#Por padrão o Python quebra a linha (\n) em cada print
#É posśivel mudar este padrão com o atributo end
#observe que agora não tem mais quebra de linha
#por padrão o end="/n"
print(23, 56, sep="-", end="yy")
print(25, 59, sep="-", end="yy")
23-56yy25-59yy
In [14]:
#Barra invertida é caractere de escape, quando se deseja imprimir " por exemplo.
print('Python é \"TOP\"')
Python é "TOP"

Tipos de Dados

In [15]:
#inteiro
print(1)
1
In [16]:
#float
print(1.3)
1.3
In [4]:
#Com type é retornado o tipo do dado
print(type(5))
<class 'int'>
In [21]:
#booleano
#neste caso retorna False, pois 10 não é menor que 5
print(10<5)
False

Casting ou Conversão de Tipos

In [24]:
#Com o uso da função float é convertido 1 de int para float
print(type(float('1')))
<class 'float'>
In [26]:
#neste caso convertemos 11 para string e concatenamos com caractere 'b'
print(str(11) + 'b')
11b

Variáveis

In [28]:
#As variáveis podem ser definidas como espaços de memória capazes de armazenar dados (números, texto, etc).
#Por padrão, é recomendado que o nome das variáveis sejam minúsculos e sejam seprados por "_" se for composto (nome_completo)
#É muito importante que o nome da variável seja relacionado ao valor que está recebendo, facilitando manutenções futuras (cpf=05699445976)
In [30]:
#É criada a variável idade e atribuído o valor de 30
idade=30
print(idade)
30
In [31]:
#Como idade é igual a 30, a comparação idade>=18 é true. Logo a variável "maior" receberá true.
maior=idade>=18
print(maior)
True

Operadores Matemáticos

In [1]:
adicao = 10 + 10
print('Adição', adicao)

subtracao = 10 - 5
print('Subtração', subtracao)

multiplicacao = 10 * 10
print('Multiplicação', multiplicacao)

#Divisão sempre retorna um float
divisao = 10 / 3
print('Divisão', divisao)
Adição 20
Subtração 5
Multiplicação 100
Divisão 3.3333333333333335
In [4]:
#Utilizando // sempre retorna valor truncado sem decimais
divisao_inteira = 10 // 3  
print('Divisão inteira', divisao_inteira)

exponenciacao = 2 ** 10
print('Exponenciação', exponenciacao)

#Retorna o resto da divisão. Muito útil para calcular paridade
modulo = 55 % 2
print('Módulo', modulo)
Divisão inteira 3
Exponenciação 1024
Módulo 1
In [5]:
#Imprimindo um expressão, o Python retorna verdadeiro ou falso
print(10 % 8 == 0)
print(16 % 8 == 0)
False
True
In [6]:
#Com * da pra repetir caracteres
repetindo='P' * 3
print(repetindo)
PPP

Precedência de Operadores

In [1]:
#Em uma operação, a precedência define quais calculos serão realizados primeiro.
#No Python, temos a seguinte ordem de precedência:

#primeiro será executado o que tiver dentro de parenteses
# 1. (n + n) - 

# Depois serão executadas as potências
# 2. **

# Depois as operações de multiplicação, divisão e resto.
# 3. * / // % 

#E por fim operações de soma e subtração
# 4. + - 
In [3]:
#Abaixo é calculado o IMC como exemplo. Observe que primeiro será calculado **2 e depois a divisão
nome = 'Paulo'
altura = 1.86
peso = 77
imc = peso / altura ** 2
print('O IMC do ',nome,' é ',imc)
O IMC do  Paulo  é  22.25690831309978

Formatando String

In [5]:
nome = 'Paulo'
altura = 1.86
peso = 77
imc = peso / altura ** 2

#As "f-strings" permitem formatar strings. Para usar basta inserir 'f'
#Inserindo '.2f' formata com duas casas decimais e faz o arredondamento se necessário
linha_1 = f'{nome} tem {altura:.2f} de altura,'
linha_2 = f'{peso} quilos e seu imc é'
linha_3 = f'{imc:.2f}'

print(linha_1)
print(linha_2)
print(linha_3)
Paulo tem 1.86 de altura,
77 quilos e seu imc é
22.26

Inserindo dados com INPUT

In [6]:
#input permite que seja inserido um valor
nome = input('Qual o seu nome? ')
print(f'O seu nome é {nome}')

numero_1 = input('Digite um número: ')
numero_2 = input('Digite outro número: ')

int_numero_1 = int(numero_1)
int_numero_2 = int(numero_2)

print(f'A soma dos números é: {int_numero_1 + int_numero_2}')
O seu nome é Paulo
A soma dos números é: 6

Condicional IF / ELIF / ELSE

In [9]:
#O Python possui uma estrutura condicional formada pelo IF (SE), ELIF (senão se) e ELSE (senão)
#O exemplo imprime a situação do aluno de acordo com a média
media=30
if (media>=90): print("Aluno Excelente")
elif (media>=70 and media<=89): print("Aluno Bom")
elif (media>=60 and media<=69): print("Desempenho Mediano")
else: print("Reprovou")
Reprovou

Operadores de Comparação e Lógicos

In [ ]:
#Operadores de Comparação
# OP      Significado         Exemplo (True)
# >       maior               2 > 1
# >=      maior ou igual      2 >= 2
# <       menor               1 < 2
# <=      menor ou igual      2 <= 2
# ==      igual               'a' == 'a'
# !=      diferente           'a' != 'b'
In [12]:
# Operadores lógicos

#and (e): todas as condições precisam ser verdadeiras para o retorno ser verdadeiro
#or (ou): apenas umas das condições precisa ser verdadeira para o retorno ser verdadeiro
#not (não): inverte o retorno da expressão
In [7]:
#o exemplo abaixo pede para entrar no programa e digitar uma senha
#Se o usuário digitar "E" e a senha correta, imprimir "Entrar", senão "Sair"

entrada = input('[E]ntrar [S]air: ')
senha_digitada = input('Senha: ')

senha_permitida = '123456'

if entrada == 'E' and senha_digitada == senha_permitida:
    print('Entrar')
else:
    print('Sair')
Entrar
In [14]:
#Agora vamos tratar para que o usuário também possa digitar "e" minúsculo
entrada = input('[E]ntrar [S]air: ')
senha_digitada = input('Senha: ')

senha_permitida = '123456'
if (entrada == 'E' or entrada == 'e') and senha_digitada == senha_permitida:
    print('Entrar')
else:
    print('Sair')
Entrar
In [16]:
#O operador NOT inverter o resultado de uma expressão
aprovado=True
print(not aprovado)
False
In [23]:
#Operadores IN e NOT IN

# As Strings são iteráveis (pode ser navegavel pela posição)
#  0 1 2 3 4 
#  P a u l o
# -5-4-3-2-1
In [17]:
#pegando elemento da posição 2
nome = 'Paulo'
print(nome[2])
u
In [18]:
#pegando elemento da posição -3 (sentido direita para esquerda)
nome = 'Paulo'
print(nome[-3])
u
In [20]:
# Operador in verifica se existe 'ulo' na string
nome = 'Paulo'
print('ulo' in nome)
True
In [22]:
# Operador not in verifica se não existe 'ulo' na string. Retorna false porque existe
nome = 'Paulo'
print('ulo' not in nome)
False

Interpolação

In [3]:
#Interpolação é uma forma de formatar a impressão de valores na tela.

#Os simbolos abaixo definem o tipo de dado
# s - string
# d e i - int
# f - float
# x e X - Hexadecimal (ABCDEF0123456789)

nome = 'Paulo'
preco = 1000.95897643
#vamos formatar com duas casas defimais %2.f
variavel = '%s, o preço é R$%.2f' % (nome, preco)
print(variavel)

#X converte um valor para hexadecimal. O valor 08 estabelece 8 casas
valor=1000
print('O hexadecimal de %d é %08X' % (valor, valor))
Paulo, o preço é R$1000.96
O hexadecimal de 1000 é 000003E8

f-string

In [20]:
#f-string é uma forma mais moderna de fazer formatação nos textos
variavel = 'ABC'
print(f'{variavel}')

#completa o que faltar a esquerda para completar 10 digitos
print(f'{variavel: >10}')

#coloca a direita no meio e completa com espaços para ter 10 dígitos 
print(f'{variavel: <10}')

#deixa a variavel no meio e completa para completar 10 dígitos 
print(f'{variavel: ^10}')

#converte para hexadecimal com 8 casas
print(f'O hexadecimal de 1000 é {1000:08X}')

#formata com duas casas decimais (arredonda se necessário)
valor=1005.4556789
print(f'O valor do produto é {valor:.2f}')
ABC
       ABC
ABC       
   ABC    
O hexadecimal de 1000 é 000003E8
O valor do produto é 1005.46

Fatiando Strings

In [32]:
#Fatiamento (slice) é pegar parte de uma string maior
#Para fatiar, temos a seguinte sintaxe: nome_string[posição inicial : posição final : step]

variavel = 'Palmeiras'

#posição 1 até 5 (mas 5 não entra)
print(variavel[1:5])

#retorna posição 1 até o fim
print(variavel[1:])

#retorna do inicio até posicao 4 (5 não entra)
print(variavel[:5])

#len() retorna o número de caracteres
print(len(variavel[1:])) 

#retorna de 0 até o tamanho da variavel pulando de 2 em 2 (step)
print(variavel[0:len(variavel):2]) 

#o ínidice negativo pega de traz para frente
print(variavel[-1:-10:-1])

#Tambḿe retorna todos os valores invertidos
print(variavel[::-1])
alme
almeiras
Palme
8
Plers
sariemlaP
sariemlaP
In [2]:
#Strings são imutáveis, ou seja, não é possível alterar uma parte da string
#Por exemplo, ao tentar trocar a letra 'o' por 'a' gera erro
nome = 'Paulo'
nome[4]='a'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[2], line 4
      1 #Strings são imutáveis, ou seja, não é possível alterar uma parte da string
      2 #Por exemplo, ao tentar trocar a letra 'o' por 'a' gera erro
      3 nome = 'Paulo'
----> 4 nome[4]='a'

TypeError: 'str' object does not support item assignment
In [10]:
#É preciso criar uma nova string e fazer a alteração na atribuição do valor na nova variável
nome='Paulo'
novo_nome = f'{nome[0:4]}a'
print(novo_nome)
Paula

Try - Exception

In [8]:
#Para garatir que o código não trave ou gere erros ilegíveis ao usuário, é uma boa prática utilizar Try-Exception
#try -> tentar executar o código
#except -> executa se ocorreu algum erro ao tentar executar

numero_str = input('Vou dobrar o número que vc digitar: ')
try:
     numero_float = float(numero_str)
     print('FLOAT:', numero_float)
     print(f'O dobro de {numero_str} é {numero_float * 2:.2f}')
except:
     print('Isso não é um número')
Isso não é um número

Variáveis e Constantes

In [36]:
#As variáveis costumam trocar de valores constantemente
#Uma constante, em teoria, não deve trocar de valores.
#no Python, é um padrão deixar as variáveis minúsculas e constantes maiúsculas

#variável
raio=2

#constante
PI=3.14
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: