当前位置:   article > 正文

Day5_Python基础_用python打印绩效工资

用python打印绩效工资

1、for循环和可迭代对象遍历

for循环通常用于可迭代对象的遍历。语法格式如下:
在这里插入图片描述
其中可迭代对象包含一下几种:
<1>、序列:字符串、列表、元组
<2>、字典
<3>、迭代器对象(iterator)
<4>、生成器函数(generator)
<5>、文件对象

举例:遍历字符串中的字符
在这里插入图片描述
举例:遍历字典
在这里插入图片描述

2、range对象

**range对象是一个迭代器对象,用来产生指定范围的数字序列。格式为
range(start, end [,step])
生成的数值序列从start开始到end结束(不包含end )。若没有填写start,则默认从0开始。step是可选的步长,默认为1。**如下是几种典型示例:
在这里插入图片描述
举例:利用for循环,计算1-100之间数字的累加和;计算1-100之间的偶数累加和,计算1-100之间奇数累加和。
在这里插入图片描述

3、嵌套循环

例1:打印如下图案
在这里插入图片描述
在这里插入图片描述
例2:使用嵌套循环打印九九乘法口诀表

# 打印乘法口诀表

for i in range(1, 10):
    for j in range(1, i+1):
        print("{0} * {1} = {2}".format(i, j, i*j), end=" ")
    print()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

4、break语句和continue语句

break语句可用于while和for循环,用于结束整个循环。当有嵌套循环时,break语句只能跳出最近一层的循环。
continue语句用于结束本次循环,继续进行下一次循环。多个循环嵌套时,continue也是应用于最近的一层循环。

举例:要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资。

# 要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资.

wo_sum = 0   #员工人数
sa_sum = 0   #薪资总和
salary = []    #存放员工的薪资列表
while True:
    a = input("请输入员工的工资(输入Q时结束):")
    if a == "Q":
        print("录入完成,退出")
        break
    if int(a) < 0:
        print("工资无效,请重新输入……")
        continue
    else:
        salary.append(int(a))
        sa_sum += int(a)
        wo_sum += 1
        
print("员工的人数:{0}".format(wo_sum))
print("薪资明细:{0}".format(salary))
print("平均薪资:{0}".format(sa_sum/wo_sum))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述

5、else语句

while、for循环可以附带一个else语句。如果for、while语句没有被break语句结束,则会执行else子句,否则不执行。
语法格式如下:
在这里插入图片描述
例题:员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录
入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪资。

sum = 0
work = 0
salary = []  # 存放员工薪资的数组

for i in range(4):
    a = input("请输入员工的薪资(输入Q和q时中途结束):")
    if a.upper() == "Q":
        print("录入完成,退出")
        break
    if float(a) < 0:
        print("输入薪资不规范,请重新输入")
        continue
    salary.append(float(a))
    sum += float(a)
    work += 1
    
else:
    print("您已经全部录入4名员工的薪资")

print(salary)
print("平均薪资为{0}".format(sum/work))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

6、循环代码优化

编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:
(1) 尽量减少循环内部不必要的计算。
(2) 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
(3) 局部变量查询较快,尽量使用局部变量。
举例:
在这里插入图片描述
其他优化手段
(1)连接多个字符串,使用join()而不使用+
(2)列表进行元素插入和删除,尽量在列表尾部操作

7、使用zip()并行迭代

我们可以使用zip函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

# 测试zip()并行迭代
names = ("kdx", "sss", "zhangsan", "lisi")
ages = (12, 14, 16, 18)
jobs = ("老师", "程序员", "公务员")

for name, age, job in zip(names, ages, jobs):
    print("{0}--{1}--{2}".format(name, age, job))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

8、推导式创建序列

推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。
(1)列表推导式
在这里插入图片描述
举例:

# 列表推导式
su1 = [i for i in range(1, 5)]
print(su1)
su2 = [i*3 for i in range(1, 5)]
print(su2)
su3 = [i*4 for i in range(1, 5) if i % 4 == 0]
print(su3)
su4 = [i for i in "abcdefg"]
print(su4)
su5 = [(i, j) for i in range(1, 4) for j in range(1, 4)]
for i in su5:
    print(i, end=" ")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

(2)字典推导式

在这里插入图片描述
举例:

# 字典推导式
# 计算一段字符串每个字母的个数
my_text = 'i love you, i love changan, i love ssss'
dic1 = {i: my_text.count(i) for i in my_text}
print(dic1)
  • 1
  • 2
  • 3
  • 4
  • 5

(3)集合推导式

在这里插入图片描述
举例:

# 集合推导式
jh = {i for i in range(1, 100) if i % 9 == 0}
print(jh)
  • 1
  • 2
  • 3

在这里插入图片描述

(4)生成器推导式(生成元组)

在这里插入图片描述
在这里插入图片描述
举例:

# 生成器推导式(生成元组)
ss = (i for i in range(1, 100) if i % 9 == 0)
for i in ss:
    print(i, end=" ")

for i in ss:
    print(i, end=" ")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如下图所示,第一次迭代可以得到数据,第二次迭代就没有数据了。
在这里插入图片描述

9、函数

(1)函数分类
在这里插入图片描述
(2)函数的定义和调用
<1>核心要点
在这里插入图片描述
在这里插入图片描述

<2> 形参和实参

在这里插入图片描述
(3)文档字符串(函数注释)
程序的可读性最重要,一般建议在函数体开始的部分附上函数定义说明,这就是“文档字符串”,也有人成为“函数的注释”。我们通过三个单引号或者三个双引号来实现,中间可以加入多行文字进行说明。(三个单引号也可以用来定义多行字符串)
在这里插入图片描述
(4)返回值
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/604309
推荐阅读
相关标签
  

闽ICP备14008679号