目录
- 1. while循环
- 2. for循环
- 3. 循环语句和if语句结合
- 3. continue语句
- 4. break语句
- 5. 双重循环
- 6. 双重循环和continue语句以及break语句
1. while循环
while循环简单来说就是满足循环条件就执行循环语句,直到不满足为止,否则陷入死循环。
while语法
while 条件:
循环语句
上述含义就是首先判断条件是否为真,如果为真即进入循环,执行一次循环,然后继续判断条件是否为真,如果为真则继续循环,不满足则循环结束。
例如:依次输出1至10
# while循环
a = 1
while a <= 10:
print(a)
a += 1
例如:计算1+2+3+4…+100
# 循环计算1+2+3...+100的值
sum_1 = 0
a = 1
while a <= 100:
sum_1 = sum_1 + a
a += 1
print(sum_1)
2. for循环
for循环一般可以规定循环次数,常用语法如下:
for i in range(n):
循环语句
上述含义是循环执行n次循环语句
其中range(n)是创建一个0至n-1的整数列表,类似于MATLAB中的1*n的0至n-1的行向量,关于列表的知识在下一篇进行叙述。
循环执行5次print
for i in range(5):
print('python')
依次输出0-9
for i in range(10):
print(i)
如果对for循环的语法还是疑问,可以类比于MATLAB中的for循环。
for i in range(10):
print(i)
类似于MATLAB中的
for i=1:n-1
循环语句
end
计算1+2+3+…+100
sum_1 = 0
for i in range(101):
sum_1 += i
print(sum_1)
3. 循环语句和if语句结合
while求1到100之间的偶数和
# while求1到100之间的偶数和
num_1 = 0
sum_2 = 0
while num_1 <= 100:
if num_1 % 2 == 0:
sum_2 += num_1
num_1 += 1
print(sum_2)
while求1到100之间的奇数和
# while求1到100之间的奇数和
num_1 = 0
sum_2 = 0
while num_1 <= 100:
if num_1 % 2:
sum_2 += num_1
num_1 += 1
print(sum_2)
for循环求1到100之间的偶数和
# 求1到100之间的偶数和2
sum_2 = 0
for i in range(101):
if i % 2 == 0:
sum_2 += i
print(sum_2)
for循环求100-1000内的水仙花数,水仙花数是个位数的立方加上十位数的立方加上百位数的立方等于本身的数。
# 100-999之间的水仙花数
for item in range(100, 1000):
ge = item % 10 # 求个位数
shi = item // 10 % 10 # 求十位数
bai = item // 100 # 求百位数
if ge**3 + shi**3 + bai**3 == item:
print('水仙花数为:', item)
3. continue语句
continue语句是用来跳过本次循环的,例如
print('*' * 20 + '使用continue语句' + '*' * 20)
for item in range(1, 51):
if item % 5 != 0:
continue
print(item)
在上述代码中,只有不是5的倍数,就会执行continue语句,跳过本次循环,将不会执行下一行的print语句,但是代码会继续下一次循环,直到循环结束。
print('*' * 20 + '使用continue语句' + '*' * 20)
for item in range(1, 51):
if item % 5 == 0:
continue
print(item)
在·上述代码中,只要是5的倍数,就会执行continue语句,跳过本次循环,将不会执行下一行的print语句,但是代码会继续下一次循环,直到循环结束。
中间省略
4. break语句
break语句是用来跳出整个循环的
for item in range(1, 51):
if item % 5 == 0:
break
print(item)
上述代码中,当item为5的倍数时,直接跳出循环,循环结束。
5. 双重循环
输出一个三行四列的矩形
"""输出一个三行四列的矩形"""
for i in range(1, 4): # 行数3
for j in range(1, 5): # 列数4
print('*', end='\t') # 不换行输出
print() # 换行
print()
输出一个九行的直角三角形
"""输出一个九行的直角三角形"""
for i in range(1, 10): # 行数9
for j in range(1, i+1): # 列数等于行数
print('*', end='\t') # 不换行输出
print() # 换行
print()
"""输出一个9*9乘法表"""
for i in range(1, 10): # 行数9
for j in range(1, i+1): # 列数等于行数
print(j, '*', i, '=', i*j, end='\t\t') # 不换行输出
print() # 换行
6. 双重循环和continue语句以及break语句
continue语句以及break语句只能跳过或者跳出本层循环。
for i in range(5): # 外层循环执行5次
for j in range(1, 11): # 用于内层循环10次
if j % 2 == 0:
break
print(j)
上述代码中,每次当j为偶数时,就会跳过j这层循环,但是i这层循环还在继续。
for i in range(5): # 外层循环执行5次
for j in range(1, 11): # 用于内层循环10次
if j % 2 == 0:
continue
print(j, end='\t')
print()
上述代码中,当j为偶数时,j这层循环会跳过本次循环,然后继续执行j这层循环,等待j这层循环结束,i这层循环加1,然后又继续执行j这层循环,直到循环结束。