Сократите мой сценарий при переборе спискаPython

Программы на Python
Anonymous
Сократите мой сценарий при переборе списка

Сообщение Anonymous »

В этом коде первая часть строки принимается в качестве имени, затем перебирает разные строки и выводит имя, ИМТ и его категорию. Как мне сократить этот сценарий или очистить его, чтобы сделать его лучше и эффективнее? Возможно, есть какая-нибудь функция, которая была бы полезна в этой ситуации?
import sys

n = 1
desirable = 0
borderline = 0
high = 0

thislist = sys.argv
thislist.pop(0)

def calcbmi(height,weight):

bmi=float((weight/(height*height))*703)
actbmi = round(bmi,2)
return actbmi

def getcategory(BMI):
if BMI=18.5 and BMI25 and BMI=30:
x='obesity'
return x

for lines in thislist:
ind = lines.find(',')
name = lines[:ind]
lines = lines[ind+1:]

ind = lines.find(',')
age = lines[:ind]
lines = lines[ind+1:]
ageint = int(age)

ind = lines.find(',')
cat = lines[:ind]
lines = lines[ind+1:]

if cat == "high":
high +=1
if cat == "desirable":
desirable +=1
if cat == "borderline":
borderline +=1

print("Desirable count:",desirable)
print("High count:",high)
print("Borderline count:",borderline)

for lines in thislist:
ind = lines.find(',')
name = lines[:ind]
lines = lines[ind+1:]

ind = lines.find(',')
age = lines[:ind]
lines = lines[ind+1:]
ageint = int(age)

ind = lines.find(',')
cat = lines[:ind]
lines = lines[ind+1:]

ind = lines.find(',')
height = int(lines[:ind])
lines = lines[ind+1:]

ind = lines.find(',')
weight = int(lines[:4])
lines = lines[ind+1:]
BMI = calcbmi(height,weight)
actualcat = getcategory(BMI)

print(name+':',str(round(BMI,2))+',',actualcat)


Подробнее здесь: https://stackoverflow.com/questions/786 ... ugh-a-list

Вернуться в «Python»