day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参
函数进阶
1.函数作为变量
a=123
name="gao"
nums=[1,2,3]
data=nums#指向同一个内存地址
#查看内存地址篇章
def func():
print(123)
func()
1.1函数名作为变量名使用
def func():
print("nice")
v1=func#v1指向func函数的内存地址
v1()#执行内存中存放的代码
func()
1.2函数的默认返回值
def func():
print("nice")
v2=func()#函数执行 打印nice
print(v2)
#nice
#None func()函数中没有返回值 则默认返回None
1.3列表中的函数变量
def func():
print("nice")
num=[1,2,3]
num.append(4)
print(num)
#func_list=[func,func,func]
#func_list[0]()#执行 nice 4
#func_list[1]()#执行 nice 4
#不是[1,2,3,4,4]因为每次都重新赋值了
for item in func_list:
v=item()#nice [1,2,3,4]
#执行列表中的函数 执行print语句
print(v)#None
#因为item函数中没有返回值 所以默认返回None
1.4字典中的函数变量
def func():
print(123)
def bar():
print(666)
info={'k1':func,'k2':bar}
info['k1']()#123
inf['k2']()#666
易混淆:
def func():
return 123
func_list1=[func,func,func]
func_list2=[func(),func(),func()]
print(func_list1)#函数地址
print(func_list2)#返回值
#[<function func at 0x10f330e18>, <function func at 0x10f330e18>, <function func at 0x10f330e18>]
#[123, 123, 123]
info={
'k1':func,
'k2':func()
}
print(info)
#{'k1': <function func at 0x1079b4e18>, 'k2': 123}
1.5集合中的函数:[不重复性 ]
def func():
print(123)
se={func,func,func,8,"a"}#会被去重
print(se)
# {8, <function func at 0x1096a1e18>, 'a'}
#不重复性给三个函数去重成一个
1.6函数作为参数
def func(arg):
print(arg)
func(1)
func([1,2,3,4])
def show():
print("aa")
func(show)#打印show函数的地址
#<function show at 0x10ad927b8>
def func(arg):
v1=arg()#将传入的函数执行---> aa
print(v1)#None
def show():
print("aa")
func(show)#
#func()执行 --> 内部arg()执行就是-->show()执行-->
#-->show执行完后返回值给v1-->执行print(v1)
def func(arg):
v1=arg()
print(v1)
def show():
print(666)
result=func(show)
print(result)
#① 首先func()执行
#② func()内执行show()函数 print(666)
#③ show()的默认返回值None给v1 = None
#④ print(v1)
#⑤ func()默认返回值None给result
#⑥print(result)
练习:
10086 的十个函数 , 每个函数都有对应的功能 ,用户输入某个值就执行某个函数
# 字典
# 函数放在字典中
def show():
print("语音")
def voice():
print("修改流量套餐")
def bar():
print("话费充值")
def test():
print("其他")
def logout():
print("退出")
info = {
"f1": show,
"f2": voice,
"f3": bar,
"f4": test,
"f5": logout
}
while True:
choice = input("请用户输入:")
if choice in info:
if choice == 'f5':
break
info[choice]()
else:
print("输入错误")
day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参的更多相关文章
- python进阶---列表、字典、集合相关操作
基本概念 列表 序列是python中一个基本的数据结构,每个元素都有一个索引index 操作 # 创建列表 list = [] # 修改列表 list[2] = 2001 # 删除列表 del lis ...
- 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- pop 在列表中和字典中的区别
pop 在列表中和字典中的区别 字典中 pop() 语法:dict.pop(key,[value]) 说明:删除指定键及对应的值,如果在字典中不存在键及value,则返回pop()中指定的key对应的 ...
- js进阶 13-1 jquery动画中的显示隐藏函数有哪些
js进阶 13-1 jquery动画中的显示隐藏函数有哪些 一.总结 一句话总结:show(),hide(),toggle(),这三个. 1.jquery动画中显示隐藏效果函数有哪些? show()h ...
- Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数
Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 不再通过遍历,对数组中的元素进行运算,利用frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 ...
- python之字符串,列表,集合,字典方法
字典内置函数&方法 函数: 1.len(dict1):打印字典的键的个数 方法:dict1.( ) 2.clear():清空字典 3.copy():复制字典 4.fromkeys():使用指定 ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- Java中的函数式编程(五)Java集合框架中的高阶函数
写在前面 随着Java 8引入了函数式接口和lambda表达式,Java 8中的集合框架(Java Collections Framework, JCF)也增加相应的接口以适应函数式编程. 本文的 ...
- 2018.11.06 生成器函数进阶&列表推导式&生成器表达式
1.生成器函数进阶 2.列表推导式 3.生成器表达式
随机推荐
- jquery validate 校验时,如果有type=hiddien
当校验时,不需要校验#warnId,否则会引起输入框#alarmtile里的样式混乱
- Kali Linux Vmware虚拟机(新手)安装
准备工作: 1.安装VMware workstation 软件 2.下载好kali linux 的ios系统文件 3.打开电脑的虚拟化支持(Intel VT-x/EPT或AMD-V/RVI(V)) 虚 ...
- python全栈考题 3.30
1.执行Python 脚本的两种方式 1.>>python ../pyhton.py 2. >>python.py #必须在首行有 #!/usr/bin/env ...
- getString与optString的区别
JSONObject.getString("key"):当对象中没有key属性的时候,会抛出No value for "key"的异常: public Stri ...
- 分析logfilter+session
1.P132分析: long before = System.currentTimeMillis(); //返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1 ...
- Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理
作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...
- dapper.simplecurd
[Table("Users")]//真实表名 publicclass User { [Key] publicint UserId { get; set; } [Column(&qu ...
- 集成学习-Adaboost
Adaboost 中文名叫自适应提升算法,是一种boosting算法. boosting算法的基本思想 对于一个复杂任务来说,单个专家的决策过于片面,需要集合多个专家的决策得到最终的决策,通俗讲就是三 ...
- element-ui(或者说Vue的子组件)绑定的方法中传入自定义参数
比如el-upload中的 :on-success= fn,其实是给组件el-upload传递一个prop,这样写的话fn只能接受upload组件规定的参数,如果想自己传递父组件中的参数比如b,要写成 ...
- day14 内置函数二
lamda 语法: 函数名 = lambda 参数: 返回值注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开 2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据 3. 返回 ...