Python之条件判断

  计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

  比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:

  1. age = 20
  2. if age >= 18:
  3. print('your age is', age)
  4. print('adult')

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

  也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了:

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

  注意不要少写了冒号:

  当然上面的判断是很粗略的,完全可以用elif做更细致的判断:

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

  elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

  1. if <条件判断1>:
  2. <执行1>
  3. elif <条件判断2>:
  4. <执行2>
  5. elif <条件判断3>:
  6. <执行3>
  7. else:
  8. <执行4>

  if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse,所以,下面的程序打印的是teenager

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

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

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

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

再议 input

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

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

输入1982,结果报错:要转换类型。

  1. Traceback (most recent call last):
  2. File "<stdin>", line 1, in <module>
  3. TypeError: unorderable types: str() > int()

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

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

或者:

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

再次运行,就可以得到正确地结果。

但是,如果输入abc呢?又会得到一个错误信息:

  1. Traceback (most recent call last):
  2. File "<stdin>", line 1, in <module>
  3. ValueError: invalid literal for int() with base 10: 'abc'

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

  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. # 注意:
  5. # input()返回的是字符串
  6. # 必须通过int()将字符串转换为整数
  7. # 才能用于数值比较:
  8. age = int(input('Input your age: '))
  9.  
  10. if age >= 18:
  11. print('adult')
  12. elif age >= 6:
  13. print('teenager')
  14. else:
  15. print('kid')

练习

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

  • 低于18.5:过轻
  • 18.5-25:正常
  • 25-28:过重
  • 28-32:肥胖
  • 高于32:严重肥胖

if-elif判断并打印结果:

  1. # -*- coding: utf-8 -*-
  2. height = 1.75
  3. weight = 80.5
  4.  
  5. bmi = weight/(height*height)
  6. if bmi<18.5:
  7. print("过轻")
    elif bmi<25:
      print("正常")
    elif bmi<28:
      print("过重")
    elif bmi<32
      print("肥胖")
    else
      print("严重肥胖")

条件判断可以让计算机自己做选择,Python的if...elif...else很灵活。

条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行。

Python之条件判断的更多相关文章

  1. Python基础——条件判断

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 到目前为止,Python基础系列的文章中的程序都是一条一条语句顺序执行的.在本章中,我会重点介绍让程序选择是否执行语 ...

  2. Python之条件判断和循环(入门4)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407755.html 本文出自:[Edwin博客园] Python之条件判断和循环 1. Python之if ...

  3. python之条件判断、循环和字符串格式化

    1. python的条件判断:if和else 在条件判断中可以使用算数运算符 等于:== 不等于:!= 大于:> 小于:< 大于等于:>= 小于等于:<= 示例1: usern ...

  4. python(1) - 条件判断和循环

    条件判断: 比如输入用户年龄,根据年龄打印不同的内容,在python中用if语句实现: age = 20 if age >= 18: print('你可以看这个视频!') 可以给if加一个els ...

  5. python之--条件判断和循环

    Python之判断 和其他语言一样,python同样具有条件判断和循环的操作,比如我们可以编写一个简单的判断操作:使用if关键字可以达到判断的效果,如下例: >>> test_if ...

  6. 复习python(条件判断、循环、字符串格式化)

    1.条件判断: 只有一种 if: *** elif:#多个条件加elif,想加几个加几个 **** else: **** python里靠缩进来表示表示语句块,见到冒号,下行就要缩进 2.循环 两种, ...

  7. Python的条件判断语句------if/else语句

    计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户的年龄,根据年龄打印不同的内容... Python程序中,能让计算机自己作出判断的语句就是if语句: 例: age = 25 ...

  8. python的条件判断

    条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...

  9. Python基础(条件判断和循环) if elif else for while break continue;

    条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...

随机推荐

  1. 小程序 video 层级,原生组件

    原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上. 后插入的原生组件可以覆盖之前的原生组件. 原生组件还无法在 scroll-view.swiper. ...

  2. 第四代增强 NEW BADI的定义及实现

    NEW BADI 是在第四代增强框架下创建的BADI,是相对于第三代增强Classic Badi 而言的. 根据第四代增强的基本概念,所有显式增强Enhancement options 都必须放在增强 ...

  3. js判断是否为ie浏览器,精确显示各个ie版本

    function IETester(userAgent){     var UA =  userAgent || navigator.userAgent;     if(/msie/i.test(UA ...

  4. python代码覆盖率coverage简介与用法

    如果衡量单元测试对相应代码的测试重量,覆盖率是一个必要非充分条件,因此统计代码的覆盖率,检视单测是否充分,就尤为的重要.这里针对python-unittest的单测的覆盖率coverage进行使用说明 ...

  5. codevs 3044 矩形面积求并 || hdu 1542

    这个线段树的作用其实是维护一组(1维 平面(?) 上的)线段覆盖的区域的总长度,支持加入/删除一条线段. 线段树只能维护整数下标,因此要离散化. 也可以理解为将每一条处理的线段分解为一些小线段,要求每 ...

  6. 思维题 Gym 100553A Alter Board

    题目传送门 /* 题意:一个n×m的矩形,相邻的颜色不同,黑或白.问最少的翻转次数,每次翻转可指定任意一个子矩形 思维题:最少要把偶数行和列翻转,也就是n/2+m/2次 */ #include < ...

  7. C#委托的用法 在C#中我想在一个方法中调用另一个按钮的事件,怎样来实现?

    最开始我也不清楚,后来我是这样想了. 1.事件和委托不是一个概念,你如果是调用control的事件,可以直接在其对应的事件eventhandler上attach自己的事件方法就好了如:this.But ...

  8. ambari-server启动WARN qtp-ambari-client-87] ServletHandler: 563 /api/v1/stacks/HDP/versions/2.4/recommendations java.lang.NullPointerException报错解决办法(图文详解)

      问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如 ...

  9. .NET通过字典给类赋值

    /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam& ...

  10. jsp中提示修改成功

    修改成功提示 servert包 request.setAttribute("success", "修改失败"); 效果而 function f(){ var n ...