sexta-feira, 21 de março de 2025

Função para passar os itens de um txt para uma lista.

Função para passar os itens de um txt para uma lista.

 Os itens no txt devem estar em forma de coluna e a última linha deve estar vazia.. Ex.:

a
b
c
d
e

 

def txtparalista(arquivotxt:str):
    lista = []
    with open(arquivotxt,'r') as arquivo:
        listabruta = arquivo.readlines()

    for itembruto in listabruta:
        lista.append(itembruto[:-1])
    return lista
       
tipocontabil = txtparalista('tipocontacusto.txt')
print(tipocontabil)
 
A função vai retornar uma lista, por isso deve ser passada para dentro de uma variável. 

sábado, 20 de janeiro de 2024

Métodos úteis dos Dicionários em Python

pessoa = {
    'nome': 'Ayrton',
    'sobrenome': 'Pontes'
}
# Métodos uteis dos dicionários em Python

# len - quantas chaves
print(len(pessoa))

# keys - interável com as chaves
print(list(pessoa.keys())) # por ser iterável, pode usar com o for

# values - interável com os valores
print(list(pessoa.values())) # por ser iterável, pode usar com o for

# items - iterável com chaves e valores
print(list(pessoa.items()))
    # Com o for:
for chave, valor in pessoa.items():
    print(chave, valor)
   
# setdefault - adiciona valor se a chave não existe
pessoa.setdefault('idade', 0)
print(pessoa['idade'])

# copy - retorna uma cópia rasa (shallow copy)
d1 = {
    'c1': 2,
    'c2': 3
}
d2 = d1  # não faz cópia

d2['c1'] = 100 # afeta d1

print(d1) # {'c1': 100, 'c2': 3}

d2 = d1.copy() # faz uma cópia (rasa -> não funciona pra itens mutaveis dentro de dicionarios)

d2['c1'] = 300

print(d1) # {'c1': 100, 'c2': 3}
print(d2) # {'c1': 300, 'c2': 3}

#agora vamos colocar um item mutavel dentro de um dicionário:

d3 = {
    'c1': 2,
    'c2': 3,
    'l1': [0, 1, 2]
}

d4 = d3.copy() # não consegue fazer uma cópia (só rasa),
# pois há um item mutavel em d3

print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 2]}

d4['l1'][2] = 150

print(d3) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}
print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}

# caso queira fazer uma deep copy (cópia mesmo com itens mutáveis),
# usar a biblioteca copy
import copy

d3 = {
    'c1': 2,
    'c2': 3,
    'l1': [0, 1, 2]
}

d4 = copy.deepcopy(d3) #cópia real (deep copy) de dicionario com itens
# mutáveis

d4['l1'][2] = 150

print(d3) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 2]}
print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}

# get - obtém uma chave

p1 = {
    'nome': 'Ayrton',
    'sobrenome': 'Pontes'
}

print(p1.get('nome')) # Ayrton
print(p1.get('idade', 0)) # 0 (retorna o 0 em caso de exceção)

# pop - apaga um item com a chave específica (del)

nome = p1.pop('nome') # apaga, mas pode colcoar na memoria em uma
# variavel
print(nome)
print(p1)



# popitem - apaga o último item adicionado

sobrenome = p1.popitem()
print(sobrenome) # ('sobrenome', 'Pontes')
print(p1) #{}
# update - atualiza um dicionario com outro

p1.update({
    'nome': 'novo valor',
    'idade': 34
})

print(p1) # {'nome': 'novo valor', 'idade': 34}

tupla = ('sobrenome', 'Pontes'), ('peso', 80) # poderia ser uma lista tbm

p1.update(tupla)

print(p1) # {'nome': 'novo valor', 'idade': 34, 'sobrenome': 'Pontes', 'peso': 80}

 

segunda-feira, 15 de janeiro de 2024

Interpretador do Pyton

 

Interpretador do Pyton:


python --version

python --help

python mod.py (executa o mod)
python -u (unbuffered)
python -m mod (lib mod como script)
python -c 'cmd' (comando)
python -i mod.py (interativo com mod)


Zen of Python: import this

domingo, 14 de janeiro de 2024

Apagando o Conteúdo do Terminal

Você pode apagar o conteúdo do terminal durante a execução do programa em Python. Para isso precisa passar para a Função system do pacote os o comando 'cls' ou 'clear', dependendo do seu sistema operacional:

from os import system

numero_secreto = 22
while True:
    n = int(input('Digite um número: '))
    system('cls')
    if n == numero_secreto:
        print('Você acertou!')
        break

quinta-feira, 11 de janeiro de 2024

Fatiamento de Strings

 012345678
 Olá mundo
-987654321


Fatiamento [i:f:p] [::]
Inverter a String [::-1] -> odnum álO

O função len() retorna a quantidade de caracteres de um item iterável

Formatação de strings com f-strings:

Formataçao básica de strings com f
s - string
d - int
f - float
.<número de dígitos>f
x ou X - Hexadecimal
(Caractere)(><^)(quantidade)
> - Esquerda
< - Direita
^ - Centro
= - Força o número a aparecer antes dos zeros
Sinal - + ou -
Ex.: 0>-100,.1f
Conversion flags - !r !s !a __repr__ __str__ __asc__

variavel = 'ABC'
print(f'{variavel})
print(f'{variavel: >10}')
print(f'{variavel: >10}.')
print(f'{variavel: ^10}.')
print(f'{variavel:$^10}.')
print(f'{variavel:0^10}.')


print(f'{1000.48956189616:.1f}')
print(f'{1000.48956189616:,.1f}') -> 1,000.5 (coloca separador de milhares)
print(f'{1000.48956189616:+,.1f}') -> +1,000.5
print(f'{1000.48956189616:0>+10,.1f}') -> 00+1,000.5 (estranho, então usa-se o "=" para forçar)
print(f'{1000.48956189616:0=10+,.1f}') -> +001,000.5


Hexadecimal
print('O hexadecimal de 1500 é {1500:08x}') -> 000005dc
print('O hexadecimal de 1500 é {1500:08X}') -> 000005DC


Conversion flags
print(f'{variavel!r}') -> chamando o método __repr__ (vamos estudar mais a frente)

Interpolação básica de Strings (com %)

Funciona como f-strings, porém usa-se % (placeholder):
s - string
d e i - int
f - float
x e X - Hexadecimal (ABCDRF0123456789)

nome = 'Pontes'
preco - 1000.95897643

variavel = '%s, o peço é R$ %.2f' % (nome, peco)
print(variavel)


Pontes, o preço é R$ 1000.95

Hexadecimal:
print('O hexadecimal de %d é %x' %(15, 15))

O hexadecimal de 15 é f


para preencher com zeros:
print('O hexadecimal de %d é %04x' %(15, 15)) #Para colocar casas decimais (mais comum ver com 4 ou 8 casas decimais)

O hexadecimal de 15 é 000f

terça-feira, 12 de dezembro de 2023

23. Tratamento de Erros e Exceções


primt('x') -> Erro de sintaxe
print(x) -> Erro semântico (variável x nao foi definida)
exceção: NameError

n = int('oito')
print(f'Você digitou o número {n}')

exceção: ValueError (digitou string no lugar de int)


a = 8
b = 0
r = a / b
print(r)

exceção: ZeroDivisionError

r = 2 / '2'
exceção: TypeError

lst = [3, 6, 4]
print(lst[3])

exceção: IndexError

import uteis
Se o módulo nao exista:
Exceção: ModuleNotFoundError

Python Exception List (pesquisar no google)

try:  #Obrigatório usar
    OPERAÇÕES
except:  #Obrigatório usar
    FALHOU
else:  #Facultativo usar
    DEU CERTO!
finally:  #Facultativo usar
    Vai mostrar independente de dar certo ou errado

try:
    a = 2
    b = 0
    c = a / b
except:
    print('Tivemos um problema')
else:
    print(f'O resultado é {r}')
finally:
    print(f'Volte sempre!')

Usando o Exception
try:
    a = 2
    b = 0
    c = a / b
except Exception as erro:
    print(f'Tivemos um problema {erro.__class__}') #não mostrar para o usuário!
else:
    print(f'O resultado é {r}')
finally:
    print(f'Volte sempre!')


podemos ter vários
except para cada tipo de exceção:




Excercícios

113: Reescreva a função
leiaInt() que fizemos no Exercício 104, incluindo agora a possibilidade da digitação de um número de tipo inválido. Aproveite também e crie também uma função leiaFloat() com a mesma funcionalidade.

114: Crie um código em Python que teste se o site Pudim está acessível pelo computador usado.

115: Crie um pequeno programa modularizado que permita cadastrar pessoas pelo seu nome e idade em um arquivo de texto simples. O sistema só vai ter 2 opções: cadastrar uma nova pessoa e listar todas as pessoas cadastradas.