python学习笔记三:函数及变量作用域

python学习笔记三:函数及变量作用域,第1张

概述一、定义def functionName([arg1,arg2,...]):code二、示例#!/usr/bin/python#coding:utf8#coding=utf8#encoding:utf8#encoding=utf8def fun(x=3,y='甜'):print '生成一个',x,'元',y,'口味的蛋糕'fun()fun(10)fun(y='奶油')冗余参数:#!/usr/bin/pythondef f(name="jim",age=20):print "name:%s age:%s" % (name,age)t=('tom', 25)d={'age':25,'name':'lucy'}f(*t)#name:tom age:25f(**d)#name:lucy age:25def f1(x,*args):print x,argst1=('tom',25,'male')f1(*t1)#tom (25,'male')def f2(x,**args):print x,argsd1={'x':1,'y':2}f2(**d1)#1 {'y':2}def f3(x,*arg1,**arg2):print xprint arg1print arg2f3(1,2,3,a=1,b=2,c=3)#1#(2,3)#{'a':1,'b':2,'c':3}三、Python 变量作用域局部变量当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。a = 1def fun(a):print aa = 2print afun(x)print a结果:121解释:在函数中,我们第一次使用a的值的时候,Python使用函数声明的形参的值。接下来,我们把值2赋给a。a是函数的局部变量。所以,当我们在函数内改变a的值的时候,在主块中定义的a不受影响。在最后一个print语句中,我们证明了主块中的a的值确实没有受到影响。使用global语句如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的,我们使用global语句完成这一功能。a=1def fun():global aprint aa = 2print afun()print a输出:122解释:global语句被用来声明a是全局的——因此,当我们在函数内把值赋给a的时候,这个变化也反映在我们在主块中使用a的值的时候。 一、定义二、示例

<span >def fun(x=3,y=<span >'<span >甜<span >'<span >):
<span >print <span >'<span >生成一个<span >',x,<span >'<span >元<span >',y,<span >'<span >口味的蛋糕<span >'<span >

fun()

fun(10<span >)

fun(y=<span >'<span >奶油<span >')

冗余参数:

<span >def f(name=<span >"<span >jim<span >",age=20<span >):
<span >print <span >"<span >name:%s age:%s<span >" %<span > (name,age)

t=(<span >'<span >tom<span >',25<span >)
d={<span >'<span >age<span >':25,<span >'<span >name<span >':<span >'<span >lucy<span >'<span >}

f(*<span >t)
<span >#<span >name:tom age:25
<span >
f(**<span >d)
<span >#<span >name:lucy age:25

<span >def f1(x,*<span >args):
<span >print<span > x,args

t1=(<span >'<span >tom<span >',25,<span >'<span >male<span >'<span >)
f1(*<span >t1)
<span >#<span >tom (25,'male')

<span >def f2(x,**<span >args):
<span >print<span > x,args

d1={<span >'<span >x<span >':1,<span >'<span >y<span >':2<span >}
f2(**<span >d1)
<span >#<span >1 {'y':2}

<span >def f3(x,*arg1,**<span >arg2):
<span >print<span > x
<span >print<span > arg1
<span >print<span > arg2

f3(1,2,3,a=1,b=2,c=3<span >)
<span >#<span >1<span >

<span >(2,3)
<span >
<span >{'a':1,'b':2,'c':3}
三、Python 变量作用域局部变量

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

a = 1def fun(a): print a a = 2 print a

fun(x)
print a

结果:

121

解释:

在函数中,我们第一次使用a的值的时候,Python使用函数声明的形参的值。

接下来,我们把值2赋给a。a是函数的局部变量。所以,当我们在函数内改变a的值的时候,在主块中定义的a不受影响。

在最后一个print语句中,我们证明了主块中的a的值确实没有受到影响。

使用global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的,我们使用global语句完成这一功能。

a=1def fun(): global a print a a = 2 print a

fun()
print a

输出:

122

解释:

global语句被用来声明a是全局的——因此,当我们在函数内把值赋给a的时候,这个变化也反映在我们在主块中使用a的值的时候。

总结

以上是内存溢出为你收集整理的python学习笔记三:函数及变量作用域全部内容,希望文章能够帮你解决python学习笔记三:函数及变量作用域所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1208069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存