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