Skip to content

Commit d6c9c1b

Browse files
committed
p3
1 parent 9fa1cd1 commit d6c9c1b

2 files changed

Lines changed: 95 additions & 28 deletions

File tree

122.md

Lines changed: 76 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,28 @@
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)&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;[上节:语句(1)](./121.md)&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;[下节:语句(3)](./123.md)

1code/122p3.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#! /usr/bin/env python
2+
#coding:utf-8
3+
4+
print("请输入任意一个整数数字:")
5+
6+
number = int(input())
7+
8+
if number == 10:
9+
print("您输入的数字是:{}".format(number))
10+
print("You are SMART.")
11+
elif number > 10:
12+
print("您输入的数字是:{}".format(number))
13+
print("This number is more than 10.")
14+
elif number < 10:
15+
print("您输入的数字是:{}".format(number))
16+
print("This number is less than 10.")
17+
else:
18+
print("Are you a human?")
19+

0 commit comments

Comments
 (0)