目录
1.案例需求:
某公司,账户余额有1w元,给20名员工发工资。
- 员工编号从1-20,从编号1开始,依次领取工资,每人可领取1000元
- 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
- 如果工资发完了,结束发工资
2.提示:
- 使用循环对员工一次发放工资
- continue用于跳过员工,break直接结束发工资
- 随机数用random
3.效果展示:
4.学习目标:
自我学习做记录。内容来自黑马程序员的Python教程
5.写代码:
5.1. 构建变量
# 定义账户余额
count = 10000
5.2. for循环
for i in range(1,21):
涉及知识点:
1.程序中的for循环:
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行的代码
2.range语句:
语法1:
range(num)
获取一个从0开始,到num结束的数字序列,不含num本身
如rang(5)取得的数据是:[0,1,2,3,4]
语法2:
range(num1,num2)
获取一个从num1开始,到num2结束的数字序列,不含num2本身
如rang(5,9)取得的数据是:[5,6,7,8]
语法2:
range(num1,num2,step)
获取一个从num1开始,到num2结束的数字序列,不含num2本身
数字之间的步长,以step为准(step默认为1)
如range(5,10,2)取得的数据是:[5,7,9]
5.3. 进入循环中
# 判断绩效分,首先获取绩效分
grade = random.randint(1,10)
# 小于5分的情况
if grade < 5:
print(f"员工{i},绩效分{grade},不发工资,下一位")
# 遇到continue,下面发工资的行为就不存在
continue
# 判断余额是否满足
if count >= 1000:
count-=1000
print(f"员工{i},绩效分{grade},发放工资1000元,账户余额还剩{count}")
else:
print("工资发完了,剩余员工下个月领取")
# break结束发放
break
涉及知识点:
continue:(临时中断)
1.中断本次循环,直接进入下一次循环
2.可以作用于for循环和while循环,效果一致
3.for i in range(1,100):
语句1
continue
语句2(语句2不会被执行)
4.只能中断它所在的循环
break:(永久中断)
1.直接结束循环
2.可以作用于for循环和while循环,效果一致
3.只能控制它所在的循环中断
6.整体代码:
import random
# 定义账户余额
count = 10000
# for循环对员工发放工资
for i in range(1,21):
# 判断绩效分,首先获取绩效分
grade = random.randint(1,10)
# 小于5分的情况
if grade < 5:
print(f"员工{i},绩效分{grade},不发工资,下一位")
# 遇到continue,下面发工资的行为就不存在
continue
# 判断余额是否满足
if count >= 1000:
count-=1000
print(f"员工{i},绩效分{grade},发放工资1000元,账户余额还剩{count}")
else:
print("工资发完了,剩余员工下个月领取")
# break结束发放
break
7.我写的代码以及遇到的问题:
import random
count = 10000
for i in range(1,21):
grade = random.randint(1,10)
if grade < 5:
print(f"员工{i},绩效分{grade},不发工资,下一位")
else:
count-=1000
print(f"员工{i},绩效分{grade},发放工资1000元,账户余额还剩{count}")
if count == 0:
print("工资发完了,剩余员工下个月领取")
break
遇到的问题:
最开始我把获取随机数的绩效放在了for循环外面,导致代码一直是同一个绩效分