1.3.1 Python中的名词和参数收集

1,参数和变量
在定义函数的时候(def来定义函数,称为def语句),函数名后面的括号里如果有变量,它们通常被称为“ 形参”。调用函数的时候,给函数提供的值叫作“ 实参”,或者“ 参数”。
>>> def test(x): #x是参数,准确说是形参
a=2 #a是变量
return a+x #x就是那个形参作为变量,其本质是要传递赋给这个函数的值

>>> x=3 #x是变量,只不过在函数之外
>>> test(x) #这里的x是参数,但是它由前面的变量x传递对象3
5
2,全局变量和局部变量
全局变量和局部变量必须要弄清楚,因为关系到函数内外有别的大事。
>>> x = 2 #这个x就是全局变量
>>> def funcx():
x = 9 #该处x就是局部变量
print "x=",x

>>> funcx()
x= 9
>>> x
2
从输出看出,运行funcx(),输出了funcx()里面的变量x=9;然后执行代码中的最后一行,print"x=",x
要特别关注的是,前一个x输出的是函数内部的变量x;后一个x输出的是函数外面的变量x。两个变量彼此没有互相影响,虽然都是x。从这里看出,两个x各自在各自的领域内起到作用。
把那个只在函数体内(某个范围内)起作用的变量称之为 局部变量
有局部就应该有对应的全部,这里叫全局,不是全部,所以又来了一个名词: 全局变量
要注意,全局变量一定要慎重使用,因为往往容易带来变量的混乱。内外有别,在程序中一定要注意。
3,参数收集
Python用这样的方式解决参数个数的不确定性:
>>> def func(x,*arg):
print x
result = x
print arg
for i in arg:
result += i
return result

>>> func(1,2,3,4,5,6,7,8,9)
1
(2, 3, 4, 5, 6, 7, 8, 9)
45
从上面例子可以看出,如果输入的参数个数不确定,其他参数全部通过*arg,以元组的形式由arg收集起来。
上面可以总结出:
值1传给了参数x。
值2、3、4、5、6、7、8、9被塞入一个tuple里面,传给了arg。
为了能够更明显地看出arg(名称可以不一样,但是符号*必须要有),可以用下面的一个简单函数来演示:
>>> def aaa( *ale): #ale自己设置
print ale

>>> aaa(1,2,3,4)
(1, 2, 3, 4)
>>> aaa("hello","zhangsan","python")
('hello', 'zhangsan', 'python')
>>> aaa("hello")
('hello',)
不管是什么,都一股脑地塞进了tuple中。即使只有一个值,也是用tuple收集它。特别注意,在tuple中,如果只有一个元素,后面要有一个逗号。
还有一种键值对的传参方式:
>>> def cc( **kar): #kar自己设置
print kar

>>> cc(a=1,b=2,c=3)
{'a': 1, 'c': 3, 'b': 2}
如果用**kargs的形式收集值,会得到字典类型的数据,但是,需要在传值的时候说明“键”和“值”,因为在字典中是以“键值”对形式出现的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值