【问题描述】按照世卫组织的标准:
男性:(身高cm-80)×70%=标准体重
女性:(身高cm-70)×60%=标准体重
标准体重正负10%为正常体重(含10%)
标准体重正负10%~20%为体重过重或过轻(含20%)
标准体重正负20%以上为肥胖或体重不足
请分别计算输出男性和女性正常体重、体重过重、体重过轻、肥胖和体重不足的人数。
【输入形式】csv文件格式,文件名为whdata.csv。
【输出形式】标准输出。
输出
代码测试中我感觉出现了些小问题,因为测试结果与本编程下的测试结果出现相反的情况
原本应该是这样的:
就先倒过来写,反正这样过了,就直接开始列表套娃:
import pandas as pd
if __name__ == '__main__':
[print(pd.DataFrame([[x.count('A1'), x.count('A0')], [x.count('B1'), x.count('B0')], [x.count('C1'), x.count('C0')], [x.count('E1'), x.count('E0')], [x.count('D1'), x.count('D0')]], index=['正常', '不足', '过轻', '过重', '肥胖'], columns=['男性','女性'])) for x in [[('A0' if 0.9x[2]/((x[1]-70)*0.6)1.1 else ('C0' if 0.8x[2]/((x[1]-70)*0.6)<0.9 else ('B0' if x[2]/((x[1]-70)*0.6)<0.8 else('D0' if 1.1<x[2]/((x[1]-70)*0.6)1.2 else 'E0')))) if x[0]==0 else ('A1' if 0.9x[2]/((x[1]-80)*0.7)1.1 else ('C1' if 0.8x[2]/((x[1]-80)*0.7)<0.9 else ('B1' if x[2]/((x[1]-80)*0.7)<0.8 else('D1' if 1.1<(x[2]/((x[1]-80)*0.7))1.2 else 'E1')))) for x in pd.read_csv('whdata.csv').values]]]
仅供参考,用选择结构来写更快
Original: https://blog.csdn.net/missionnn/article/details/120795701
Author: 可乐土豆泥
Title: Python 【问题描述】按照世卫组织的标准: 男性:(身高cm-80)×70%=标准体重 女性:(身高cm-70)×60%=标准体重 标准体重正负10%为正常体重(含10%) 标准体重正负1
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/742301/
转载文章受原作者版权保护。转载请注明原作者出处!