1、Python函数
函数是Python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构,用于将相关功能打包并参数化
Python中可以创建4种函数:
1)、全局函数:定义在模块中,每个模块都是一个全局作用域,因此,全局作用域的范围仅限于单个程序文
2)、局部函数:嵌套在其它函数中
3)、lambda函数:表达式
4)、方法:与特定数据类型关联的函数表,并且只能与数据类型关联一起使用
Python提供众多内置函数
Python创建、改变、查找变量名都是在名称空间中进行,在代码中变量名被复制的位置决定了其能被访问到的范围
Python函数执行环境
如图,函数可以通过多种方法获得输入以及产生输出:
创建函数,语法格式:
def funcName(arg1,arg2, ...):
suite
语法说明:
1)、def是一个可执行语句,可以出现在任何能够使用语句的地方,甚至可以嵌套在其它语句中,例如if或while语句。
2)、def创建一个对象并将其赋值给一个变量名(即函数名)
3)、return用于返回结果对象,为可选参数,无return语句时函数自动返回none对象。返回对个值时,使用逗号隔开,并组合称一个元组对象返回
4)、def语句运行之后,可以在程序中使用函数后附加括号进行调用,每次对函数的调用都会创建一个新的本地作用域,赋值的变量除非声明为全局变量,否则均为本地变量
5)、所有的变量名都可以归纳为本地、全局或内置的(由__builtin__模块提供)
python函数用法示例
例1:交互式模式下创建并调用函数
In [1]: def printname(): ...: raw_input('Please Inputyour name:') ...: In [2]: printname() Please Input your name:Fieldyang
例2:编辑test.py,测试全局变量和函数内本地变量
[root@test 0527]# vim test.py #!/usr/bin/python27 x = 27 def f1(): x= 52 print x f1() print x [root@test 0527]# chmod +x test.py [root@test 0527]# ./test.py
52 #调用函数产生的输出,函数内变量
27 #print产生的输出,本地变量
例3:编辑test.py,测试全局变量和函数内变量的作用域
[root@test 0527]# vim test.py #!/usr/bin/python27 x = 27 def f1(): y= 52 print "def y = %d,global x = %d" % (y,x) f1() print "global x = %s." %x print y [root@test 0527]# ./test.py def y = 52,global x = 27 global x = 27. Traceback (most recent call last): File "./test.py", line 9, in <module> print y NameError: name 'y' is not defined
#函数内部可以使用全局变量,局部同名变量不影响全局变量,并且全局变量无定义时无法自行使用函数内同名变量。
#函数内部赋值的变量可以使用global声明为全局变量,则全局中均会调用该变量值。
例4:编辑test.py,定义全局变量
[root@test 0527]# vim test.py #!/usr/bin/python27 x = 27 y = 66 #本地变量,函数内部声明“global y”后该参数不会被调用 def f1(): global y y= 52 print "global y = %d,global x = %d" % (y,x) f1() print "global x = %s." %x print "global y = %s." %y [root@test 0527]# ./test.py global y = 52,global x = 27 global x = 27. global y = 52.
2、变量名解析
1)、LEGB原则:
Local-->Enclosing functionlocals-->Global-->Built-in
变量名引用分三个作用域进行
首先是本地、之后是函数内、接着是全局、最后是内置,作用域越小,优先级越高
2)、变量名解析示例
例1:函数嵌套的使用
[root@test 0527]# vim test2.py #!/usr/bin/python27 # z = "From global :" m = 666 def f1(): x= "From function f1 :" y= 222 print "%s y = %d" % (x,y) print "%s m = %d" % (z,m) def f2(): x = "From function f2 :" print "%s y = %d" % (x,y) f2() f1() print "%s m = %d" % (z,m) [root@test 0527]# chmod +x test2.py [root@test 0527]# ./test2.py From function f1 : y = 222 From global : m = 666 From function f2 : y = 222 From global : m = 666
以上这篇基于Python函数和变量名解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
Python,函数,变量名
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。