一.顺序语句
顺序语句就是程序运行的默认顺序,从第一行执行到最后一行。例如下面展示的代码,执行结果一定是,111,222,333,不会出现其他情况。这个规则能够规避很多问题,试想,先结婚在生孩子,和先生孩子在结婚是完全不一样的,先生孩子在结婚肯定会带来很对不必要的麻烦。
print('111')
print('222')
print('333')
二.条件语句
1.什么是条件语句?
条件语句能够表达“如果…否则…”这样的语句,这就构成了计算机中基础的 逻辑判定 。
条件语句也叫做分支语句,表示接下来的逻辑可能有几种走向。
如果 我认真敲代码
我就容易找到工作
否则
我就容易毕业即失业
其中,“我认真敲代码”称为“条件”,如果条件成立(条件为真),则会出现“我就很容易找到工作”这个情况。如果条件不成立(条件为假),则会出现“我就容易毕业即失业”。
当然,同样的逻辑,还可以反着表达。
如果 我选择躺平摆烂
我就容易毕业即失业
否则
我就很容易找到工作
虽然结构变了,但是整体表达的语义是等价的。
2.语法格式
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.
# 让用户输入一个数字,如果输入1 表示愿意认真学习,输入2 表示想躺平摆烂
choice = input("输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂:")
# 注意这里要比较的是 字符串 1 ,不是 整数 1
if choice == '1':
print('你能够找到好工作')
else:
print('你可能毕业即失业')
这就是上述代码的简单案例,但是上述代码存在一个严重的问题,整个代码只包含了输入1,2,的情况,但是输入其他数字时,可能会出现问题。
就比如,我输入的值是 3 ,按道理是得不到上面两个结果的,但是仍然得到了上述结果,所以我们改进代码。
# 让用户输入一个数字,如果输入1 表示愿意认真学习,输入2 表示想躺平摆烂
choice = input("输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂:")
# 注意这里要比较的是 字符串 1 ,不是 整数 1
if choice == '1':
print('你能够找到好工作')
elif choice == '2':
print('你可能毕业即失业')
else:
#除了 1 和 2 其他的情况都算非法情况
print("您的输入有误!")
对于非法情况的判定,也是非常必要的!你永远不知道用户会如何进行操作!
3.缩进和代码块
代码的缩进至关重要,有没有缩进
if a =='1'
print('aaaa')
print('bbbb')
如果条件成立,那么 aaaa 和 bbbb 都会打印。
如果条件不成立,那么都不会打印!
if a == 1
print('aaaa')
print('bbbb')
bbbb 和条件无关了,条件是否成立都会打印 bbbb,不属于条件语句中的内容了。
在 Python 中,缩进表示代码块,有具体的含义,所以缩进必须严格符合规定,不能乱写,符合缩进的规范,代码也具有的更高的可读性。
4.代码块的嵌套
a = input("请输入 a 的值:")
b = input("请输入 b 的值:")
if a == '1':
if b =='2':
print('aaa')
print('bbb')
print('ccc')
根据缩进的格式,我们不难发现这是一个条件判断的嵌套。
如果两个条件都满足,才会打印 aaa ,因为打印 aaa 的语句有两级缩进,相当于是 if b == '2'条件内部的代码块。
第一个条件满足,就会打印 bbb ,因为打印 bbb 的语句只有一级缩进,相当于是 if a == '1'条件内部的代码块。
两个条件都不满足,也会打印 ccc ,因为打印 ccc 的语句,没有缩进,相当于和两个 if 都无关。
当有多级代码条件嵌套时,当前的语句属于哪个代码块,完全取决于缩进的级别。
5.空语句
空语句:pass,意思是直接通过,用于处理一些什么也不需要做的情况。
a = input("请输入一个数字:")
if a != '1':
# 啥也不做,但是也不能啥也不写,否则编译通过不了
pass
else:
print('hello')
三.循环语句
1. while 循环
基本语法格式:
while 条件:
循环体
- 条件为真,则执行循环体。
- 条件为假,则结束循环。
num = 1
sum = 0
while num <= 100:
sum += num
num += 1
print(num)
三要素:
- 循环变量的初始值
- 循环判定条件
- 循环变量的更新语句
2. for 循环
for 循环变量 in 可迭代变量:
循环体
注意:
- python 的 for 和其它语言不同,没有“初始化语句”,“循环条件判定语句”,“循环变量更新语句”,而是更加简单。
- 所谓的“可迭代对象”,指的是“内部包含多个元素,能一个一个元素取出来的特殊变量”。
# 打印 1-10
for i in range(1,11):
print(i)
range 是一个内建函数,起到的效果是 得到一个“可迭代对象”,这个可迭代对象中就包含了一些列的整数,range(begin,end) => [begin,end),前闭后开区间。
需要注意的是,range 还提供了第三个参数,表示“步长” ,默认的步长值为 1。
#打印 2,4,6,8,10
for i in range(2,12,2)
print(i)
#打印从 10 到 1
for i in range(10,0,-1)
print(i)
3.break 和 continue
- break 表示跳出整个循环。
- continue 表示跳出当前循环。
举个例子,去包子铺吃包子。
# 假设你要吃 5 个包子
for i in range(1,6):
if i == 3:
# 发现第三个包子,有一只蠕动的蛆
continue
print(f'吃第{i}个包子')
吃到第三个包子,吃出了一只蠕动的蛆,这个包子就没法吃了,所以只能放弃这个包子。
# 假设你要吃 5 个包子
for i in range(1,6):
if i == 3:
# 发现第三个包子,有半只蠕动的蛆
break
print(f'吃第{i}个包子')
这种情况下,吃到第三个包子,发现半只蠕动的蛆,也就没心情吃下去了,所以放弃了剩下的单个包子。