Python基础重点复习(4)
函数
# 加减乘除四则运算
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)相关推荐
- Python基础重点复习(2)
关于哈希 可哈希:不可变的数据类型(int str tuple bool) 不可哈希:可变的数据类型(list dict set) 列表的增删改查 # 向列表中添加内容 lst = [] lst. ...
- python基础语法复习[二] 函数、类
python基础语法复习[二] 前言 一.函数 1.基本概念 2.一般实例 3.参数传递 (1)传不可变对象 (2)传可变对象 4.函数递归调用实例 (1)eg:实现字符串的反转: (2)递归思想画树 ...
- python学习笔记1——(廖雪峰教程,菜鸟教程)python基础
python学习笔记1--(廖雪峰教程,菜鸟教程) https://www.liaoxuefeng.com(https://www.liaoxuefeng.com) 阿修视频 .Python基础(复习 ...
- Python基础复习---重点知识笔记(一)
该篇文章是针对自己在学习python基础知识的时候,对于不易理解或者重点需要掌握知识的总结性概括.后续遇到的问题会不断加入进来! 文章目录 一.函数 1.1 局部作用域不能使用其他局部作用域内的变量 ...
- python 基础部分重点复习整理--从意识那天开始进阶--已结
pythonic 风格编码 入门python好博客 进阶大纲 有趣的灵魂 老齐的教程 老齐还整理了很多精华 听说 fluent python + pro python 这两本书还不错! 元组三种遍历, ...
- Python基础知识总结(期末复习精简版)
文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...
- 计算机应用基础期末考试电大,(电大)期末考试2017年广播电视大学网考《计算机应用基础》重点复习题目汇总版(理论题及操作题)...
2017年度最新广播电视大学(电大)期末考试网考<计算机应用基础>重点复习题目整理汇总版(理论题及操作题) 1.一般认为,世界上第一台电子数字计算机诞生于1946年. 2.计算机当前已应用 ...
- python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...
问题001-1:请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形.若能,输出YES和面积,否则输出NO a = float(input()) b = float(input()) c = ...
- Python基础超详细笔记[为了自己复习写的笔记~]
加粗样式@[toc] 计算机组成 硬件系统 中央处理器:cpu 存储器: 内存储器:内存 外存储器:硬盘 u盘 输入设备:键盘.鼠标- 输出设备:显示器.打印机- 软件系统 系统软件:操作系统.- 应 ...
最新文章
- Activity的管理类
- 2017/10/12 表格与表单
- 高级数据分析1代码_用Python进行数据分析,让你一看就会
- 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
- POJ 1252 Euro Efficiency
- linux终端运行w3m,linux shell浏览器,终端浏览器w3m参考参数
- c语言相邻地址相差多少,C语言内存地址基础
- python自学行吗-python自学行吗?给编程初学者零基础入门的建议
- Git 时光穿梭鸡 管理修改
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
- 菜鸟记录:安卓手机导出微信聊天记录
- 在Word中使用带圈数字为正文编号
- Linux下使用FastDFS
- 空间中球坐标与直角坐标的互化(matlab实现)
- poj 计算几何 分类
- 3d建模师就业前景?
- 全志V3s学习记录(4)uboot:开机logo
- 太空飞行计划LibreOJ - 6001(网络流24题)(最大权闭合图)
- fortran和matlab编程的区别,fortran和matlab
- Ubuntu上使用CLion开发STM32,并使用JLink下载、调试
热门文章
- linux下查看mysql的配置文件(查看加载的那个配置文件)
- 大数据领域的杰出公司(国内外1)
- 方向α与管理理论——竞争战略、管理…
- Flash相册加载图片完毕等比缩放的类
- Rosetta中文教程(三)
- 网易游戏面试题刷刷刷(1)
- oracle adjusting parallel,Oracle 参数之_undo_autotune
- 深度剖析E680G开发二.交叉编译BusyBox,图形化程序
- Vue | 18.本地应用 - 小黑记事本
- 各类免费API接口推荐,再也不怕找不到免费API了