据廖雪峰python3教程----python学习第四天

条件判断


在python中条件判断 用if语句来实现:

1
2
3
4
5
6
7
>>> age = 20
>>>  if  age > = 18 :       # 注意 if 后的 : 引号
      print ( 'your age is %d' % age)     
      print ( 'adult' )    
      
your age  is  20
adult


根据python的缩进规则,如果if语句判断是True,就把缩进的两行python执行了,否则什么也不做


也可以给 if 添加一个 else 语句

1
2
3
4
5
6
7
8
9
10
>>> age = 3
>>>  if  age> = 18 :
      print ( 'your age is' ,age)
      print ( 'adult' )
else :     
     print ( 'your age is' ,age)    
     print ( 'teenager' )    
     
your age  is  3
teenager


还有一种更加细致的判断 elif   :

1
2
3
4
5
6
7
8
9
>>> age  =  3
>>>  if  age > = 18 :     
         print ( 'adult' )
elif  age > =  6 :    
         print ( 'teenager' )
else :     
         print ( 'kid' )
             
kid


elif 是 else if 的判断,完全可以有多个 elif 所以 if 的完整形式就是:

if <条件判断>:

     <执行1>

elif <条件判断>:

     <执行2>

elif < 条件判断>:

     <执行3>

else:

     <执行4>


if 语句执行有个特点,它是从上往下判断,如果在某个判断是 True ,就把该判断对应的语句执行后,就忽略剩下的

elif 和 else 。


if 判断条件换可以简写,比如写:

1
2
>>>  if  x:
      print ( 'True' )

只要x是非零数值、非空字符串、非空list等,就判断为True,否则为 False。




再议input


再看一个有问题的条件判断。用input()读取用户的输入,这样可以自己输入,程序的运行得更有意思:

1
2
3
4
5
6
birth  =  input ( 'birth:' )
if  birth< 2000 :    
     print ( '00前' )
else :
   print ( '00后' )
>>>birth: 1982


输入 1982 后,结果报错:

1
2
3
4
Traceback (most recent call last): 
  File  "E:/Python/lianxi.py" , line  2 in  <module>
      if  birth< 2000 :
TypeError: unorderable types:  str () <  int ()


这是因为input() 返回的数据类型是 str ,str不能直接和整数比较,必须先把str转换成整数。python提供了int()函数来完成这件事情:

1
2
3
4
5
6
7
8
9
birth  =  input ( 'birth:' )
birth  =  int (birth)
if  birth< 2000 :    
     print ( '00前' )
else :
     print ( '00后' )
>>>birth: 1995
00
>>>


再次运行,这次输入一个字符串 又得到一个错误报告:

1
2
3
4
5
6
7
>>>
birth:qwe
Traceback (most recent call last):  
File  "E:/Python/lianxi.py" , line  2 in  <module>    
     birth  =  int (birth)
ValueError: invalid literal  for  int () with base  10 'qwe'
>>>

当int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。




练习


小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

  • 低于18.5:过轻

  • 18.5-25:正常

  • 25-28:过重

  • 28-32:肥胖

  • 高于32:严重肥胖


if-elif判断并打印结果:


体质指数(BMI)=体重(kg)÷身高^2(m)

1
2
3
4
5
6
7
8
9
10
11
12
13
h = float ( input ( 'hright:' ))      #体质指数(BMI)=体重(kg)÷身高^2(m)
w = float ( input ( 'weight:' ))
bmi =  w / h * * 2
if  bmi <  18.5 :
     print ( 'BMI=%0.2f,过轻' % bmi)
elif  bmi < 25 :
     print ( 'BMI=%0.2f,正常' % bmi)
elif  bmi < 28 :
     print ( 'BMI=%0.2f,过重' % bmi)
elif  bmi < 32 :
     print ( 'BMI=%0.2f,肥胖' % bmi)
else :
     print ( 'BMI=%0.2f,严重肥胖' % bmi)

一个数x的n次方的表达方法:

1
2
3
4
5
6
7
8
9
10
#x=x**n;
#x=pow(x,n)
>>> h = 1.75
>>> h = pow (h, 2 )
>>> h
3.0625
>>> h = 1.75
>>> h = h * * 2
>>>  print (h)
3.0625




本文转自 nw01f 51CTO博客,原文链接:http://blog.51cto.com/dearch/1753268,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值