66
77##if
88
9- if,其含义就是:conj. (表条件)如果。if发起的就是一个条件,它是构成条件语句的关键词。
9+ if翻译为中文是“如果”。它所发起的就是一个条件语句。
10+
11+ 换言之,if是是构成条件语句的关键词。
12+
13+ 最简单的方式,就是:
14+
15+ if bool(conj):
16+ do something
17+
18+ 一个非常简单的例子:
1019
1120 >>> a = 8
12- >>> if a== 8:
13- ... print a
21+ >>> if a == 8:
22+ ... print a #Python 3: print(a)
1423 ...
1524 8
1625
17- 在交互模式下,简单书写一下if发起的条件语句。特别说明,我上面这样写,只是简单演示一下。如果你要写大段的代码,千万不要在交互模式下写 。
26+ 简单解释 。
1827
19- ` if a==8: ` ,这句话里面如果条件` a==8 ` 返回的是True,那么就执行下面的语句。特别注意,冒号是必须的。下面一行语句` print a ` 要有四个空格的缩进。这是python的特点,称之为语句块。
28+ ` if a==8: ` ,这句话里面如果条件` a==8 ` 返回的是True,那么就执行下面的语句。特别注意,冒号是必须的。下面一行语句` print a ` (Python 3: ` print(a) ` )要有四个空格的缩进。这是Python的特点,称之为语句块。
29+
30+ 重要的话说几遍都不为过,“要缩进四个空格”。
2031
2132唯恐说的不严谨,我还是引用维基百科中的叙述:
2233
@@ -29,58 +40,87 @@ if,其含义就是:conj. (表条件)如果。if发起的就是一个条
2940- 必须要通过缩进方式来表示语句块的开始和结束
3041- 缩进用四个空格(也是必须的,别的方式或许可以,但不提倡)
3142
32- ##if/else/ elif
43+ ##if ... elif ... else
3344
3445在进行条件判断的时候,只有if,往往是不够的。比如下图所示的流程
3546
3647![ ] ( ./1images/12201.png )
3748
3849这张图反应的是这样一个问题:
3950
40- 输入一个数字,并输出输入的结果,如果这个数字大于10,那么同时输出大于10, 如果小于10,同时输出提示小于10, 如果等于10, 就输出表扬的一句话。
51+ 输入一个数字,判断该数字和10的大小关系。如果大于10,则输出大于10的提示; 如果小于10,则输出小于10的提示; 如果等于10, 就输出表扬的一句话。
4152
42- 从图中就已经显示出来了,仅仅用if来判断 ,是不足的,还需要其它分支。这就需要引入别的条件判断了。所以,有了if ...elif...else语句 。
53+ 从图中就已经显示出来了,仅仅用 ` if ` 来判断 ,是不足的,还需要其它分支。这就需要引入别的条件判断了。所以,有了 ` if ... elif ... else ` 语句 。
4354
4455基本样式结构:
4556
4657 if 条件1:
47- 执行的内容1
58+ 语句块1
4859 elif 条件2:
49- 执行的内容2
60+ 语句块2
5061 elif 条件3:
51- 执行的内容3
62+ 语句块3
63+ ...
5264 else:
53- 执行的内容4
65+ 语句块4
66+
67+ ` elif ` 和` else ` 发起的部分,都可以省了,那时就回归到了只有一个` if ` 的情况了。
5468
55- elif用于多个条件时使用,可以没有。另外,也可以只有if,而没有else 。
69+ 为了应付多条件判断,就不能省略 。
5670
57- 下面我们就不在交互模式中写代码了。打开文本编辑界面,你的编辑器也能提供这个功能,如果找不到,请回到 [ 《写一个简单的程序》 ] ( ./105.md ) 查看 。
71+ 下面我们就不在交互模式中写代码了。打开你选择的写Python代码的编辑器,它一定得是你认为最好的武器 。
5872
59- 代码实例如下 :
73+ Python 2的代码如下 :
6074
6175 #! /usr/bin/env python
6276 #coding: utf-8
6377
6478 print "请输入任意一个整数数字:"
6579
6680 number = int(raw_input()) #通过raw_input()输入的数字是字符串
67- #用int()将该字符串转化为整数
81+ #用int()将该字符串转化为整数
6882
6983 if number == 10:
7084 print "您输入的数字是:%d"%number
7185 print "You are SMART."
7286 elif number > 10:
73- print "您输入的数字是:%d"% number
87+ print "您输入的数字是:{}".format( number)
7488 print "This number is more than 10."
7589 elif number < 10:
76- print "您输入的数字是:%d"% number
90+ print "您输入的数字是:{}".format( number)
7791 print "This number is less than 10."
7892 else:
7993 print "Are you a human?"
8094
81- 特别提醒看官注意,前面我们已经用过raw_input()函数了,这个是获得用户在界面上输入的信息,而通过它得到的是字符串类型的数据。
95+ Python 3的代码如下:
96+
97+ #! /usr/bin/env python
98+ #coding:utf-8
99+
100+ print("请输入任意一个整数数字:")
101+ number = int(input())
102+
103+ if number == 10:
104+ print("您输入的数字是:{}".format(number))
105+ print("You are SMART.")
106+ elif number > 10:
107+ print("您输入的数字是:{}".format(number))
108+ print("This number is more than 10.")
109+ elif number < 10:
110+ print("您输入的数字是:{}".format(number))
111+ print("This number is less than 10.")
112+ else:
113+ print("Are you a human?")
114+
115+ 对上述程序,需要说明几点。
82116
83- 上述程序,依据条件进行判断,不同条件下做不同的事情了。需要提醒的是在条件中:number == 10,为了阅读方便,在number和==之间有一个空格最好了,同理,后面也有一个。这里的10,是int类型,number也是int类型.
117+ - ` #! /usr/bin/env python ` 。因为我是在Ubuntu操作系统中调试的程序,所以这个是必须的。如果你是在windows里面,可以省略。
118+ - ` #coding:utf-8 ` 。在程序中有中文,有英文,即便是没有中文,也要声明程序的编码格式是utf-8。
119+ - ` raw_input() ` 或者` input() ` 得到的是字符串,因为在程序中,要将输入的数字跟整数10进行比较,所以要将该字符串转化为整数,因此使用了` int() ` 函数。
120+
121+ 上述程序,依据条件进行判断,不同条件下做不同的事情了。
122+
123+ 需要提醒的是,在书写在条件` number == 10 ` 时,为了阅读方便,在` number ` 和` == ` 之间有一个空格最好了,同理,后面也有一个。这里的10是整数类型,number也是。
84124
85125把这段程序保存成一个扩展名是.py的文件,比如保存为` num.py ` ,进入到存储这个文件的目录,运行` python num.py ` ,就能看到程序执行结果了。下面是我执行的结果,供参考。
86126
@@ -102,24 +142,30 @@ elif用于多个条件时使用,可以没有。另外,也可以只有if,
102142 您输入的数字是:9
103143 This number is less than 10.
104144
105- 不知道各位是否注意到,上面的那段代码,开始有一行:
145+ 最后,补充说明 ` #! /usr/bin/env python ` 的含义。
106146
107- #! /usr/bin/ env python
147+ 这句话以#开头,表示本来不在程序中运行。这句话的用途是告诉机器(如Ubuntu类型的操作系统)寻找到该设备上的Python解释器,操作系统使用它找到的解释器来运行文件中的程序代码。有的程序里写的是 ` /usr/bin python ` ,表示Python解释器在 ` /usr/bin ` 里面。但是,如果写成 ` /usr/bin/ env` ,则表示要通过系统搜索路径寻找Python解释器。不同系统,可能解释器的位置不同,所以这种方式能够让代码更将拥有可移植性。
108148
109- 这是什么意思呢?
149+ 上述补充解释不适用于windows系统。
110150
111- 这句话以#开头,表示本来不在程序中运行。这句话的用途是告诉机器寻找到该设备上的python解释器,操作系统使用它找到的解释器来运行文件中的程序代码。有的程序里写的是/usr/bin python,表示python解释器在/usr/bin里面。但是,如果写成/usr/bin/env,则表示要通过系统搜索路径寻找python解释器。不同系统,可能解释器的位置不同,所以这种方式能够让代码更将拥有可移植性。对了,以上是对Unix系列操作系统而言。对与windows系统,这句话就当不存在。
112-
113- 在“条件”中,就是上节提到的各种条件运算表达式,如果是True,就执行该条件下的语句。
151+ 现在读者是否已经明晰,所谓条件语句中的“条件”中,就是各种条件运算表达式或者布尔值,如果是` True ` ,就执行该条件下的语句块。
114152
115153##三元操作符
116154
117155三元操作,是条件语句中比较简练的一种赋值方式,它的模样是这样的:
118156
119157 >>> name = "qiwsir" if "laoqi" else "github"
158+
159+ 先思考一个问题,` if "laoqi" ` ,这里似乎没有条件表达式,Python怎么判断?
160+
161+ 的确没有条件表达式,事实上,它就等同于` if bool("laoqi") ` 。
162+
120163 >>> name
121164 'qiwsir'
122165 >>> name = 'qiwsir' if "" else "python"
166+
167+ 而这里的` if "" ` 就相当于` if bool("") ` (注意写法上,两个引号之间没有空格)。还要多说一句,这里列举的方式,纯粹是为了理解三元操作符,不具有实战价值。
168+
123169 >>> name
124170 'python'
125171 >>> name = "qiwsir" if "github" else ""
@@ -137,13 +183,15 @@ elif用于多个条件时使用,可以没有。另外,也可以只有if,
137183
138184 >>> x = 2
139185 >>> y = 8
140- >>> a = "python" if x> y else "qiwsir"
186+ >>> a = "python" if x > y else "qiwsir"
141187 >>> a
142188 'qiwsir'
143- >>> b = "python" if x< y else "qiwsir"
189+ >>> b = "python" if x < y else "qiwsir"
144190 >>> b
145191 'python'
146192
193+ ` if ` 所引起的条件语句使用非常普遍,当然也比较简单。
194+
147195------
148196
149197[ 总目录] ( ./index.md )   ;  ;  ; |  ;  ;  ; [ 上节:语句(1)] ( ./121.md )   ;  ;  ; |  ;  ;  ; [ 下节:语句(3)] ( ./123.md )
0 commit comments