Crossin的编程教室

标题: 【Python 第23课】 if, elif, else [打印本页]

作者: crossin先生    时间: 2014-4-24 18:30
标题: 【Python 第23课】 if, elif, else
今天补充之前讲过的一个语句:if。为什么我跳要着讲,因为我的想法是先讲下最最基本的概念,让你能用起来,之后你熟悉了,再说些细节。

关于if,可以发送数字『7』回顾之前的课程。它除了我们之前讲的用法外,还可以配合elif和else使用,使程序的运行顺序更灵活。

之前说的if,是:“如果”条件满足,就做xxx,否则就不做。
else顾名思义,就是:“否则”就做yyy。
0.jpeg

当if后面的条件语句不满足时,与之相对应的else中的代码块将被执行。

if a == 1:
   print 'right'
else:
   print 'wrong'

elif意为else if,含义就是:“否则如果”条件满足,就做yyy。elif后面需要有一个逻辑判断语句。
0 (1).jpeg
当if条件不满足时,再去判断elif的条件,如果满足则执行其中的代码块。

if a == 1:
   print 'one'
elif a == 2:
   print 'two'

if, elif, else可组成一个整体的条件语句。
if是必须有的;
elif可以没有,也可以有很多个,每个elif条件不满足时会进入下一个elif判断;
else可以没有,如果有的话只能有一个,必须在条件语句的最后。

if a == 1:
   print 'one'
elif a == 2:
   print 'two'
elif a == 3:
   print 'three'
else:
   print 'too many'

我们昨天刚改写的小游戏中的函数isEqual,用了三个条件判断,我们可以再改写成一个包含if...elif...else的结构:

def isEqual(num1, num2):
   if num1<num2:
       print 'too small'
       return False;
   elif num1>num2:
       print 'too big'
       return False;
   else:
       print 'bingo'
       return True

0 (2).jpeg



作者: s201073009    时间: 2015-1-26 08:14
请问bingo = False 什么作用?
作者: s201073009    时间: 2015-1-26 08:16
最后的程序没看懂……bingo = False 之后怎么运行的呢?
作者: crossin先生    时间: 2015-1-26 13:24
s201073009 发表于 2015-1-26 08:16
最后的程序没看懂……bingo = False 之后怎么运行的呢?

哪里的代码?

while那一课里,bingo = False只是给bingo一个初始条件,让whie可以执行
作者: mengnanlong    时间: 2016-1-19 15:29
crossin老师,我用python3.5版本的做那道最大值的题,我按照你的输入进去,结果输出的时候出错了,我分别输入的:
121.121.12
3
输出的:
3

您知道是为什么吗?

question.png (24.76 KB, 下载次数: 743)

question.png


作者: mengnanlong    时间: 2016-1-19 16:06
crossin老师,关于比大小那道题,用python3.5版本的,我想浮点数和整数相比较,然后输出的时候,既可以输出浮点数或者整数,这个要怎么实现啊?
作者: crossin先生    时间: 2016-1-19 20:59
mengnanlong 发表于 2016-1-19 16:06
crossin老师,关于比大小那道题,用python3.5版本的,我想浮点数和整数相比较,然后输出的时候,既可以输出 ...

python3的input相当于2的raw_input,得到的是一个字符串。
如果要取值,需要再转一下:
a=eval(input())
作者: mengnanlong    时间: 2016-1-20 18:17
crossin先生 发表于 2016-1-19 20:59
python3的input相当于2的raw_input,得到的是一个字符串。
如果要取值,需要再转一下:
a=eval(input()) ...

十分感谢,crossin老师~~老师,我想以3为基础学习,有没有什么推荐的课本?还是你觉得初学者从2学比较好?因为现在找到的大部分教材都是2的
作者: crossin先生    时间: 2016-1-21 11:16
mengnanlong 发表于 2016-1-20 18:17
十分感谢,crossin老师~~老师,我想以3为基础学习,有没有什么推荐的课本?还是你觉得初学者从2学比较好 ...

我建议是2,很多教材是2,很多库也还停留在对2的支持上。而且2学好了,转3也不是难事。

【Python 第63课】python 2到3的新手坑

可以先看下这课
作者: brahmagupta    时间: 2017-2-24 12:14
crossin老师,python里有 类似switch这种条件语句么?
作者: crossin先生    时间: 2017-2-24 16:50
brahmagupta 发表于 2017-2-24 12:14
crossin老师,python里有 类似switch这种条件语句么?

没有
要用 if elif 来实现
作者: brahmagupta    时间: 2017-2-24 18:57
crossin先生 发表于 2017-2-24 16:50
没有
要用 if elif 来实现

那格式上和可读性上是一大挑战啊,如果判断条件多的话。
作者: crossin先生    时间: 2017-2-25 22:10
brahmagupta 发表于 2017-2-24 18:57
那格式上和可读性上是一大挑战啊,如果判断条件多的话。

是,就是一串
if
elif
elif
...

但本质上来说,和switch是一样的




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5