您的位置:首页 > 编程语言 > Python开发

python---函数基础课程

2017-09-21 23:52 316 查看
python—函数基础课程

1.函数是抽象的第一步

1.1 有关高压锅
1.2 函数是抽象出来的结构,是总结,是方法
1.3 多用函数


2.如何定义函数

2.1 def是关键词,括号冒号永不忘,无缩进无真相。
2.2 没有return的函数,不是大丈夫——不是真函数。
2.3 不写doc的函数,就像没有性别的人类。


root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test():
"此文档是测试函数功能模块的语句"
return 'yyyy'

print test()
print test.__doc__#此句是显示该文档内容信息

root@kali:~/python/laowangpy# python def1.py
yyyy
此文档是测试函数功能模块的语句
root@kali:~/python/laowangpy#


3.函数的参数魔法和陷阱

3.1 如何定义参数
3.1.1 位置参数,可选参数


位置参数

root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(a,b,c):
"此文档是测试函数功能模块的语句"
return a,b,c

print test(1,2,3)
print test.__doc__#此句是显示该文档内容信息

root@kali:~/python/laowangpy# python def1.py
(1, 2, 3)#返回是元组
此文档是测试函数功能模块的语句
root@kali:~/python/laowangpy#


可选参数

root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(a=6):
return a

print test(a=2)

root@kali:~/python/laowangpy# python def1.py
2
root@kali:~/python/laowangpy#


3.2 参数的值是局部变量
3.2.1 参数只在函数内部有用
3.2.1 全局变量介绍,使用方法
3.2.2 全局变量最讨厌了


root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# python def1.py
3
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

b = 3

def a():
b =4

def c():
return b

print c()

root@kali:~/python/laowangpy#


3.3 参数默认值

3.4 如何修改参数
3.4.1 介绍
3.4.2 这样修改东西,实在是恶心


root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# cat  def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

b = [1,2,3,4]

def func(n):
n.append(5)
return n
func(b)

print b

root@kali:~/python/laowangpy# python def1.py
[1, 2, 3, 4, 5]
root@kali:~/python/laowangpy#


3.5 **和*,猩猩是字典,星是元组。


两个**功能当成字典

root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(**kr):#两个**功能当成字典
return kr

print test(a=4,c=3,d=6,g=8)

root@kali:~/python/laowangpy# python def1.py
{'a': 4, 'c': 3, 'd': 6, 'g': 8}
root@kali:~/python/laowangpy#


一个*功能当成元组

root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(*kr):
return kr

print test(1,2,4,5,6,7,9)

root@kali:~/python/laowangpy# python def1.py
(1, 2, 4, 5, 6, 7, 9)
root@kali:~/python/laowangpy#


一个星号的元组与两个星号的字典,有位置顺序变化,如果换动位置会有报错信息

root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(*kr,**xr):
return kr,xr

print test(1,2,4,5,6,7,9,[22,11,33],a=3,b=9,c=8)

root@kali:~/python/laowangpy# python def1.py
((1, 2, 4, 5, 6, 7, 9, [22, 11, 33]), {'a': 3, 'c': 8, 'b': 9})
root@kali:~/python/laowangpy#


名称混淆会报错信息

root@kali:~/python/laowangpy# vi def1.py
root@kali:~/python/laowangpy# python def1.py
Traceback (most recent call last):
File "def1.py", line 7, in <module>
print test(1,2,4,5,6,7,9,[22,11,33],a=3,b=9,c=8)
TypeError: test() got multiple values for keyword argument 'a'
root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(a,b,c,*kr,**xr):
return kr,xr

print test(1,2,4,5,6,7,9,[22,11,33],a=3,b=9,c=8)

root@kali:~/python/laowangpy#


名称不同会正常运行,参数替换是顺序的

root@kali:~/python/laowangpy# cat def1.py
#!/usr/bin/pyhon
#--*-- coding:utf-8 --*--

def test(x,y,z,*kr,**xr):
return kr,xr

print test(1,2,4,5,6,7,9,[22,11,33],a=3,b=9,c=8)

root@kali:~/python/laowangpy# python def1.py
((5, 6, 7, 9, [22, 11, 33]), {'a': 3, 'c': 8, 'b': 9})
root@kali:~/python/laowangpy#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 函数