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

Python 2ee

O documento apresenta diversas funções em Python que utilizam o comando 'return' para retornar valores, incluindo funções para calcular o dobro de um número, a área de um retângulo e verificar se um número é par ou ímpar. Também aborda o uso de argumentos nomeados, *args e **kwargs para manipulação de dados em funções, permitindo a entrada dinâmica de informações pelo usuário. Exemplos práticos demonstram como implementar essas funções e lidar com erros de entrada.
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)
3 visualizações10 páginas

Python 2ee

O documento apresenta diversas funções em Python que utilizam o comando 'return' para retornar valores, incluindo funções para calcular o dobro de um número, a área de um retângulo e verificar se um número é par ou ímpar. Também aborda o uso de argumentos nomeados, *args e **kwargs para manipulação de dados em funções, permitindo a entrada dinâmica de informações pelo usuário. Exemplos práticos demonstram como implementar essas funções e lidar com erros de entrada.
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

USANDO RETURN NAS FUNÇÕES

# Funções + return
# Crie uma função dobro(n) que recebe um número e
retorna o dobro dele.
# Crie uma função area_retangulo(l, h) que retorna
a área de um retângulo.
# Crie uma função par_ou_impar(n) que retorna
"Par" se o número for par ou "Ímpar" caso
contrário.

def dobro(n):
return n * 2

try:
n = int(input('Digite um número: '))
print(f'O dobro de {n} é: {dobro(n)}')
except ValueError:
print('ERRO: Valor digitado não é número
inteiro!')

def area_retangulo(b, a):


area = b * a
return area
try:
base = float(input('Insira a base: '))
altura = float(input('Insira a altura: '))
print(f'A area do retangulo é
{area_retangulo(base, altura)}')
except ValueError:
print('ERRO: Valor inserido não númerico!')

def par_ou_impar(number):
if number % 2 == 0:
return f'Esse número {number} é par'
else:
return f'Esse número {number} é impar'

try:
number = int(input('Insira o número: '))
print(par_ou_impar(number))
except ValueError:
print('ERRO: VALOR inserido não é NÚMERICO
INTEIRO')

USANDO ARGUMENTOS JA NOMEADOS NAS DEFS

def converter_tempo(segundos, formato="minutos"):


if formato in ['minutos', 'm', 'min']:
conversao = segundos / 60
return f'A conversão de segundos para
minutos fica: {conversao}'
elif formato in ['horas', 'h']:
conversao = segundos / 3600
return f'A conversão de segundos para
horas fica: {conversao}'
else:
print('ERRO: Escolha entre minutos ou
horas')
formato = str(input('Quer qual formato? minutos ou
horas: ')).strip().lower()
if not formato:
print('ERRO: nenhum valor inserido')
else:
try:
tempo = float(input('Insira o tempo em
segundos: '))
print(f'{converter_tempo(tempo,
formato)}')
except ValueError:
print('ERRO: Valor inserido não é
númerico!')

USANDO O NONE PARA SUBSTITUIR O ZERO COMO


ARGUMENTOS NOMEADO PARA NÃO GERAR VALORES FALSOS
E SIM REALMENTE NULOS

def registrar_usuario(nome, lista=None):


return f'Nome: {nome} | Lista: {lista}'

lista_usuarios = []

while True:
nome = str(input('Insira o nome:
')).strip().title()
lista_usuarios.append(nome)
if not nome:
print('-' * 20)
print('ERRO: Nenhum nome digitado!')
continue
else:
print(registrar_usuario(nome,
lista_usuarios))

USANDO O *ARGS OU O * PARA ENCAPSULAR TUDO E DEPOIS


PODE FAZER SUM() OU MAX() ETC.. PODE SER COM STRINGS
TAMBÉM

def soma_tudo(*nums):
soma = sum(*nums)
return f'A soma de todos os números é {soma}'

lista_numeros = []

while True:
print('Adicione um número ou 0 para parar e
somar')
try:
numero = int(input('Insira o número: '))
if numero != 0:
lista_numeros.append(numero)
else:
print(soma_tudo(lista_numeros))
break
except ValueError:
print('ERRO: Valor inserido não é
númerico')
continue
*ARGS COM STRINGS

def concatena_palavras(*palavras):
palavras_juntas = " ".join(palavras)
return palavras_juntas

lista_palavras = []

while True:
palavra = str(input('Insira uma palavra:
')).strip()
if not palavra:
if not lista_palavras:
print('ERRO: Nenhuma palavra
digitada!')
continue
else:
print(f'Frase final:
{concatena_palavras(*lista_palavras)}')
break

lista_palavras.append(palavra)

**KWARGS É UM TERMO USADO EM UMA DEFINIÇÃO DE FUNÇÃO


PARA RECEBER UM NÚMERO VARIAVEL DE ARGUMENTOS
“NOMEADOS” (DE PALAVRA CHAVE). ELE COLETA ESSES
ARGUMENTOS, QUE SÃO PASSADOS NO FORMATO CHAVE =
VALOR, EM UM DICIONÁRIO PYTHON
EXEMPLOS:

# **kwargs

def exibir_dados(**kwargs):
for chave, valor in [Link]():
print(f'{chave}: {valor}')

# essa é a forma errada de usar como input


nome = str(input('Nome: '))
idade = int(input('Idade: '))
cidade = str(input('Cidade: '))
produto = str(input('Produto: '))
preco = float(input('Preço: '))
autor = str(input('Autor: '))

# exibir_dados(nome, idade, cidade, produto,


preco, autor) <-- FORMA ERRADA
# exibir_dados(nome= "Ana", idade= 25, cidade=
"Lisboa")
# exibir_dados(produto= "Livro", preco= 19.99,
autor="Desconhecido")

# temos duas formas


# ja passa com os argumentos nomeados
exibir_dados(
nome=nome,
idade=idade,
cidade=cidade,
produto=produto,
preco=preco,
autor=autor
)

# ou ja cria um dicionario e desempacota ele


chamando na função

dados = {
"nome": input('Nome: '),
"idade": int(input('Idade: ')),
"cidade": input('Cidade: '),
"produto": input('Produto: '),
"preco": float(input('Preço: ')),
"autor": input('Autor: ')
}

exibir_dados(**dados)

## versão dinamica para usuario digitar seus


proprios dados

def exibir_dados(**kwargs):
for chave, valor in [Link]():
print(f'{chave}: {valor}')

dados = {}

print("Digite as informações (aperte Enter em


'chave' para finalizar).")
while True:
chave = input("Nome da informação (ex: nome,
idade, cidade): ").strip()
if not chave: # se só apertar Enter, finaliza
break
valor = input(f"Valor para '{chave}':
").strip()
dados[chave] = valor

exibir_dados(**dados)

## versão dinamica com detecção automatica do tipo

def exibir_dados(**kwargs):
for chave, valor in [Link]():
print(f'{chave}: {valor}
({type(valor).__name__})')

def converter_valor(valor: str):


"""Tenta converter o valor para int ou float;
se não der, retorna string."""
if [Link](): # só dígitos → int
return int(valor)
try:
return float(valor) # tenta converter
para float
except ValueError:
return valor # mantém como string
dados = {}

print("Digite as informações (aperte Enter em


'chave' para finalizar).")

while True:
chave = input("Nome da informação (ex: nome,
idade, cidade): ").strip()
if not chave: # Enter → encerra
break
valor = input(f"Valor para '{chave}':
").strip()
dados[chave] = converter_valor(valor)

exibir_dados(**dados)

a´sdasda
asdasdasd

Você também pode gostar