pythondone()函数_python学习之2函数
1.定义函数
1.1 nothing
def fib(n):#fib string
a,b=0,1 #a=0 b=1
i=0
while i
print(a,' ')
a,b=b,a+b #多重复值
i=i+1
print('done')
f=fib #函数重命名
f(5)
tips:函数 调⽤ 会为函数局部变量⽣成⼀个新的符号表。 确切的说,所有函数中的变量赋值都是将值存储在局部符号表。 变量引⽤⾸先在局部符号表中查,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。 因此,全局变量不能在函数中直接赋值(除⾮⽤ global 语句命名),尽管他们可以被引⽤。
1.2参数中带有默认值的函数
def fibwithdefaultvalue(n=5):# 不传递n时,n的值将会是5
a,b=0,1
i=0
result=[]#list
while i
result.append(a)
a,b=b,a+b
i=i+1
return result
g=fibwithdefaultvalue
print(g())
tips1:默认值可以是变量,并且在函数定义的时候被解析:如下
'''
Created on Dec 3, 2013
@author: panql
'''
i = 5
def f(arg=i):
print(arg)
i = 6
f()
此段代码的执⾏结果为5,因为在函数定义的时候,能够解析的i的值是5
tips2:默认值只会被赋值⼀次,如果默认值是可变对象时,可能会出现很诡异的情况,如默认值是列表时可能出现累积等。
1.3 关键字参数以及可变参数
1.3.1 关键字参数
在如下代码中,展⽰了通过关键字参数。及k=v的形式来调⽤函数的做法
'''
Created on Dec 3, 2013
to know keywords arguments
@author: panql
python新手代码userid'''
def keywordsargs(userid,username='none',password='none'):
'''
there are three argumens:userid,username and password .username and password have default value.
'''
print('the user id is ',userid,' username is',username,'pwd is',password)
keywordsargs('aaa')
keywordsargs(userid='aaa',password='bbb')
keywordsargs('bbb',username='hehe',password='cccc')
keywordsargs(userid='aaaa',username='hello',password='nihao')
keywordsargs(password='nihao',username='hello',userid='aaaa')
tips:1 任何参数都不能被赋值两次
1.3.2可变参数
//TODO
tips:
1.python eclipse插件设置
2.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。