目录
前言
循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的功能。
1、while循环的基础语法
程序中的循环:
# while的简单演示
i = 0;
while i<100:
print("hello word!")
i += 1;
1、while的条件需要得到布尔类型,True表示继续循环,False表示结束循环
2、、需要设置循环终止的条件,如i +=1 配合 i < 100 ,就能确保100次后停止,否则将无限循环
3、空格缩进和if判断一样,都需要设置
# 案例:计算从1累加到100的和
i = 1;
sum = 0;
while i <= 100:
sum += i;
i += 1;
print("累加的和为:%s" % sum)
在判断语句中我们写了猜数字的游戏,但代码较为冗杂,现在我们就来优化这个代码。
# 设置一个范围在1~100之间的随机数字:无限次机会,会提示猜的大了还是小了,猜中会提示猜了几次
import random
num =random.randint(1, 100)
count = 0;
flag = True
while flag:
guess_num = int(input("请输入您要猜的数字:"));
count += 1;
if guess_num == num:
print("恭喜您!猜中了")
flag = False
else:
if guess_num > num:
print("猜大了")
else:
print("猜小了")
print(f"您一共猜了{count}次")
2、while循环的嵌套
程序中的循环:
# while循环的嵌套案例:求1到100的阶乘之和
i = 1;
sum = 0;
fact = 1;
j = 1;
while i <= 100:
while j <= i:
fact = fact * j
j += 1
sum = sum + fact;
i += 1;
print(sum)
1、同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。(基于空格缩进来确定层次关系)
2、注意条件的设置,避免出现无限循环
# 案例:九九乘法表的打印
i = 1;
while i <= 9:
j = 1 ;
while j <= i:
# 内层循环的print语句,不换行,通过\t制表符进行对齐
print(f"{i}*{j}={i*j}\t",end='')
j += 1;
i += 1;
print()
3、for循环的基础语法
除了while循环语句外,python同样提供了for循环语句。两者功能类似,但也有区别:
程序中的for循环:
name = "zhangsan";
for x in name:
# 将name内容,挨个取出赋予x临时变量
print(x, end='')
可以看出,for循环是将字符串的内容:依次取出,所以,for循环也称之为遍历循环。
同while循环不同,for循环无法定义循环条件,只能从被处理的数据集中,依次对内容进行处理。
# 统计字符串“abcdefaac”中字符a的个数
num_a = "abcdefaac"
count = 0;
for x in num_a:
# 依次取出字符
if x == 'a':
count += 1;
print(count)
range语句:
for循环中的待处理数据集,严格意义来说称之为序列类型,序列类型指,其内容可以一个个一次取出来的一种类型,包括:字符串、列表、元组等。
语法1:
语法2:
语法3:
# 统计偶数的数量
num = int(input("请输入数字:"))
count = 0;
for x in range(1,num):
if x %2 == 0:
count += 1;
print(count)
for循环临时变量作用域:
for x in range(5):
print(x)
print(x)
# 最后一行代码在规范上是不能运行的,但实际上是可以运行的,x属于临时变量
临时变量,在编程规范上,作用域,只限定在for循环内部。但外部进行访问实际上也是可以反问道的,但规范上不允许。
如果需要访问临时变量,可以预先在循环外定义它。
4、for循环的嵌套
程序中的嵌套for循环:
# for循环的嵌套实现九九乘法表
i = 1;
j = 1;
for i in range(1,10):
for j in range(1,i+1):
print(f"{i}*{j}={i*j}\t",end='')
print()
5、循环中断:break和continue
无论是while循环还是for循环,都是重复性的执行特定操作。在这个重复的过程中,会出现一些情况:
continue用于中断本次循环,直接进行下一次循环,可以用于for循环和while循环。
在循环中,遇到continue就结束当次循环,进行下一次,所以本次语句2不执行。
break用于直接结束循环,可以用于for循环和while循环。
在循环内,遇到break就结束循环了,所以执行语句1后,直接执行语句3。
# 发工资案例:员工编号1到20,账户余额1w,每人可领取1000,领工资时如果绩效分(1-10)(随机生成)低于5,不发工资,直接下一位
money = 10000
for num in range(1,21):
# 每次循环产生一个随机数字
import random
grade = random.randint(1, 10)
if grade < 5:
print(f"员工{num}绩效分低于5,不发工资,直接下一位")
continue
if money >= 1000:
money -= 1000;
print(f"员工{num}满足发工资条件,公司余额:{money}")
else:
print(f"公司余额不足,余额:{money},请下个月再来")
break