函数

函数是组织好的,可重复使用的,用来实现单一,或相关联的代码段。
能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但是,你也可以自己创建函数,这种叫用户自定义函数。
过程与函数

  • 面向对象:类(class)

  • 面向过程:过程(def)

  • 函数式编程:函数(def)
    过程与函数

    #函数
    def fun1()
    print(“this is a testing1”)
    return 0
    #过程
    def fun2()
    print(“this is a testing2”)
    在编程中,过程和函数都是可以调运的实体,将没有返回值的函数叫做过程。
    为什么使用函数?

  • 代码重用

  • 保持一致性

  • 可扩展
    定义一个函数

  • 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号起始,并且缩进。

  • **return[表达式]**结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None
    语法
    python定义函数使用def关键字,一般格式如下:

     def 函数名(参数列表):
     	函数体
    

    默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

     def print_welcome(name)
     	print("wlcome",name)
     print_welcome(user)
    

    结果

     welcome user
    

函数返回值
返回值的作用
后续程序需要函数值的确认。
返回值的效果
return执行的效果是:返回一个值,且终止当前程序运行。

def test1(): 
	print("in the test1") 
	return 0 
	print("test end") 
	
test1() 

执行结果

in the test1

返回值的类型

def test1():
    print("in the test1")

def test2():
    print("in the test2")
    return 0

def test3():
    print("in the test3")
    return 1,"hello",["dajiang","dajiangliu","xxxx"],{"jingling:shibachai"}

def test4():
    print("in the test4")
    return test1
    
def test5():
    print("in the test5")
    return test1()

print(test1())
print(test2())
print(test3())
print(test4())
print(test5())

结果

in the test1
None
in the test2
0
in the test3
(1, 'hello', ['dajiang', 'dajiangliu', 'xxxx'], {'jingling:shibachai'})
in the test4
<function test1 at 0x000001E9F8DAC1E0>
in the test5
in the test1
None	

当没有返回值时,返回null。
当返回值是一个特定值时,返回这个值。
当返回值是多个值时,返回的是一个元组。
当返回值是一个函数名时,返回的是函数的内存地址。
当返回值是一个函数时,返回值是函数的执行结果。
函数的调用
参数类型
位置参数关键字参数默认参数参数组

def test(x,y): #形参
	print(x) 
	print(y) 
	test("x","y") #位置实参调运,形参和实参是一一对应
	test(y=2,x=3) #关键字参数调运,与形参位置无关。 
	#test(x=2,3) #关键参数不能写在位置参数之前。 
	test(3,y=2) #位置参数和关键字参数同时存在,以位置参数调运为主	

*实参不能大于形参数目。
默认参数
特点:调运函数的时候,默认参数非必须传递
用途:参数在不修改其值的情况下,使用默认值

def test(x=3)
		print(x)
test()

在实际生产环境中,实参是存在多个的,如何定义实参?就需要参数组概念。

def test(*args):
	print(args)
test(*[1,3,5,7,9])		

执行结果

(1, 3, 5, 7, 9)

结果是元组
参数组和形式参数可以混合使用。

def test(**kwargs):
 	print(kwargs)
test(**{'name':"anliu","age":18})

把N个关键字参数,转换为字典的形式
执行结果:

{'name': 'anliu', 'age': 18}

可将关键字或者字典传递,并得到一个字典的输出结果。
参数和参数组同时使用也是没有问题的。
*args : 接受N个位置参数,转化成元组的形式
**kwargs :接受N个关键字参数,转化成字典的形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值