Python 是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大!
本文以案例的方式给大家详细解释Python中的while、for循环用法
一、while 循环
1.1、 解释/语法
(1)可以自定义条件,根据条件进行循环
(2)适用于未知循环次数的循环
while 条件表达式:
循环体语句
案例1:求1到100的和
sum = 0
i = 1
while i<=100: # while 布尔类型(True、False):
sum += i
i += 1 # 每一次循环加1
print(f"1-100的和是:{sum}")
案例2:猜数字1-10
(1)Python中 random 模块用于生成随机数,random.randint(a, b),用于生成一个指定范围内的整数,其他用法可自行百度
import random
num = random.randint(1,10)
count = 0
flag = True #通过布尔类型判断
while flag:
guess_num = int(input("请输入你想的数字(1-10): "))
count += 1
if guess_num == num:
print("恭喜你,猜对了")
flag = False #终止循环
else:
if guess_num > num:
print("你猜的比较大")
else:
print("你猜的比较小")
print(f"你总共猜了{count}次")
1.2、嵌套
案例3:九九乘法表(while循环)
(1)不换行打印输出 print(“hello”, end=‘’)
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j} * {i} = {i * j}\t",end='')
j += 1
i += 1
print() # 空内容,输出换行
二、for 循环
2.1、解释/语法
(1)可以遍历对象,适用于已知循环次数的循环
(2)for 变量 in range(num1,num2,step):,从num1开始,到num2结束,但不含num2本身,step表示步数,可为空
for 变量 in 对象:
循环体语句
案例1:取5-10的数,间隔2
for x in range(5,10,2): #从5开始,但不含10本身,间隔2步开始取
print(f"{x}\t",end='') # 结果:5 7 9
案例2:依次取出字符串
name = ["qwe","大哥",666]
for x in name:
print(x)
案例3:计算内容中有多少a
name = "wo shi dashazi"
count = 0
for x in name:
if x == "a":
count += 1
print(f"内容着中总共有{count}个a")
2.2、嵌套
案例4:九九乘法表(for循环)
(1)不换行打印输出 print(“hello”, end=‘’)
for i in range(1,10): # 从1开始取,到9
for j in range(1,i+1):
print(f"{j} * {i} = {i * j}\t",end='' )
print() # 空内容,输出换行
2.3、continue语句
效果:continue 语句用于跳过当前循环中的剩余语句,然后继续下一轮循环。
for x in range(1,3):
print(f"语句1:{x}")
for y in range(1,2):
print(f"语句2:{y}")
continue # 跳出当前循环,再执行下一次循环
print("语句3")
print("语句4")
2.4、break语句
效果:break 语句用于中断循环,不会执行。
for x in range(1,2):
print(f"语句1:{x}")
for y in range(1,50):
print(f"语句2:{y}")
break # 直接跳出当前循环
print("语句3")
print("语句4")
2.5、exit/pass语句
exit:表示结束程序的运行。
pass: 表示空语句或占用语句。
三、综合案例(员工发工资)
需求1:公司账户余额有1w,需给20名员工发工资;
需求2:员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元;
需求3:员工的绩效分(1-10,需要随机生成),如果低于5不发工资,直到工资发完结束发工资。
3.1 使用 while 循环
money = 10000
i = 0
while i < 20:
import random
num = random.randint(1,10) #随机取数1-10
i += 1
if num < 5:
print(f"员工{i} 绩效分是{num},不发工资,下一位")
continue
if money >= 1000:
money -= 1000
print(f"员工{i},正在发工资1000,公司账户剩余{money}")
else:
print(f"余额不够了:剩余{money},下个月在来把")
break
3.2 使用 for 循环
money = 10000
for i in range(1,21): # 注意这里是取到20
import random # 导入随机模块random
num = random.randint(1,10) # 随机取数1-10
if num < 5:
print(f"员工{i} 绩效分是{num},不发工资,下一位")
continue
if money >= 1000:
money -= 1000
print(f"员工{i},正在发工资1000,公司账户剩余{money}")
else:
print(f"余额不够了:剩余{money},下个月在来把")
break