python中getnum函数_Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】...

本文实例讲述了Python3.5函数的定义与使用。分享给大家供大家参考,具体如下:

1、函数学习框架

2、函数的定义与格式

(1)定义

(2)函数调用

注:函数名称不能以数字开头,建议函数名称的开头用小写的字母

(3)函数有四种格式,分别是:无参数无返回值,有参数无返回值、无参数有返回值、有参数有返回值

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:ZhengzhengLiu

# 无参数无返回值

def hello():

# 函数体/方法体

print("hello world")

hello()

# 有参数无返回值

def add(x, y):

print(x + y)

add(10, 20)

# 无参数有返回值

def sleep():

return "sleep"

s = sleep()

print(s)

# print(sleep()) 等价于上面两句

# 有参数有返回值

def sub(x, y):

return x * y

res = sub(12, 6)

print(res)

运行结果

hello world

30

sleep

72

3、函数的参数

注:定义再函数体内的参数是形参,调用时传入的参数是实参。

函数参数包括:位置参数、关键字参数和不定个数参数

(1)位置参数、关键字参数

示例代码:

#位置参数

def test(x,y,z):

print(x,y,z)

test(1,2,3)

#关键字参数

def test1(x,y,z=10):

print(x,y,z)

test1(1,2,3)

test1(1,2) #关键字参数,z采用默认的参数值

test1(x=2,z=3,y=1) #调用时的关键字参数

运行结果:

1 2 3

1 2 3

1 2 10

2 1 3

(2)默认参数

注:带有默认值参数的形参必须放在参数的最后面的位置。

(3)不定个数参数,用*args   和    **kwarg

总结:

(1)定义时  *的作用  将位置实参装配成元组

定义时  **的作用  将关键字实参装配成字典

(2)调用时  *作用  将元组或列表打散成位置参数进行参数传递

调用时  **作用  将字典打散成关键字参数进行参数传递

#不定个数参数

def test2(x,y,z,*args):

print(x,y,z,args)

#定义时 *的作用 将位置实参装配成元组

test2(1,2,3,4,6,7,8,9)

def test3(x,y,z,**kwargs):

print(x,y,z,kwargs)

#定义时 **的作用 将关键字实参装配成字典

test3(1,2,3,a=6,b=19,c=8)

def ts(x,*args,**kwargs):

print(x,args,kwargs)

ts(1,2,3,a=6,b=19,c=8)

def test4(x,y,z):

print(x,y,z)

x = [1,2,3]

y = {"x":1,"y":"hello","z":"你好"}

test4(*x) #调用时 *作用 将元组或列表打散成位置参数进行参数传递

test4(**y) #调用时 **作用 将字典打散成关键字参数进行参数传递

运行结果:

1 2 3 (4, 6, 7, 8, 9)

1 2 3 {'b': 19, 'a': 6, 'c': 8}

1 (2, 3) {'b': 19, 'a': 6, 'c': 8}

1 2 3

1 hello 你好

4、函数的传值:基本类型传值调用、非基本类型参数传递调用(强引用与弱引用)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:ZhengzhengLiu

#基本类型传值调用

def test(x):

print(x)

test(10)

#非基本类型参数传递调用

li = [1,2,3,4]

print(id(li)) #打印传递前的地址

def test1(x):

print(id(x))

x[0] = 2 #修改第一个参数为2

print(x)

test1(li) #强引用(传址调用,列表里面的内容会进行修改)

#test1(list(li)) #弱引用(用list可以消除强引用,不能修改列表里的元素)

for i in li:

print(i)

运行结果:(强引用传址调用)

10

17741864

17741864

[2, 2, 3, 4]

2

2

3

4

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:ZhengzhengLiu

#基本类型传值调用

def test(x):

print(x)

test(10)

#非基本类型参数传递调用

li = [1,2,3,4]

print(id(li)) #打印传递前的地址

def test1(x):

print(id(x))

x[0] = 2 #修改第一个参数为2

print(x)

#tes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值