Python基础10_函数

python

直接贴笔记 :

#!/usr/bin/env python

# coding:utf-8

# 定义函数时要写成良好的注释习惯 通常用三个单引号

def test(x):

'''

计算一个y=2*x+1

:param x: 整型

:return: 整型

'''

y = 2 * x + 1

return y

# print(test)

print(test(4))

### 本次课参考 http://www.cnblogs.com/linhaifeng/articles/6113086.html#label1

def test(): ## 后定义的函数将覆盖前面的函数

'''

测试函数

:return:

'''

y = 33*2

return y

print(test())

"""

python中函数定义方法:

def test(x):

"The function definitions"

x+=1

return x

def:定义函数的关键字

test:函数名

():内可定义形参

"":文档描述(非必要,但是强烈建议为你的函数添加描述信息)

x+=1:泛指代码块或程序处理逻辑

return:定义返回值

调用运行:可以带参数也可以不带

函数名()

"""

过程其实就是没有返回值的函数:

#!/usr/bin/env python

# coding:utf-8

# 参考 二 为何使用函数 http://www.cnblogs.com/linhaifeng/articles/6113086.html#label1

'''

def 发送邮件(内容)

# 发送邮件提醒

连接邮箱服务器

发送邮件

关闭连接

while True:

if cpu利用率 > 90 %:

发送邮件('CPU报警')

if 硬盘使用空间 > 90 %:

发送邮件('硬盘报警')

if 内存占用 > 80 %:

发送邮件('内存报警')

'''

# 总结使用函数的好处:

#

# 1.代码重用

#

# 2.保持一致性,易维护

#

# 3.可扩展性

########### 过程 就是没有返回值的函数 没有return

def test01():

msg = 'test 01'

print(msg)

def test02():

msg = 'hello test02'

print(msg)

return msg

def test03():

msg = 'test 03'

print(msg)

return 0,10,'hello',['alex','lb'],{'WuDaLang':'lb'}

def test04():

msg = 'test 04'

print(msg)

return {'WuDaLang':'ssb'}

t1 = test01()

t2 = test02()

t3 = test03()

t4 = test04()

print(t1)

print(t2)

print(t3)

print(t4, type(t4))

各种参数的示例:

#!/usr/bin/env python

# coding:utf-8

# 1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。
# 函数调用结束返回主调用函数后则不能再使用该形参变量

# 2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。
# 因此应预先用赋值,输入等办法使参数获得确定值

# 3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)

def test2(x,y,z):

print(x)

print(y)

print(z)

return

test2(3,2,1) #位置参数必须一一对应

test2(z=11,x=22,y=33) # 关键字调用:位置无需固定 但是个数必须相同

# test2(z=11,x=22,x=33) # 参数不能传2 个值,报错,无法执行。

# test2(11,y=22,x=33) # 位置传参时,也遵守不能传2 个值,报错,无法执行。

# 若混合使用,则关键字参数必须在位置参数后面。

# 可变长度参数

def test(x,*args):

print(x)

print(args)

return

test(4,5,2,3,1) # 除了第一个参数,其它的都被当成一个元组。

test(11,{"name":"jerry"}) # 字典作为一个整体传入

test(55,*{"name":"jerry","age":38}) # 字典元素传入,则只能得到key 无法获取value

test(22,['a','b','c']) # 列表作为一个整体传入

test(33,*['a','b','c']) # 列表中的元素分别传入

# 4.默认参数

def test3(x=0,y=2):

s = x ** y

return s

print(test3(3,3)) # 传了实参,将覆盖形参的默认值

def test4(x,b='mysql'):

print(x)

print(b)

test4('hello',b='sqlite')

## 例:安装软件时的选项

def install(func1=False,func2=True,func3=True):

pass

# 动态参数有两种: 
  *args 接收位置参数,组成元组
  **kwargs 接收关键字参数,组成字典
  顺序: 位置参数,*args, 默认参数, **kwargs
  
# 5.参数组

def test5(a,*args,default=' ', **kwargs):   # 此种函数定义可以接收最大种类最大数量的参数。
print(a)
print(args,args[-1])
print(default)
print(kwargs,kwargs.get('2'))

test5(12,*[11,22,33,44], default='aaa', **{'name':'abc','2':'ffg'}) # 传字典

## 小练习

def func(x,*y,**z):

print(x,y,z)

func(1,2,3,4,name='k',age=3)

# 得到 1 (2, 3, 4) {'name': 'k', 'age': 3}

def fun1(x,*y,**z):

print(x,y,z)

fun1(1,name=2,age=3)

# 得到 1 () {'name': 2, 'age': 3}

# 键值参数一定是传给了两个星的字典参数.

多个返回值 ,可以用多个变量接

def calc_d(a,b):

return a*a, b*b

a,b = calc_d(9,8)

print(a,b)

以上是 Python基础10_函数 的全部内容, 来源链接: utcz.com/z/388590.html

回到顶部