0 作业与复习

"""
dict_employees = {1001: {"did": 9002, "name": "师父", "money": 60000},1002: {"did": 9001, "name": "孙悟空", "money": 50000},1003: {"did": 9002, "name": "猪八戒", "money": 20000},1004: {"did": 9001, "name": "沙僧", "money": 30000},1005: {"did": 9001, "name": "小白龙", "money": 15000},
}
# 部门列表
list_departments = [{"did": 9001, "title": "教学部"},{"did": 9002, "title": "销售部"},{"did": 9003, "title": "品保部"},
]
"""
​
# 员工字典(员工编号 部门编号 姓名 工资)
dict_employees = {1001: {"did": 9002, "name": "师父", "money": 60000},1002: {"did": 9001, "name": "孙悟空", "money": 50000},1003: {"did": 9002, "name": "猪八戒", "money": 20000},1004: {"did": 9001, "name": "沙僧", "money": 30000},1005: {"did": 9001, "name": "小白龙", "money": 15000},
}
# 部门列表
list_departments = [{"did": 9001, "title": "教学部"},{"did": 9002, "title": "销售部"},{"did": 9003, "title": "品保部"},
]
# 1. 打印所有员工信息,
# 格式:xx的员工编号是xx,部门编号是xx,月薪xx元.
for key, value in dict_employees.items():print(f"{value['name']}的员工编号是{key},部门编号是{value['did']},月薪{value['money']}元")
print("1-----------------------")
​
# 2. 打印所有月薪大于2w的员工信息,
# 格式:xx的员工编号是xx,部门编号是xx,月薪xx元.
for key, value in dict_employees.items():if value["money"] >= 20000:print(f"{value['name']}的员工编号是{key},部门编号是{value['did']},月薪{value['money']}元")
print("2-----------------------")
​
# 3. 在部门列表中查找编号最小的部门
min_depart = list_departments[0]
for item in list_departments[1:]:  # 切片不好if item["did"] < min_depart["did"]:min_depart = item
print(min_depart)
print("3-----------------------")
​
# 4. 根据部门编号对部门列表降序排列
for i in range(len(list_departments) - 1):for j in range(i + 1, len(list_departments)):if list_departments[i]["did"] < list_departments[j]["did"]:list_departments[i], list_departments[j] = list_departments[j], list_departments[i]
print(list_departments)
​
​

列表推导式嵌套

  1. 语法:列表推导式嵌套--2层循环 变量 = [表达式 for 变量 1 in 可迭代对象 1 for 变量 2 in 可迭代对象 2]

  2. 传统写法: result = [] for r in ["a", "b", "c"]: for c in ["A", "B", "C"]: result.append(r + c)

  3. 推导式写法: result = [r + c for r in list01 for c in list02]

"""列表推导式嵌套--2层循环
"""
list01 = ["香蕉", "苹果", "荔枝"]
list02 = ["牛奶", "咖啡", "雪碧"]
list03 = []
for item1 in list01:for item2 in list02:list03.append(item1 + item2)
print(list03)
​
result = [item1 + item2 for item1 in list01 for item2 in list02]
print(result)
​
# 练习:3个色子所有结果
result1 = [str(item1) + "-" + str(item2)+"-"+str(item3) for item1 in range(1, 7) for item2 in range(1, 7) for item3 in range(1, 7)]
print(result1)

1 函数

函数 function

pycharm 快捷键

Ctrl + P :参数信息(在方法中调用参数)

Ctrl + Q :快速查看文档

定义

  1. 用于封装一个特定的功能,表示一个功能或者行为。

  1. 函数是可以重复执行的语句块, 可以重复调用。

作用:提高代码的可重用性和可维护性(代码层次结构更清晰)。

定义函数

  1. 语法:

def 函数名(形式参数):

函数体

  1. 说明:

def 关键字:全称是 define,意为”定义”。

函数名:对函数体中语句的描述,规则与变量名相同。

形式参数:方法定义者要求调用者提供的信息。

函数体:完成该功能的语句。

  1. 函数的第一行语句建议使用文档字符串描述函数的功能与参数。

调用函数

  1. 语法:函数名(实际参数)

  1. 说明:根据形参传递内容。

返回值

  1. 定义:

方法定义者告诉调用者的结果。

  1. 语法:

return 数据

  1. 说明:

return 后没有语句,相当于返回 None。

函数体没有 return,相当于返回 None。

"""函数: 做法+用法
​Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查函数 = ctrl + 左键  跳转到函数源码
​return 后没有语句,相当于返回 None。函数体没有 return,相当于返回 None
​看函数体内部调试:F7
"""
​
​
def life(count):"""用于打印东西:param count: 参数输入次数:return: 没有返回值哦"""for __ in range(count):print("起床")print("吃饭")print("工作")print("睡觉")
​
​
life(3)  # 函数只有调用才执行,否者不执行
​
# 练习:打印一维列表
list01 = [1, 2, 3, 4, 5]
​
​
def print_list(listx):for item in listx:print(item)
​
​
print_list(list01)
# print_list(1)报错 因为python变量没有数据类型,因此不检查传入的参数是否符合要求
​
"""
练习:定义函数, 根据总两数, 计算几斤零几两.提示:使用容器包装需要返回的多个数据
"""
​
def cal_weight(total_liang):jin = total_liang // 16liang = total_liang % 16return jin, liang  # 返回容器,而不是多个结果
​
​
print(cal_weight(100))
​
"""多函数相互调用1.两个函数名称相同,就近原则调用2.程序结构:上面定义函数,即使相互调用顺序也无所谓下面调用函数
"""
​
print("-----定义函数-----")
​
def repeat_attack(count):for __ in range(count):attack()
​
def attack():print("直拳")print("钩拳")
​
​
​
print("----调用函数----")
repeat_attack(3)
​
​

函数内存图

程序执行函数定义时,将函数代码变成二进制加载到代码区域;

程序调用函数会开辟一块空间(栈帧),存储在函数中定义的变量;

函数执行后,立即释放这些栈帧空间。

p2[0] = 500 有一个cpu寻址的动作,因此把列表里面的数据修改了;

若写成p2=500,那么p2就单独指向数字500,不再指向列表。

data03的数据自然改不了。实参给形参传递不是变量而是数据。

可变/不可变类型在传参时的区别

  1. 不可变类型参数有:数值型(整数,浮点数);布尔值 bool;None 空值;字符串 str;元组 tuple

  1. 可变类型参数有:列表 list;字典 dict;集合 set

  1. 传参说明:不可变类型的数据传参时,函数内部不会改变原数据的值。

可变类型的数据传参时,函数内部可以改变原数据。(cpu寻址实现)

因此:传入可变数据,函数内部修改可变数据,无需通过return返回结果。

# 练习
# 3:根据下列代码,创建降序排列函数。
​
# shiif +F6 改所有变量名称
list01 = [5, 15, 25, 35, 1, 2]
​
​
def sort_down(list01):for r in range(len(list01) - 1):for c in range(r + 1, len(list01)):if list01[r] < list01[c]:list01[r], list01[c] = list01[c], list01[r]
​
​
sort_down(list01)
print(list01)
​
作业
1. 三合一
2. 当天练习独立完成
3. 容器综合训练
list_commodity_infos = [{"cid": 1001, "name": "屠龙刀", "price": 10000},{"cid": 1002, "name": "倚天剑", "price": 10000},{"cid": 1003, "name": "金箍棒", "price": 52100},{"cid": 1004, "name": "口罩", "price": 20},{"cid": 1005, "name": "酒精", "price": 30},
]
# 订单列表
list_orders = [{"cid": 1001, "count": 1},{"cid": 1002, "count": 3},{"cid": 1005, "count": 2},
]
(1)定义函数,打印所有商品信息,格式:商品编号xx,商品名称xx,商品单价xx.
(2)定义函数,打印商品单价小于2万的商品信息
(3)定义函数,打印所有订单中的商品信息,格式:商品名称xx,商品单价:xx,数量xx.
(4)查找单价最高的商品
(5)根据单价升序排列
​
4. 定义函数,计算社保缴纳费用.salary_before_tax = float(input("请输入税前工资:"))social_insurance = salary_before_tax * (0.08 + 0.02 + 0.002 + 0.12) + 3print("个人需要缴纳社保费用:" + str(social_insurance))
5. 定义函数,根据颜色(RGBA),打印描述信息"R" -> "红色""G" -> "绿色""B" -> "蓝色""A" -> "透明度"
6. 定义函数,在数字列表中获取最小值
7. 定义函数,对数字列表进行升序排列
​
作用域;函数实参形参传递;

Python-Level1-day08:函数相关推荐

  1. Python菜鸟入门:day08函数概念

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  2. Python学习Day08

    Python学习Day08 字符串 II 判断和检测 startswith(prefix[,start[,end]]):用于判断参数所指定的字符串是否出现在字符串的起始位置 endswith(pref ...

  3. python turtle画滑稽_使用python的turtle函数绘制一个滑稽表情的方法

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  4. python的popen函数

    最近了解了一下python的popen函数的使用,主要是用来执行linux命令 函数使用 使用之前需要导入import os模块 使用方式: os.popen(cmd) 返回值: 返回一个文件句柄 i ...

  5. python中pop函数_Python中的Pop函数

    python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...

  6. Python培训:Python有哪些函数?你了解几种?

    本期小编要为大家带来的Python教程就是关于Python函数这方面的,我们都知道Python函数,一般是指组织好的.可重复使用的.用来实现单一或相关联功能的代码段,Python函数包含系统中自带的一 ...

  7. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  8. 技术图文:举例详解Python中 split() 函数的使用方法

    背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...

  9. 刻意练习:Python基础 -- Task05. 函数与Lambda表达式

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  10. 为什么Python没有main函数?

    作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到" Python的main函数" ...

最新文章

  1. Pytorch:transforms的二十二个方法
  2. boost::math::inverse_gamma_distribution用法的测试程序
  3. Go语言 中文分词技术使用技巧(一)
  4. js javascript UTF-8 GB2312编码转换
  5. 解决在Win2008下IIS7不显验证码的问题
  6. 猪肉上的红章和蓝章有啥不同?| 今日趣图
  7. html中把句子往右边弄一点咋办,CSS上的左,中,右对齐方法,可以在一行上混合...
  8. 如何在Mac OS X 10.6.4上卸载Python 2.7?
  9. wildfly access log 开启
  10. BootStrap:基础学习
  11. Markdown中表格中内容换行、左对齐等基本操作
  12. 【Linux内核分析与应用-陈莉君】进程的调度
  13. 彻底解决IE9 文本框无法输入文字,IE窗口闪烁问题(亲测)
  14. 高斯消元法(matlab)
  15. FAT文件系统(stm32)
  16. 达梦数据库的替代(instead of )触发器使用一例
  17. 获取控制台程序的返回值
  18. 血氧仪方案功能及使用方法介绍
  19. 最近在写一款斗地主游戏,写了个癞子匹配顺子的算法
  20. 逐梦C++之四:四种强制类型转换

热门文章

  1. 基于AD的表单认证 Moss2010
  2. 好用的图片浏览器——ArcSoft Photo+
  3. js 84*148=B6A8 多少进制才能使两边相等
  4. 万人在线机房服务器配置,如何搭建小型服务器机房?
  5. Pycharm安装第三方库显示 nothing to show问题
  6. 牛客NOIP暑期七天营-普及组4 C-火龙果田
  7. Dockerfile文件万字全面解析
  8. 注册表方式关闭445端口
  9. 总是忘记去哪找自己在CSDN上提问的问题
  10. 用链接提交form表单