设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 26319|回复: 12
打印 上一主题 下一主题

【Python 第23课】 if, elif, else

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-24 18:30:02 |只看该作者 |正序浏览
今天补充之前讲过的一个语句: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


#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2017-2-25 22:10:01 |只看该作者
brahmagupta 发表于 2017-2-24 18:57
那格式上和可读性上是一大挑战啊,如果判断条件多的话。

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

但本质上来说,和switch是一样的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

145

积分

注册会员

Rank: 2

12#
发表于 2017-2-24 18:57:45 |只看该作者
crossin先生 发表于 2017-2-24 16:50
没有
要用 if elif 来实现

那格式上和可读性上是一大挑战啊,如果判断条件多的话。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

11#
发表于 2017-2-24 16:50:16 |只看该作者
brahmagupta 发表于 2017-2-24 12:14
crossin老师,python里有 类似switch这种条件语句么?

没有
要用 if elif 来实现
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

145

积分

注册会员

Rank: 2

10#
发表于 2017-2-24 12:14:27 |只看该作者
crossin老师,python里有 类似switch这种条件语句么?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2016-1-21 11:16:49 |只看该作者
mengnanlong 发表于 2016-1-20 18:17
十分感谢,crossin老师~~老师,我想以3为基础学习,有没有什么推荐的课本?还是你觉得初学者从2学比较好 ...

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

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

可以先看下这课
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

80

积分

注册会员

Rank: 2

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

十分感谢,crossin老师~~老师,我想以3为基础学习,有没有什么推荐的课本?还是你觉得初学者从2学比较好?因为现在找到的大部分教材都是2的
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

7#
发表于 2016-1-19 20:59:59 |只看该作者
mengnanlong 发表于 2016-1-19 16:06
crossin老师,关于比大小那道题,用python3.5版本的,我想浮点数和整数相比较,然后输出的时候,既可以输出 ...

python3的input相当于2的raw_input,得到的是一个字符串。
如果要取值,需要再转一下:
a=eval(input())
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

80

积分

注册会员

Rank: 2

6#
发表于 2016-1-19 16:06:08 |只看该作者
crossin老师,关于比大小那道题,用python3.5版本的,我想浮点数和整数相比较,然后输出的时候,既可以输出浮点数或者整数,这个要怎么实现啊?
回复

使用道具 举报

0

主题

0

好友

80

积分

注册会员

Rank: 2

5#
发表于 2016-1-19 15:29:57 |只看该作者
crossin老师,我用python3.5版本的做那道最大值的题,我按照你的输入进去,结果输出的时候出错了,我分别输入的:
121.121.12
3
输出的:
3

您知道是为什么吗?

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

question.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 09:08 , Processed in 0.017934 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部