python函数变量教程_Python 函数变量
函数变量
函数名是变量,它在创建函数时绑定一个函数
# 示例:
def f1():
print("f1函数被调用")
f2 = f1 #两个变量同时绑定一个函数
f2() #f1 函数被调用
# 示例2:
def f1():
print("f1")
def f2():
print("f2")
f1,f2 = f2,f1
f1()# f2
一个函数可以作为另一个函数的实参传递
# 示例:
function_as_args.py
def f1():
print("f1被调用")
def f2():
print("f2被调用")
def fx(fn):
print(fn)
fn()#调用函数
fx(f1)
def goodbye(l):
for x in l:
print("再见:",x) 看懂
def operator(fn,l):
fn(l)
operator(goodbye,["Tom","Jerry","Spike"])
练习;
# 看懂下列代码:
def myinput(fn):
L = [1,3,5,7,9]
return fn(L)
print(myinput(max))
print(myinput(min))
print(myinput(sum))
# 函数可以作为另一个函数的返回值
# 示例见:
# function_as_return_value.py
def get_function():
s = input("请输入你要做的操作:")
if s == "求最大":
return max
elif s == "求最小":
return min
elif s == "球和":
return sum
l=[2,4,6,8,10]
f = get_function()
print("f绑定:",f)
print(f(l))
练习:
# 写一个计算公式的解释执行器
# 已知有如下一些函数:
# def myadd(x,y):
# return x+y
# def mysum(x,y):
# return x-y
# def mymul(x,y):
# return x * y
# 定一个带有一个参数的函数 get_func(s):
# def get_func(s):
# ... # 此处自己实现
# 此函数的在传入字符串“加”或“+”返回myadd函数:
# 此函数的在传入字符串“乘”或“*”返回myadd函数:
# 在主函数中程序如下:
# def main():
# while True:
# s = input("请输入计算公式:") # 10 加 20
# l = s.split() # L = ["10","加","20"]
# a = int(l[0])
# b = int(l[2])
# in = get_fuc(l[1])
# print("结果是:",fn(a,b))
def myadd(x,y):
return x+y
def mysum(x,y):
return x-y
def mymul(x,y):
return x * y
def get_func(s):
if s == "加" or s == "+":
return myadd
elif s == "减" or s == "-":
return mysum
elif s == "乘" or s == "*":
return mymul
def main():
while True:
s = input("请输入计算公式:") # 10 加 20
if not s:
break
l = s.split() # L = ["10","加","20"]
a = int(l[0])
b = int(l[2])
fn = get_func(l[1])
print("结果是:",fn(a,b))
main()
函数的嵌套定义
函数嵌套定义是指一个函数里用def语句来创建其他函数的情况
# 示例见:
# function_embed_def.py
# 此示例示意函数的嵌套定义
def fn_outer():
print("fn_outer被调用")
# 此处能否创建新的函数并且调用呢?
def fn_inner():
print("fn_inner被调用!")
fn_inner() # 调用函数内部的fn_inner
fn_inner()
print("fn_outer调用结束")
fn_outer()
python 作用域
# 作用域也叫名字空间,是访问变量时查找变量名的范围空间
# 示例:
a = 100
def fx():
a = 10000 # a = 10000 和 a = 100 是两个不同作用的域内的变量
print(a)
fx()
print(a)
python的四个作用域 LEGB
作用域 英文解释 英文简写
局部作用域(函数内) Local(function) L
外部嵌套函数作用域 Enclosing function local E
函数定义所在模块的作用域 Global(module) G
python 内置模块的作用域 Builtin(python) B
来源:https://www.cnblogs.com/Axianba/p/11265519.html
python函数变量教程_Python 函数变量相关推荐
- python声明变量教程_Python定义变量
变量就像是一个用来装东西的盒子,我们把要存储的东西放在这个盒子里面,再给这个盒子起一个名字.当我们需要用到盒子里的东西的时候,只要说出这个盒子的名字,就可以找到其中的东西了. 盒子里的东西是可以变化的 ...
- python用来查看变量类型的函数是什么_python查看变量类型的函数
怎么查看变量的类型 python方法如下: type(变量),输出的结果就是变量的类型: 在Python里面变量在声明时,不需要指定变量的类型,变量的类型是动态指定的: 也就是说变量的类型,根据给出的 ...
- python不允许使用关键字作为变量名_python函数变量_python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数 - 云+社区 - 腾讯云...
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在python 中, ...
- python中函数的调用_python函数的调用、函数中变量的使用之详解
'''函数的工作原理:函数内部的变量都是临时的, 当你的函数返回以后,返回值可以被赋予一个变量. 这里是创建了一个新变量,用来存放函数的返回值. ''' def secret_formula(star ...
- python函数自定义教程_Python中自定义函数的教程
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...
- python闭包函数使用教程_Python闭包装饰器使用方法汇总
闭包内容: 匿名函数:能够完成简单的功能,传递这个函数的引用,只有功能 普通函数:能够完成复杂的功能,传递这个函数的引用,只有功能 闭包:能够完成较为复杂的功能,传递这个闭包中的函数以及数据,因此传递 ...
- python指定变量类型_Python#160;变量类型_python教程
Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...
- python变量运算符_Python(三) 变量与运算符
一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1, a='1', a=(1,2), ...
- python闭包函数的必要条件_Python 函数 functions、闭包 closure
一般我们都知道,函数只有在调用的时候才会被执行 但是我们在用 def 定义一个函数时,编译器做了什么?或者什么都没做? 实际上,当用 def 定义一个函数时,就创建了一个函数对象,该对象封装了函数体, ...
- python中函数的定义_Python函数是什么_如何定义和调用函数?
函数是什么? 本节Python培训教程是要大家认识一个"老朋友"--函数. 与数学中的函数不同,在Python中,函数不是看上去冰冷无聊的规则和公式,而是实打实的.有自己作用的代码 ...
最新文章
- 工业软件研究框架_聚焦十四五!先进制造急先锋——工业软件
- AI Time | 论道数据共享开放与隐私保护
- switch……case里的case能不能同时定义多个值呢?
- CocoaPods公有库的创建
- [原]逆向iOS SDK -- +[UIImage imageNamed:] 的实现
- range和xrange的区别
- JQuery中text(),html(),val()的区别
- 04-树4 是否同一棵二叉搜索树 (25 分)
- TabError的解决方法
- 你想成为Java架构师吗?掌握这六项就够了!
- R2: 相关系数、复相关系数及半偏相关系数之间的联系
- java如何简单的将一个三位正整数分解成三个数
- python concurrent.futures包使用,捕获异常
- java求一元二次方程:ax2+bx+c=0的根
- ⅴs2010控件名称及用方法_VS2010 用户自定义工具箱控件的制作方法
- Java并发学习笔记19 线程池 ThreadPoolExecutor
- 做人必须留的几张底牌
- 为什么现在的视频都会加入自动字幕功能?
- dorado 刷新_dorado5 datatree 刷新问题
- 如何加快 Synology Drive 的同步过程?(外网速度极慢)