速通Python 第三节
一、顺序语句
默认情况下
, Python
的代码执行顺序是按照从上到下的顺序
,
依次执行
print("1")
print("2")
print("3")
执行结果一定为
"123",
而不会出现
"321"
或者
"132"
等
.
这种按照顺序执行的代码
,
我们称为
顺序语句
.
二、条件语句
什么是条件语句
条件语句能够表达
"
如果
...
否则
..."
这样的语义
.
这构成了计算机中基础的
逻辑判定
.
条件语句
也叫做
分支语句
,
表示了接下来的逻辑可能有几种走向。
例如:
如果 我认真敲代码
我就很容易找到工作
否则
我就容易毕业就失业
其中
"
我认真敲代码
"
称为
条件
.
如果条件成立
(
条件为真
),
则会出现
"
我就很容易找到工作
"
这个情况
.
如 果条件不成立(
条件为假
),
则会出现
"
我就容易毕业就失业
".
三、语法格式
python
中使用
if else
关键字表示条件语句
.
(1) if
if expression:
do_something1
do_something2
next_something
如果
expression
值为
True,
则执行
do_something1, do_something2, next_something
如果 expression 值为 False,
则只执行
next_something,
不执行
do_something1, do_something2
(2) if - else
if expression:
do_something1
else:
do_something2
如果 expression 值为 True, 则执行 do_something1
如果 expression 值为 False, 则执行 do_something2
(3) if - elif - else
if expression1:
do_something1
elif expression2:
do_something2
else:
do_something3
如果 expression1 值为 True, 则执行 do_something1
如果 expression1 值为 False, 并且 expression2 为 True 则执行 do_something2
如果
expression1
值为
False,
并且
expression2
为
False
则执行
do_something3
注意: Python中的条件语句写法, 和很多编程语言不太一样.
- if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾.
- if / else 命中条件后要执行的 "语句块", 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
- 对于多条件分支, 不是写作 else if, 而是 elif (合体了).
四、缩进和代码块
代码块 指的是一组放在一起执行的代码
.
在
Python
中使用缩进表示代码块
.
不同级别的缩进
,
程序的执行效果是不同的
我们来看看下面两段代码
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
a = input("请输入一个整数: ")
if a == "1":
print("hello")
print("world")
这两代码的区别
.
上面的代码
中
,
print("world")
有一级缩进
,
这个语句属于
if
内的代码块
,
意味着条件成立
,
才执行
,
条件不成立,
则不执行
.
下面的代码中
,
print("world")
没有缩进
,
这个语句是
if
外部的代码
,
不属于
if
内部的代码块
.
意味着条件
无论是否成立
,
都会执行
.
另外
,
代码块内部还可以嵌套代码块
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
if b == "2":
print("hello")
print("world")
print("python")
在这个代码中
,
- print("hello") 具有两级缩进, 属于 if b == "2" 条件成立的代码块.
- print("world") 具有一级缩进, 属于 if a == "1" 条件成立的代码块.
- print("python") 没有缩进, 无论上述两个条件是否成立, 该语句都会执行
基于缩进的方式表示代码块
,
带来的好处就是强制要求程序猿要写明确的缩进
,
来明确代码之间的相对关系.
如果缩进书写的不对
,
则直接报错.
(不像 C++ / Java 这些语言, 即使完全不写缩进, 语法也不会报错. 代码可读性就比较差)
同时
,
带来的坏处就是
,
如果缩进层次比较多
,
就容易分不清楚某个语句属于哪个层级
if a == 1:
if b == 2:
if c == 3:
if d == 4:
if e == 5:
if f == 6:
if g == 7:
print("hello")
print("1")
print("2")
因此
,
就有了
"
写
Python
需要自备游标卡尺
"
这个梗
.
五、空语句 pass
代码示例
:
输入一个数字
,
如果数字为
1,
则打印
hello
a = int(input("请输入一个整数:"))
if a == 1:
print("hello")
我们也可以通过空语句改写成
a = int(input("请输入一个整数:"))
if a != 1:
pass
else:
print("hello")
其中
pass
表示
空语句
,
并不会对程序的执行有任何影响
,
只是占个位置
,
保持
Python
语法格式符合要求.
如果代码像C++那样写作
a = int(input("请输入一个整数:"))
if a != 1:
else:
print("hello")
是不符合
Python
语法的
,
会直接报错
.
六、循环语句
有些操作是需要反复执行的
.
这种就需要使用循环
1.while 循环
基本语法格式
while 条件:
循环体
- 条件为真, 则执行循环体代码.
- 条件为假, 则结束循环
那么大家现在试着通过循环打印1-10吧
代码示例如下:
num = 1
while num <= 10:
print(num)
num += 1
我们也可以试着计算 1-100 的和
代码示例如下:
sum = 0
num = 1
while num <= 100:
sum += num
num += 1
print(sum)
下面增加难度,请大家用代码计算1! + 2! + 3! + 4! + 5!
代码示例如下:
num = 1
sum = 0
while num <= 5:
factorResult = 1
i = 1
while i <= num:
factorResult *= i
i += 1
sum += factorResult
num += 1
print(sum)
该程序用到了两重循环.,循环语句中也可以套循环
2.for 循环
基本语法格式
for 循环变量 in 可迭代对象:
循环体
注意:
- python 的 for 和其他语言不同, 没有 "初始化语句", "循环条件判定语句", "循环变量更新语句", 而是更加简单
- 所谓的 "可迭代对象: 打印 1-10", 指的是 "内部包含多个元素, 能一个一个把元素取出来的特殊变量"
我们可以通过这个循环打印 1-10
for i in range(1, 11):
print(i)
使用
range
函数
,
能够生成一个可迭代对象
.
生成的范围是
[1, 11), 左闭右开,
也就是
[1, 10]
我们也可通过range打印印
2, 4, 6, 8, 10
for i in range(2, 12, 2):
print(i)
通过
range
的第三个参数
,
可以指定迭代时候的
"
步长
".
也就是一次让循环变量加几
.
因此我们也可以
打印
10-1
for i in range(10, 0, -1):
print(i)
注意:range
的 步长 也可以设定成负数
3.continue
continue
表示结束这次循环
,
进入下次循环
.
例如打印1,2,4,5
for i in range(1, 6):
if i == 3:
continue
print(i)
4.break
break
表示结束整个循环
例如:
输入若干个数字
,
求平均值
.
使用
"
分号
"
作为结尾
sum = 0
count = 0
while True:
num = input("请输入数字:")
if num == ';':
break
num = float(num)
sum += num
count += 1
print(sum / count)