Você está na página 1de 4

# ***************************** LISTA DE REVISAO ****************************

#1. Escreva duas fun¸c˜oes que calculam o peso ideal de uma pessoa, dada a sua
#altura. Uma fun¸c˜ao deve fazer o c´alculo para homens, usando a f´ormula
#(72.7 ∗ altura)−58, e a outra para mulheres, usando a f´ormula
#(62.1 ∗ altura)−44.7.

#float -> float


def peso_ideal_f(h):
"Funcao que retorna o valor do peso ideal feminino"
return (62.1 * h)- 44.7

#float -> float


def peso_ideal_m(h):
"Funcao que retorna o valor do peso ideal masculino"
return (72.7 * h)- 58

#2. Utilizando as fun¸c˜oes anteriores, escreva uma fun¸c˜ao que receba a altura
#de uma pessoa, e um caracter indicando o sexo (‘m’,‘M’,‘f’ ou ‘F’), e retorne
#o seu peso ideal. Exiba uma mensagem de erro, caso o sexo informado seja
#inv´alido.

#float, string -> float


def peso_ideal(h,s):
"Funcao que retorna o valor do peso ideal conforme o sexo informado,
verificando caso seja informado errado"
if s == "f" or s == "F":
return peso_ideal_f(h)
elif s == "m" or s == "M":
return peso_ideal_m(h)
else: #informou errado
return "Informacao incorreta."

#3. Utilizando a fun¸c˜ao anterior, escreva uma fun¸c˜ao que receba como parˆametro
#a altura, o peso e o sexo de uma pessoa, e retorne uma mensagem informando se
#essa pessoa est´a acima, abaixo ou no peso ideal.

#float, float, string -> string


def verificar_peso(h,p,s):
"Funcao que verifica se a pessoa esta abaixo ou acima do peso ideal"
if p > peso_ideal(h,s):
return "Voce esta acima do peso ideal"
else: #menor ou igual
return "Voce esta abaixo ou no limite do peso ideal"

#4. Escreva uma fun¸c˜ao que receba um inteiro x e retorne x! e √x

#int -> int


import math
def fatorial_raiz(x):
"Funcao que retorna o valor do fatorial e raiz de x"
return math.factorial(x), math.sqrt(x)

#5. Escreva uma fun¸c˜ao que receba um inteiro e retorne uma string contendo a
informa¸c˜ao sobre
#o sinal do n´umero (positivo, negativo ou zero) e sobre a paridade do n´umero.
Exemplos:
#>>> sinal_paridade(25)
#‘positivo e par’
#>>> sinal_paridade(-3)
#‘negativo e ´ımpar
#>>> sinal_paridade(0)
#‘zero e par’

#int -> string


def sinal_paridade(x):
"Funcao que retorna o sinal e a paridade do numero informado"
sinal = ''
par = ''
if x > 0:
sinal = "positivo"
elif x == 0:
sinal = "zero"
else:
sinal = "negativo"
if x % 2 == 0:
par = "par"
else:
par = "impar"
resposta = sinal + " e " + par
return resposta

#6. Fa¸ca uma fun¸c˜ao que receba uma string e retorne a quantidade de vogais (mai
´usculas
#ou min´usculas) nessa string.

#string -> int


def vogais(string):
"Funcao que retorna o numero de vogais de uma string"
str.upper(string)
n += str.count(string, 'A')
n += str.count(string, 'E')
n += str.count(string, 'I')
n += str.count(string, 'O')
n += str.count(string, 'U')
return n

#7. Escreva uma fun¸c˜ao que calcula a menor quantidade de notas que um caixa
eletrˆonico
#precisa usar para realizar o saque de um valor. Assuma que o caixa eletrˆonico
possui notas
#de 100, 50, 10, 5 e 1. A resposta deve ter o formato:
#‘S˜ao necess´arias notas para sacar o valor R$ , ’

#int -> int


def notas(valor):
"Funcao que retorna a qtd minima de notas para o valor informado"
n100 = valor/100
n50 = (valor%100)/50
n10 = (valor%50)/10
n5 = (valor%10)/5
n1 = (valor%5)/1
return n100+n50+n10+n5+n1

#8. Uma fruteira est´a vendendo frutas com a seguinte tabela de pre¸cos:
#At´e 5kg Acima de 5kg
#Ma¸c˜a R$3,50/kg R$3,15/kg
#Morango R$5,50/kg R$4,95/kg
#Se o cliente comprar mais de 12 Kg em frutas ou o valor total da compra
ultrapassar R$ 50,00,
#receber´a ainda um desconto de 10% sobre este total. Escreva uma fun¸c˜ao que
receba quantidade
#(em Kg) de morangos e a quantidade (em Kg) de ma¸c˜as adquiridas e retorne o valor
a ser pago pelo cliente.

#int, int -> valor


def fruteira(kgmaca,kgmorango):
"Funcao que retorna 0 valor da compra em uma fruteira"
if kgmaca > 5:
vmaca = kgmaca*3.15
else:
vmaca = kgmaca*3.50
if kgmorango > 5:
vmorango = kgmorango*4.95
else:
vmorango = kgmorango*5.50
valor = vmaca + vmorango
qtd_kg = kgmorango + kgmaca
if qtd_kg > 12 or valor > 50:
return valor*0.9
else:
return valor

#9. Fa¸ca uma fun¸c˜ao que receba duas strings e retorne outras duas strings, uma
sendo a primeira
#metade da primeira concatenada com a segunda metade da segunda, e a outra sendo a
segunda metade
#da primeira concatenada com a primeira metade da segunda. Se alguma string possuir
um n´umero ´ımpar
#de letras, fa¸ca com que a ”primeira metade”tenha um caracter a menos que a
segunda.

#string, string -> string, string


def concatenacao_string(str1,str2):
"Funcao que retorna duas strings concatenadas"
return str1[:len(str1)/2] + str2[len(str2)/2:],str2[:len(str2)/2] +
str1[len(str1)/2:]

#10. Escreva uma fun¸c˜ao que receba uma string s e um caracter c, e retorne o
´ındice da ´ultima
#ocorrˆencia de c em s. Caso n˜ao haja nenhuma ocorrˆencia, exibir uma mensagem
informando.

#string, string -> int / string


def seg_ocorrencia(string, char):
if str.rfind(string, char) != -1:
return str.rfind(string, char)
else:
return "Caracter nao ocorreu "

#obs.: rfind(...)
# | S.rfind(sub [,start [,end]]) -> int
# |
# | Return the highest index in S where substring sub is found,
# | such that sub is contained within S[start:end]. Optional
# | arguments start and end are interpreted as in slice notation.
# |
# | Return -1 on failure.

#11. Ap´os uma apresenta¸c˜ao de gin´astica art´ıstica, 5 jurados d˜ao a sua nota.
Para o c´alculo da
#nota final da apresenta¸c˜ao, a maior e a menor nota s˜ao descartadas e calcula-se
a m´edia das notas
#restantes. Escreva uma fun¸c˜ao que receba 5 notas para uma apresenta¸c˜ao e
retorne a nota final.

#float, float,float,float,float ->float


def nota_final(n1,n2,n3,n4,n5):
nmax = max(n1,n2,n3,n4,n5)
nmin = min(n1,n2,n3,n4,n5)
return ((n1+n2+n3+n4+n5)-(nmax+nmin))/3.0

Você também pode gostar