函数

# 加减乘除四则运算
def calculator(a, opt, b):if opt == "+":print(a + b)elif opt == "-":print(a - b)elif opt == "*":print(a * b)elif opt == "/":print(a / b)else:print("请输入正确的参数")calculator(7, "+", 3)
calculator(7, "-", 3)
calculator(7, "*", 3)
calculator(7, "/", 3)
calculator(7, "#", 3)print("---------------------------------------")# 实参
def eva(name, drive, color, gender):print(name, drive, color, gender)eva("明日香", "二号机", "红色", "女")
eva(name="绫波丽", gender="女", color="蓝色", drive="零号机")  # 关键字传参
eva("绫波丽", "零号机", gender="女", color="蓝色")
# 混合参数,位置参数在前,关键字参数在后,例如open("xxx.txt", mode="xx", encoding="xx")print("---------------------------------------")# 形参
def onepiece(name, hear, gender="男"):  # 默认值参数,要放在位置参数后面print(name, hear, gender)onepiece("索隆", "绿藻头")
onepiece("山治", "黄毛")
onepiece("娜美", "橘色", "女")print("======================")def eat(*food):  # 位置参数的动态传参,接收到的值统一放在元祖里print(food)eat("蔬菜", "米饭", "回锅肉")def eat(**food):  # 关键字的动态传参,接收到的值统一放在字典里print(food)eat(food="蔬菜", rice="米饭")print("---------------------------------------")def func(a, b, *args, c="你好", **kwargs):print(a, b, args, c, kwargs)func(1, 2, 3, 4, 5, 6, c="哈哈", ok=7, yes=8)
# 顺序:位置参数 > *args > 默认值 > **kwargsdef func(*args, **kwargs):  # 没有限制的接收任何参数print(args, kwargs)func()
func(1)
func(1, 2, 3, a=5, b=6)print("---------------------------------------")op_lst = ["路飞", "香克斯", "黑胡子", "五老星"]def func(*args):print(args)func(*op_lst)  # *是把列表中的每个元素取出来当做位置参数进行传递# **是把列表中的每个元素取出来当做关键字参数进行传递

函数返回值

def func():  # 若函数内没有return,此时内部默认返回Nonepass#return None
print(func())  # Noneprint("-----------------------------------------")def func():  # 若return后面不写值,默认返回Noneprint(111)return  # 停止程序,下面的代码不执行print(222)print(func())  # 111 Noneprint("-----------------------------------------")def func():  # 若返回多个值,收到的是多个值组成的元组return 1, 2, 3, 4print(func())  # (1, 2, 3, 4)

内置函数

s = "111"
i = int(s)  # 类型转换
b = bool(s)
f = float(s)a = 10
print(bin(a))  # 二进制
print(oct(a))  # 八进制
print(hex(a))  # 十六进制a = 0b10010
print(int(a))  # 十进制print("------------------------------------")a = 2
b = 5
print(pow(a, b))  # 等价于 a ** blst = [1, 3, 7, 20, 51]
print(max(lst))
print(min(lst))
print(sum(lst))print("------------------------------------")s = {1, 2, 3, 4, 5}
lst = list(s)  # 转换成列表,同理tuple()是转换成元组
# # 相当于
# lst = []
# for item in s:
#     lst.append(item)
print(lst)s = [1, 12, 3, 15, 7]
print(list(reversed(s)))  # 列表翻转print("------------------------------------")a = 20
print(format(a, "08b"))  # 8位二进制,0补齐,超出范围则不管
# b二进制,o八进制,x十六进a = "飞"
print(ord(a))  # unicode编码位置
print(chr(39134))  # 根据编码位置展示文字print("------------------------------------")print(all([5050, "你好", "EVA"]))  # 与and效果一样,判断元素是否都是真
print(all([0, "你好", "EVA"]))print(any([0, "你好", "EVA"]))  # 与or一样
print(any([0, "", ""]))lst = ["EVA", "海贼王", "春物"]
for index, item in enumerate(lst):  # 拿到索引和元素print(index, item)print("------------------------------------")s = "EVA"
print(hash(s))  # 转化成内存地址,进行数据存储,形成哈希表
print(id(s))  # 拿到内存地址print("------------------------------------")lst = ["明日香", "凌波丽", "碇真嗣"]
lst2 = ["二号机", "零号机", "初号机"]
lst3 = ["红", "蓝", "紫"]result = zip(lst, lst2, lst3)  # 把多个可迭代内容,根据对应索引进行合并
print(list(result))print("------------------------------------")lst = [3, 22, 16, 5, 12]
s = sorted(lst)  # 顺序排序
print(s)
s = sorted(lst, reverse=True)  # 倒序排序
print(s)print("****************")def func(item):  # 参数对应列表中的每个元素return len(item)lst = ["明日香", "凌波丽", "EVANGELION", "路飞", "赤犬大将"]
s = sorted(lst, key=func)  # key是排序规则(函数)# 简化成lambda表达式
s = sorted(lst, key=lambda x : len(x))
print(s)print("****************")lst = [{"id": 23, "name": "吉良吉影", "age": 33},{"id": 6, "name": "碇真嗣", "age": 16},{"id": 13, "name": "明日香", "age": 17},{"id": 9, "name": "凌波丽", "age": 16}
]# 根据年龄排序
s = sorted(lst, key=lambda d : d['age'])
print(s)# 根据id从大到小排序
s = sorted(lst, key=lambda d : d['id'], reverse=True)
print(s)print("------------------------------------")lst = ["香吉士", "香克斯", "路奇", "路飞", "赤犬大将"]
# 提取不姓香的人
f = filter(lambda x: not x.startswith("香"), lst)
print(list(f))print("------------------------------------")lst = [1, 2, 3 ,4 ,5]
result = [i * i for i in lst]
print(result)# 用map函数实现批量处理
result = map(lambda x: x * x, lst)
print(list(result))

函数的嵌套

# 嵌套
def func1():print("a")def func2():print("b")def func3():print("c")func3()func2()func1()  # a b cprint("--------------------------------")def func():def inner():print(112233)return inner  # 返回的是函数,把函数当成变量返回f = func()  # f是func内部的inner
f()  # 112233print("=================")
# 代理模式
def func(a):a()  # targert()def target():print("我是target")func(target)  # 实参可以是函数# 重点:函数可以作为返回值返回,函数可以作为参数进行传递。函数名实际上就是一个变量名,都表示一个内存地址

闭包

"""闭包:内层函数对外层函数局部变量的使用,此时内层函数被称为闭包函数作用: 1.可以让一个变量常驻于内存2.避免全局变量被修改
"""
def func():a = 10def inner():nonlocal aa += 1return areturn innerf = func()
r = f()
print(r)  # 11
r2 = f()
print(r2)  # 12

匿名函数lambda表达式

def func(a, b):return a + bret = func(1, 4)
print(ret)# 用lambda表达式简化上述代码
# 语法:变量 = lambda 参数1,参数2,... : 返回值func = lambda a, b : a + b  # 这个实际上就是个函数ret = func(2, 6)
print(ret)

Python基础重点复习(4)相关推荐

  1. Python基础重点复习(2)

    关于哈希​​ 可哈希:不可变的数据类型(int str tuple bool) 不可哈希:可变的数据类型(list dict set) 列表的增删改查 # 向列表中添加内容 lst = [] lst. ...

  2. python基础语法复习[二] 函数、类

    python基础语法复习[二] 前言 一.函数 1.基本概念 2.一般实例 3.参数传递 (1)传不可变对象 (2)传可变对象 4.函数递归调用实例 (1)eg:实现字符串的反转: (2)递归思想画树 ...

  3. python学习笔记1——(廖雪峰教程,菜鸟教程)python基础

    python学习笔记1--(廖雪峰教程,菜鸟教程) https://www.liaoxuefeng.com(https://www.liaoxuefeng.com) 阿修视频 .Python基础(复习 ...

  4. Python基础复习---重点知识笔记(一)

    该篇文章是针对自己在学习python基础知识的时候,对于不易理解或者重点需要掌握知识的总结性概括.后续遇到的问题会不断加入进来! 文章目录 一.函数 1.1 局部作用域不能使用其他局部作用域内的变量 ...

  5. python 基础部分重点复习整理--从意识那天开始进阶--已结

    pythonic 风格编码 入门python好博客 进阶大纲 有趣的灵魂 老齐的教程 老齐还整理了很多精华 听说 fluent python + pro python 这两本书还不错! 元组三种遍历, ...

  6. Python基础知识总结(期末复习精简版)

    文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...

  7. 计算机应用基础期末考试电大,(电大)期末考试2017年广播电视大学网考《计算机应用基础》重点复习题目汇总版(理论题及操作题)...

    2017年度最新广播电视大学(电大)期末考试网考<计算机应用基础>重点复习题目整理汇总版(理论题及操作题) 1.一般认为,世界上第一台电子数字计算机诞生于1946年. 2.计算机当前已应用 ...

  8. python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...

    问题001-1:请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形.若能,输出YES和面积,否则输出NO a = float(input()) b = float(input()) c = ...

  9. Python基础超详细笔记[为了自己复习写的笔记~]

    加粗样式@[toc] 计算机组成 硬件系统 中央处理器:cpu 存储器: 内存储器:内存 外存储器:硬盘 u盘 输入设备:键盘.鼠标- 输出设备:显示器.打印机- 软件系统 系统软件:操作系统.- 应 ...

最新文章

  1. Activity的管理类
  2. 2017/10/12 表格与表单
  3. 高级数据分析1代码_用Python进行数据分析,让你一看就会
  4. 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
  5. POJ 1252 Euro Efficiency
  6. linux终端运行w3m,linux shell浏览器,终端浏览器w3m参考参数
  7. c语言相邻地址相差多少,C语言内存地址基础
  8. python自学行吗-python自学行吗?给编程初学者零基础入门的建议
  9. Git 时光穿梭鸡 管理修改
  10. Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
  11. 菜鸟记录:安卓手机导出微信聊天记录
  12. 在Word中使用带圈数字为正文编号
  13. Linux下使用FastDFS
  14. 空间中球坐标与直角坐标的互化(matlab实现)
  15. poj 计算几何 分类
  16. 3d建模师就业前景?
  17. 全志V3s学习记录(4)uboot:开机logo
  18. 太空飞行计划LibreOJ - 6001(网络流24题)(最大权闭合图)
  19. fortran和matlab编程的区别,fortran和matlab
  20. Ubuntu上使用CLion开发STM32,并使用JLink下载、调试

热门文章

  1. linux下查看mysql的配置文件(查看加载的那个配置文件)
  2. 大数据领域的杰出公司(国内外1)
  3. 方向α与管理理论——竞争战略、管理…
  4. Flash相册加载图片完毕等比缩放的类
  5. Rosetta中文教程(三)
  6. 网易游戏面试题刷刷刷(1)
  7. oracle adjusting parallel,Oracle 参数之_undo_autotune
  8. 深度剖析E680G开发二.交叉编译BusyBox,图形化程序
  9. Vue | 18.本地应用 - 小黑记事本
  10. 各类免费API接口推荐,再也不怕找不到免费API了