python---函数基础课程

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# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐为波

看着给就好了,学习写作有点累!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值