Logo

郎哥编程

女孩穿多高的高跟鞋看起来最美?

2020-05-01 210

1、问题的提出

很多女孩子都喜欢穿高跟鞋,可以秀出自己的身材和体型,更能吸引众多的眼球,那么多高的高跟鞋才能适合自己呢?

对于人体来说,当肚脐以下的长度与身高的比值为0.618时,体型是最优美的。这么说是有依据的,古希腊女神维纳斯塑像的躯干与身高比恰为0.618,女神维纳斯可是优美体型的代表。

01.png                                             

可惜的是,一般人肚脐以下的长度与身高之比都低于0.618,大约只有0.58至0.60左右。如果女孩通过穿高跟鞋,将肚脐以下的长度与身高之调整为0.618,此时高跟鞋的高度就是最合适的。

2、建立数学模型

可以把人肚脐以下的长度称为下肢长度,人的整个身体的高度称为身高。假设当人的下肢长度与身高之比等于0.618时,人的体型最美。那么就会得出下面的公式:

02.png


一般人的下肢长度和身高之比不可能满足上面的公式,需要对公式做调整。人体的身高不变,模型要调整下肢的长度,让下肢长度与身高之比等于0.618。如果设高跟鞋的高度为x,人的下肢长度为leg_height,身高位body_height,调整后的公式为:

03.png


下肢长度加上x后,人的身高也增加了x,因此身高也要加x。应用上面的公式可求得高跟鞋的高度x为:

04.png


上面的公式就是我们要建立的数学模型,该数学模型根据人体的身高和下肢高度,求出高跟鞋的高度。

3、编写程序求解模型

求解模型需要用户输入人体的身高和下肢高度,身高和下肢的数据类型为浮点类型。

05.png


程序流程图如下:

06.png


(1)   接收用户输入的身高和下肢高度;

(2)   判断用户输入的是否是整型或小数;

(3)   如果用户输入的不是整数或小数,输出提示信息,跳转到步骤(1);

(4)   使用模型计算高跟鞋的高度;

(5)   输出高跟鞋的高度;

(6)   输出提示信息,提示信息为“输入N退出程序,其它继续”;

(7)   等待用户的输入,如果用户输入N,程序结束,否则跳转到步骤(1)。

程序代码如下:

'''
程序文件:main.py
功能描述:女孩穿多高的高跟鞋看起来最美
代码编写时间:2020/04/30
作者:编程训练营
'''
# 定义判断函数
# 判断用户输入的是否是整数或小数
def isnumber(instr):
    # 遍历instr
    for ch in instr:
        # ch是否是数字或小数点
        if ch.isdigit() or ch == '.':
            continue;
        else:
            # instr包含其它字符
            return False
    return True
# 程序入口
if __name__ == '__main__':
    while(True):
        # 接收用户输入的身高
        body_height = input("身高(如162.8):")
        # 身高是否是整数或小数
        if isnumber(body_height):
            # 接收用户输入的下肢高度
            leg_height = input("下肢高度(如105):")
            # 下肢高度是否是整数或小数
            if isnumber(leg_height):
                # 用模型计算高跟鞋的高度
                shoes_height = (0.618*float(body_height)-float(leg_height))/0.382
                # 输出高跟鞋的高度
                print("高跟鞋的合理高度为:%.2f" % (shoes_height))
            else:
                print("下肢高度输入错误")
        else:
             print("身高输入错误")
        # 程序继续或退出
        temp = input("输入N退出程序,其它继续:")
        # 判断temp的内容
        if temp == "N":
            break;

代码解读

程序定义了函数isnumber,用于判断传入的字符串是否是由数字或小数点组成,简化起见,函数没有判断小数点的位置错误。

函数遍历传入的instr,在遍历过程中,判断每个字符是否是数字或小数点,如果不是数字或小数点,函数返回False,instr遍历完后,成函数返回True。

主体代码使用嵌套条件结构,先后判断用户输入的身高和下肢高度是否正确,如果输入正确,用模型计算高跟鞋的高度并输出。然后代码提示用户输入N可退出程序,其它可继续。

模型校验

以身高160CM,下肢长为96CM的女性为例,其所穿鞋的鞋跟高度与体型优美程度的关系可由下表说明:

07.png

09.png

                               

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论