小白菜菜又开始投入到python的海洋了,这次写if和elif遇到的问题

1.菜菜先啰嗦的几句话:
  • 想着有个地方能够记录一下自己的学习成果,所以还是开始写写博客吧,不知道这次能坚持多久呢,嘻嘻~
  • 学习的教材来自https://www.liaoxuefeng.com/(廖雪峰大神)
  • 会说明一下自己在这个过程中所遇到的所有的坑
  • 简单介绍一下自己:一个从来没有接触过代码的小白
  • 使用的python版本是2.7,虽然2.x已经不再维护了,但是还是想用它,嘻嘻~
  • 话不说多,Let’s go~
2.先简单介绍下这次的需求背景:

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:

3.简单让大家看下完成结果:
  • 最开始看到这个小练习的时候呢,其实我就想完成一个书面作业,但在看过其他人完成的作业以后觉得,真的要学习肯定是要把之前已经看到的和目前你所知道的都糅合进来这样才能起到学习的作用。所以就有了如下的成果:
  • 写的肯定是比较low,不要介意啦~
# -*- coding: utf-8 -*-

name = raw_input('请输入你的姓名:')    # raw_input() 返回的均是str类型
hight = input('请输入你的身高(cm):')   # input()可以返回int float 类型
weight = input('请输入你的体重(Kg):')

bmi = weight / hight ** 2
print(bmi)

if bmi < 18.5:
    print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常抱歉告诉你,你的体重偏轻,需要加强锻炼哦~' % (name,hight,weight))

elif bmi <25:
    print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常开心的告诉你,你的体重正常,请继续保持哦~' % (name,hight,weight))

elif bmi <28:
    print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常抱歉的告诉你,你的体重过重,需要有良好的锻炼习惯哦~' % (name,hight,weight))

elif bmi <32:
    print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常抱歉的告诉你,你的体重已经到了肥胖级别,需要即日起开始锻炼哦~' % (name,hight,weight))

if bmi >32:
    print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常遗憾的告诉你,你的体重已经严重肥胖了,再不锻炼就要出不了门啦~' % (name,hight,weight))

4.心酸过程:
  • (1)遇到的第一个疑惑,是不知道python如何表达平方根:

    百度了以后才知道是:x ** 2

  • (2)遇到的第二个问题是使用input()输入小明后报错了,这真的是百思不得其解。然后呢,我想到了一个绝妙的方法,在输入小明的时候加上双引号。ummm…很完美,但麻烦。最后的最后我发现了,input()和raw_input()的区别和用法。所以完美的解决了返回str类型的问题;

raw_input( ) 将所有输入作为字符串看待,返回字符串类型。
input( ) 只能接收"数字"的输入,它返回所输入的数字的类型( int, float )
– 参考来自:https://www.runoob.com/w3cnote/python2-python3-raw_input-and-input.html

请输入你的姓名:小明
Traceback (most recent call last):
  File "/Users/xiaoyuer/PycharmProjects/flask/test05.py", line 3, in <module>
    name = input('请输入你的姓名:') # raw_input() 返回的均是str类型
  File "<string>", line 1
    小明
    ^
SyntaxError: invalid syntax
  • (3)遇到的第三个问题,是print打印结果里面没有返回我想要的中文,试了好久都是黑人疑问脸。然后的然后,回头再去看了一遍廖雪峰的字符串和编码,我终于!!!看到了春天。

原因就是我的print语句里面应该把逗号换成%,虽然为什么换成% 我暂时不知道,啊哈哈哈~ 就是这么小白

执行语句:   
print ('%s 的身高是 %s cm , 体重是 %s Kg , 非常抱歉告诉你,你的体重偏轻,需要加强锻炼哦~', (name,hight,weight))

打印结果:
请输入你的姓名:1
请输入你的身高(cm)1
请输入你的体重(Kg)1
1
('%s \xe7\x9a\x84\xe8\xba\xab\xe9\xab\x98\xe6\x98\xaf %s cm , \xe4\xbd\x93\xe9\x87\x8d\xe6\x98\xaf %s Kg , \xe9\x9d\x9e\xe5\xb8\xb8\xe6\x8a\xb1\xe6\xad\x89\xe5\x91\x8a\xe8\xaf\x89\xe4\xbd\xa0\xef\xbc\x8c\xe4\xbd\xa0\xe7\x9a\x84\xe4\xbd\x93\xe9\x87\x8d\xe5\x81\x8f\xe8\xbd\xbb\xef\xbc\x8c\xe9\x9c\x80\xe8\xa6\x81\xe5\x8a\xa0\xe5\xbc\xba\xe9\x94\xbb\xe7\x82\xbc\xe5\x93\xa6~', (1, 1, 1))

  • (4)遇到的第四个问题,是if elif语句的问题,我傻傻的写了if 以后 写的是else,所以我就又发生了语法错误SyntaxError: invalid syntax。

》把else 改成elif 就行了
if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

  • 关于写这个if elif 我就遇到了这些,不知道以后还会遇到什么呢,但是以后遇到了以后就再告诉你们哦~
  • 拜拜~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值