if 判断句和 else、elif 语法
本文最后更新于 1599 天前,其中的信息可能已经有所发展或是发生改变。

程序的判断

为了让程序能够在执行时有不同的选择,因此程序语言通常都有判断句的语法,让程序在执行时可以依照所给的条件内容来决定到底要做哪件事情。判断句以人类的语言来看就如同这种句子:

吃早餐
如果今天下雨就带雨伞并穿雨鞋
如果今天没下雨就穿球鞋
出门
工作
回家
睡觉

对于今天下雨到底要不要带伞换鞋,就是一种判断句,由条件「是否下雨」来决定要做什么事情「打伞换鞋」。

接下来介绍 Pyhton 的判断句

if 判断句

if 在英文里的意思是「如果」,所以其实可以很直觉的就直接联想成中文的「如果」,Python 的判断句长的像这样:

if 条件:
成立的话要做的事情

它是由 if 开头,隔一个以上的空白,然后接条件,再接一个冒号,断行后要有固定的缩排,把要做的事情区块挤出来。把它想成中文就是:

如果条件成立的话,就做要做的事情。

缩排

Python 用缩排来区分程序的区块。所谓的缩排,就是指用一定数量的空白,将代码往右挤,形成整齐的巢状结构,这样就很容易看得懂代码,但是在 Pyhton 缩排被拿来当程序判断区块的规则,所以在 Python 里不得不缩排。虽然 Python 没有规定缩排要几个空白,但是最好一整个档案里的缩排都用一定的个数,避免突然用4个,另一个地方用2个,这样会造成混乱。

逻辑运算

有了判断句之后,还有一个重要的地方,就是条件。想要判断条件就需要用上逻辑运算。逻辑运算有好几种:

==  相等,两边相等时为真
!=  不相等,两边不相等时为真
<  小于,左边小于右边时为真
>  大于,左边大于右边时为真
<=  小于等于,左边小于等于右边时为真
>=  大于等于,左边大于等于右边时为真
or  或,左右两边只要有一个为真时为真
and 且,左右两边都为真时为真
not 否定,右边为真时为假,为假时为真

所谓的「真」就是指成立的意思,假也就是不成立的意思。在 Python 里面有两个字用来表示真和假,分别为 True 和 False,要注意的是大小写都要一样。

以下为 if 判断句以及逻辑运算的几段小示范,每段示范都可以单独测试:

#!/usr/bin/python
# -*- coding: utf-8 -*-

# 例子A
if 1 + 1 == 2:
    print '如你所见,1+1等于2。'
    print '在同一缩排里。'
    print '都被视为同样的区块。'
    print '也就是条件成立时会执行的代码区块。'
    print '如果if里的加法结果不等于2,则此段代码不会打印出来。'

    if True:
        print 'Yes, it is true.\n'

a = 10

if a == 10:
    print 'a等于10'
    print '在区块里都要一样的缩排长度'

    if a % 2 == 0:
        print 'a是2的倍数'
        print '这一行一样是同一个区块\n'

# 例子B
if 10 % 2 == 0 and 10 % 5 == 0:
    print '10是2和5的倍数'

a = 10
b = 20

if a < b:
    print 'a小于b\n'

# 例子C
number = 5
guess = int(raw_input('已知number等于5,\
输入一个大于5或者小于5的数字赋予guess:'))

if number == guess:
    print '是的,number等于guess。'

    if True:
        print 'Done.'

if number > guess:
    print '是的,number大于guess。'

    if True:
        print 'Done.'

if number < guess:
    print '是的,number小于guess。'

    if True:
        print 'Done.'

# 例子D
number = 10
guess = int(raw_input('已知number等于10,\
输入一个大于或者小于10的数字赋予guess:'))

if not number >= guess:
    print 'number「10」并非大于等于你输入的guess值「%d」。' % guess

if not number <= guess:
    print 'number「10」并非小于等于你输入的guess值「%d」。' % guess

if number == guess:
    print 'number「10」和你输入的值「%d」相等。' % guess

else 语法

有时候,我们除了会讲如果怎样怎样,有时候也会反过来想那没有的话怎么办。在程序语言里就是 else。如果程序不成立就会跳到 else 区块里去执行。

elif 语法

又有些时候,我们会针对一件事情想很多对策,如果签名的不行,就换下一项继续。elif 在程序语言里就是这样的角色。

将 elif 和 else 联想成中文语义可以是:

如果「if」 下雨 就帶雨傘
不然如果「elif」 下雪 就帶雪衣
再不然如果「elif」,出太陽 就戴太陽眼鏡
如果都不是的話「else」 就躲在家裡

可以参考下面的示范:

#!/usr/bin/python
# -*- coding: utf-8 -*- 

if 10 % 2 == 0 and 10 % 2 == 0:
    print "10是2和5的倍数"
else:
    print "10不是2和5的倍数"

a = 10
b = 20

if a > b:
    print "a大于b"
else:
    print "a小于等于b\n"

number = 10
guess = int(raw_input('已知number为10,\
为guess赋予一个大于或小于10的整数:'))

if number > guess:
    print "你输入的值「%d」小于number「10」" % guess
elif number < guess:
    print "你输入的值「%d」大于number「10」" % guess
else:
    print "你输入的值「%d」与number相同" % guess
本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。
免责声明:本站文章除特殊说明为原创禁转外,您可以自由的转载和修改,但请务必注明文章来源并不可用于商业目的。

评论

  1. Maverick Chan
    7年前
    2017-5-19 14:28:35

    谢谢通俗易懂的解释~喵~

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇