uaveiro-leci/1ano/1semestre/fp/aula08/imctable2.py

40 lines
1.1 KiB
Python
Raw Normal View History

2022-11-18 10:45:54 +00:00
# Devolve o IMC para uma pessoa com peso w e altura h.
def imc(w, h):
return w/h**2
2022-11-18 10:45:54 +00:00
def main():
# Lista de pessoas com nome, peso em kg, altura em metro.
people = [("John", 64.5, 1.757),
("Berta", 64.0, 1.612),
("Maria", 45.1, 1.715),
("Andy", 98.3, 1.81),
("Lisa", 46.8, 1.622),
("Kelly", 83.2, 1.78)]
2022-11-18 10:45:54 +00:00
print("People:", people)
# Esta comprehension define uma lista dos nomes das pessoas em people
names = [n for n, w, h in people]
# = [p[0] for p in people] # equivalente
print("Names:", names)
2022-11-18 10:45:54 +00:00
# Usando list comprehensions, obtenha:
# a) Uma lista com os valores de imc de todas as pessoas.
imcs = [imc(w, h) for n, w, h in people]
print("IMCs:", imcs)
# b) Uma lista dos tuplos de pessoas com altura superior a 1.7m.
tallpeople = [(n, w, h) for n, w, h in people if h > 1.7]
print("Tall people:", tallpeople)
2022-11-18 10:45:54 +00:00
# c) Uma lista de nomes das pessoas com IMC entre 18 e 25.
midimc = [n for n, w, h in people if 18 <= imc(w, h) <= 25]
print("Mid-IMC:", midimc)
# O programa começa aqui
if __name__ == "__main__":
main()