python学习之——017函数概述

练习代码:

#
#认识函数: 在一个完整的项目中,有些功能会反复使用,那么会将这个功能封装成函数,当我们想使用功能的时候,直接调用函数即可
#本质: 函数就是对功能的封装
#优点:1.简化代码结构,增加代码的重用度
#2.如果想修改某些功能或者调试某个BUG,还需修改对应的函数即可

#定义函数:
#格式: def 函数名(参数列表):
#   语句
#   return 表达式
#

#无参,无返回值的函数
def myPrint():
    print("ben is a good man")

#函数调用
myPrint()

#函数的参数,形式参数,参数按顺序传递
def Myprint1(str,age):
    print(str,age)

#实参:调用函数时,给函数传递的数据,本质是值
Myprint1("ben is a good man",18)

#求和
def SUM(num1,num2):
    return num1+num2
    #return 后面的代码不执行
    print("***********")

res = SUM(1,2)
print(res)


#值传递:传递的是不可变类型 (string,tuple,number)
def fun1(num):
    print(id(num))
    num = 10
    print(id(num))
temp = 20
fun1(temp)
print(temp)
print("************")

#引用传递,传递的是可变类型(list dict set)
def fun2(lis):
    lis[0] = 100
li = [1,2,3,4]
fun2(li)
print(li)
print("************")

a = 10
b = 10
print(id(a),id(b))

c = 10
d = 20
print(id(c),id(d))
d = c
print(id(c),id(d))
print("************")

#关键字参数:允许函数调用时的顺序与定义时不一样

def p(str,age):
    print(age,str)
#使用关键字参数
p(age = 18,str="abc")

#默认参数:调用函数时,如果没有传递参数,则使用默认参数
def p1(str = "abc",age = 18):
    print(age,str)
#使用关键字参数
p1()

#以后要用默认参数,最好将默认参数放到最后
def p2(str,age=18):
    print(age, str)
p2("abc")
print("************")

# 能处理比定义时更多的参数
#加了*的变量,存放所有未命名的变量参数,如果在函数调用时没有指定参数,它就是一个空元祖
def p3(name,*arr):
    print(name)
    for x in arr:
        print(x)

p3("a","b","c")


def p4(*l):
    sum = 0
    for i in l:
        sum += i
    return sum
print(p4(1,2,3,4,5))
print("************")

#字典    **代表键值对参数, 和*所代表的意义类似
def p5(**kwargs):
    print(kwargs)
    print(type(kwargs))
p5(x = 1, y = 2, z = 3)
print("************")

def p6(*args,**kwargs):
    pass #代表一个空格语句

#匿名函数:不使用def这样的语句定义函数,使用lambda来创建匿名函数
#特点:1.lambda知识一个表达式,函数体比def简单
# 2.lambda的注意是一个表达式,而不是代码块,仅仅智能在lambda表达式中封装简单的逻辑
# 3.lambda函数有自己的命名空间,且不能访问自由参数列表之外的货全局命名空间的参数
# 4.虽然lambda是一个表达式且看起来只能写一行,和c c++内联函数不同
#格式: lambda 参数1,参数2,。。。。。。参数n : expression

sum = lambda num1,num2 : num1 + num2
print(sum(1,2))
print("************")

 

运行结果:

D:\pycharm\python\venv\Scripts\python.exe D:/pycharm/python/017函数概述.py
ben is a good man
ben is a good man 18
3
1445392784
1445392464
20
************
[100, 2, 3, 4]
************
1445392464 1445392464
1445392464 1445392784
1445392464 1445392464
************
18 abc
18 abc
18 abc
************
a
b
c
15
************
{'z': 3, 'x': 1, 'y': 2}
<class 'dict'>
************
3

Process finished with exit code 0
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值