文章目录
- 1. while 循环
- 1.1 while 循环的基本格式
- 1.2 while 循环举例
- 1.3 while 循环的嵌套
- 1.4 while 循环的else语句
- 2. for 循环
- 2.1 for 循环的基本格式
- 2.2 与range(), len() 配合;
- 3. continue语句 & break语句 & pass 语句
- 3.1 continue语句 & break语句 的区别
- 3.2 pass语句
- 4. if 条件判断
- 4.1 if 语句的基本格式
- 4.2 elif 语句的基本格式
1. while 循环
1.1 while 循环的基本格式
while 循环基本分为以下几步:
- 在while循环前,设置条件的初始值;
- while 循环, 格式为:while 条件:, 条件一般与初始值有关,句尾的冒号一定要有,否则会报错;
- 进入while 循环体内部,定义需要重复的代码;
- 在代码后,处理循环条件;
注意:
- 整个while 循环是一个完整的代码块;
- 循环结束后,初始条件改变后的数值还是存在的;
- 死循环,忘记在循环体内部处理循环条件的时候,就会出现死循环;
# while 循环基本格式
i = 0 # 初始条件设置
while i<5: # while + 判断条件 + : 冒号一定要有
print('这是我第%d次打印!'%i) # 需要重复执行的代码
i +=1 # 条件处理,不加这句就会出现死循环; 对应注意点2
print('执行完毕!')
print(i) # 此时 i 的值变为了5;对应注意点3
1.2 while 循环举例
计算 0 ~ 100 之间所有数字的累计求和结果
# 计算 0 ~ 100 之间所有数字的累计求和结果
result = 0 # 0. 循环体外定义一个变量,存储最后的结果
i = 0 # 1. 定义循环初始条件
# 2. 开始循环
while i <= 100:
result += i # 每一次循环,都让 result 这个变量和 i 这个计数器相加
i += 1 # 处理条件
print("0~100之间的数字的累计求和结果 = %d" % result) # 输出结果:0~100之间的数字的累计求和结果 = 5050
1.3 while 循环的嵌套
while 循环支持嵌套,请参考下面例子:
打印 9*9 乘法表
完成 99乘法表分为两步,第一步:确定 每个乘法的位置; 第二部:在对应位置输出对应乘法式;
# 99乘法表
# 第一步:确定乘法等式的位置
i = 0
while i<10:
print("*-*=* " *i,)
i+=1
输出:
*-*=*
*-*=* *-*=*
*-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
*-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
# 第二步:加入一个while 循环,修改换行方式;
i = 1
while i < 10:
j = 1
while j <= i:
print("%d X %d = %d " % (i, j, i * j), end=' ')
j += 1
print('')
i += 1
输出:
1 X 1 = 1
2 X 1 = 2 2 X 2 = 4
3 X 1 = 3 3 X 2 = 6 3 X 3 = 9
4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 4 X 4 = 16
5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25
6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36
7 X 1 = 7 7 X 2 = 14 7 X 3 = 21 7 X 4 = 28 7 X 5 = 35 7 X 6 = 42 7 X 7 = 49
8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64
9 X 1 = 9 9 X 2 = 18 9 X 3 = 27 9 X 4 = 36 9 X 5 = 45 9 X 6 = 54 9 X 7 = 63 9 X 8 = 72 9 X 9 = 81
1.4 while 循环的else语句
else 语句最常见于 if 语句,else 语句的意思是:上面紧挨的一个循环或者判断结束后,紧接着执行的语句,在while循环中的举例如下:
注意:else 语句也是循环体的一部分,这是在不满足条件时才执行;
i = 0
while i<5:
print('%d 小于五'%i)
i +=1
else:
print('%d 等于五'%i) # 当 while 条件不满足时,执行;
输出:
0 小于五
1 小于五
2 小于五
3 小于五
4 小于五
5 等于五
2. for 循环
for 循环非常常用,for 循环可以遍历任何序列的项目,比如:列表,字典,字符串等;
2.1 for 循环的基本格式
# for 循环
for i in [1,2,3,4]: # 以列表为例;
# 注意点:
# 1. for 后面的变量可以是任意合法的变量名;
# 2. 后面的循环体内,i 代表当前的循环值;
# 3. 尾部的冒号一定要有;
print(i) # 循环内容
else:
print("for 循环结束!") # 当循环结束时,调用else 语句;
输出:
1
2
3
4
for 循环结束!
2.2 与range(), len() 配合;
2.2.1 与 range() 配合,遍历数字序列
range() 可以生成数列,我们可以指定数列的起始值,终止值,步长;定义方式:range(起始值,终止值,步长),我们通过for循环将range() ,生成的数列打印出来:
for i in range(2,5):
print(i,end=' ') # end=' ',打印以空格结尾,可以输出到一行,输出:2 3 4
print('') # 换行
for i in range(1, 10, 2):
print(i,end=' ') # 输出:1 3 5 7 9
2.2.2 与 range(),len() 配合,遍历字符串,列表,字典等;
s = [100,200,300]
for i in range(len(s)):
print('列表中的第%s个数为:%s' %(i,s[i]))
输出:
字典中的第0个数为:100
字典中的第1个数为:200
字典中的第2个数为:300
3. continue语句 & break语句 & pass 语句
3.1 continue语句 & break语句 的区别
以上例子的执行结果为:
# 使用 continue 的运行结果:
4
3
1
0
循环结束。
# 使用 break 的运行结果:
4
3
循环结束。
3.2 pass语句
为保证程序结构的完整性,我们会在一些时候使用pass语句; pass 语句是一个空语句,只是一个占位语句的存在;例如,当你定义一个函数的时候,还没有想好函数该如何书写;为避免程序报错,这时可以使用pass语句;举例:
def func(a):
pass # pass 占位语句,执行该函数时执行pass语句;
4. if 条件判断
4.1 if 语句的基本格式
# if 语句
if 1 < 2: # 条件为真!
print('条件为真,执行!')
else:
print('条件为假!') # 输出:条件为真,执行!
if 0 > 10: # 条件为假! 执行else语句
print('条件为真,执行!')
else:
print('条件为假!') # 输出:条件为假!
注意:
- 条件是否成立,就是将条件转化成布尔类型,真则成立,假则不成立;
- else 语句不是必须的,没有else 语句也可以;
- if 后面的冒号 必不可少;
4.2 elif 语句的基本格式
有时,我们需要判断多种条件,此时可以使用 elif 语句,基本格式如下:
if 条件语句1:
执行语句1……
elif 条件语句2:
执行语句2……
elif 条件语句3:
执行语句3……
else:
执行语句4…… # 前面的条件全部不成立时,执行else语句;
注意:
- python 并不支持switch 语句,所以只能用 elif 来实现;
- 条件语句中可以使用 and, or ;举例如下:
l=[1,7,12,26,15]
for i in range(len(l)):
print('当前值为:%s'%l[i])
if l[i] < 5:
print('我是一个小于(-∞,5)的数字')
elif l[i]<10:
print('我是一个介于[5,10)之间的数字')
elif l[i]<15:
print('我是一个介于 [10,15) 之间的数字')
else:
print('我大于等于15!')
问题点:以上代码,可以实现功能,但是有一个问题,就是条件的位置如果更换了,就会输出错误的结果;比如:
l=[1,7,12,26,15]
for i in range(len(l)):
print('当前值为:%s'%l[i])
if l[i] < 5:
print('我是一个小于(-∞,5)的数字')
elif l[i] < 15:
print('我是一个介于 [10,15) 之间的数字')
elif l[i]<10:
print('我是一个介于[5,10)之间的数字')
else:
print('我大于等于15!')
这里更换了 elif l[i] < 15: 和 elif l[i]<10: 的位置,在数字7时,输出为:我是一个介于 [10,15) 之间的数字;
为避免这种问题,我们需要使用到 and 运算(or 运算的话,也是同理),代码变更为:
# 改正代码
l=[1,7,12,26,15]
for i in range(len(l)):
print('当前值为:%s'%l[i])
if l[i] < 5:
print('我是一个小于5 (-∞,5)的数字')
elif l[i] < 15 and l[i] > 10:
print('我是一个介于 [10,15) 之间的数字')
elif l[i]<10 and l[i] > 5:
print('我是一个介于[5,10)之间的数字')
else:
print('我大于等于15!')
输出:
当前值为:1
我是一个小于(-∞,5)的数字
当前值为:7
我是一个介于[5,10)之间的数字
当前值为:12
我是一个介于 [10,15) 之间的数字
当前值为:26
我大于等于15!
当前值为:15
我大于等于15!