python中函数的使用

函数的使用: 在一个完整的项目中(代码量非常大),会有很多需要重复执行的代码,
可以将这些代码写到一个函数中, 当需要使用的时候, 直接调(一行代码)用即可
本质: 代码的封装

好处: 1.极大的简化的了代码,
2.提高了代码的复用性
3.如果想添加或者修改bug,直接去对应的函数位置修改即可
定义一个函数:

def 函数名(参数1,参数2,…):
语句体
return 值/表达式

1.定义函数时是以关键字 def 开始的
2.def后面是函数名,函数名是自己取的,遵从标识符命名法则,
3.函数名后面跟的是 (), ()中用来定义接收参数,
4.()中的是参数列表,用来定义接收的参数, 当()中不需要接收参数时, ()也不能省略,参数列表可以是任意多个
5.()后跟的是 :,:表示函数体的开始, 函数体的范围用统一缩进来表示函数的范围
6.语句体就是需要复用执行的代码
7.return 用来返回一个结果 , 没有返回值时return可以省略

调用格式:

函数名(参数列表)
1.调用时,直接写需要调用函数的函数名,
2.函数名后跟(), ()中是用来传递实际参数
3.()中是空参数时,()不能省略

定义函数时,函数里的代码不执行,当调用的时候才执行

#定义简单的函数
def sayHello():
    print("hello world")
sayHello()

通过函数来打印 一个人的名字,和年龄
在定义函数的时候,函数括号里的是形式参数,形式参数时用来接收实际参数的是调用的时候实际上是实际参数赋值给形式参数的过程
调用的时候相当于执行了 name = “张三”, age = 18

def printNameAndAge(name,age):
   print("name: %s    age:%s"%(name,age))调用
#在调用的时候传递的参数是实际参数
printNameAndAge("张三",18)
name = "李四"
age = 25
printNameAndAge(name,age)

调用函数时,实际参数的个数要与定义的形式参数个数要一致
注意: 调用函数时,实际参数的出入顺序,要与形式参数的顺序一致

return

作用1: return可以用来返回一个结果 #作用2:可以终止函数的运行, 即执行了return后,return后面的代码就不执行了 #return 后面可以返回一个表达式,return的时候会先计算表达式的结果,然后将表达式的结果返回 return可以省略,省略后默认返回 None,相当于执行了None

#简单的求和函数
def sum(lists):
    sum = 0
    for i in lists:
        sum += i
    return sum #sum作为函数的返回值
lists = [1,2,3,4,5,6,7,8,9]
print(sum(lists))

关键字参数

实际参数默认传递给形式参数是一一对应的, 如果想打乱顺序传入,则需要使用关键字参数,即给该参数赋予一个名字,该参数就是形式参数的名字
注意; 关键字参数在实际参数的列表的后方

def printInfo(name,age,heigth,sex):
    print("name: %s   age:%s  heigth:%s   sex:%s"%(name,age,heigth,sex))

printInfo("张三",sex="未知",age=18,heigth=180)

默认值参数

调用函数时,如果没有传递参数,则使用默认参数 #可以给函数的形式参数设置默认值,当调用的时候,可以不传入已经设置了默认值的实际参数, 会自动给这些参数赋予默认值 在形式参数的参数列表中, 设置了默认值的参数应该放在参数列表的后部 #在实际参数传递了默认位置的参数值时,优先使用实际参数

def printInfo(name,age,heigth,sex = "男"):
    print("name: %s   age:%s  heigth:%s   sex:%s"%(name,age,heigth,sex))

printInfo("张三",age=18,heigth=180)

不定长参数 * args ** kwargs

可以用来接收多个不确定是数据 参数名前带了 *的用来接收任意多个没有命名的参数, 会自动将没有命名的参数,按照传入顺序,封装成一个元组, 传递到函数中去使用,当没有传入参数时,该元组为空 定长的参数最好放在,不定长参数前

不定长参数求和
addNumber(*args):
sum = 0
遍历拿出每一个参数
for num in args:
sum += num
return sum

可以在函数中传入多个值
print(addNumber(1))
print(addNumber(1,2,3,4,5))

参数名前带了 **的用来接收任意多个key = value形式的参数, 会自动将传递进来的 key=value形式的参数封装成字典,如果没有key=value形式的参数, 会封装成一个空字典

def printInfo(**kwargs):
    for key,value in kwargs.items():
        print(key,value)

printInfo(name = "张三",age=18, heigth=180)

匿名参数

定义成lambda 表达式
lambda a, b: a + b
lambda 表达式是匿名函数,用来简化函数的创建, : 前面的表示形式参数,多个形式参数用逗号隔开, : 后表示的是返回值的表达式

fun = lambda  a,b:a+b
print(fun(1,2))

偏函数

相当于修改默认值,
partial 参数1传入需要修改的函数名,参数2,用来设置新的默认值
简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值返回一个新的函数),调用这个新函数会更简单。

import functools
int = functools.partial(int,base=2)
print(int("0100"))

int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换

def int2(data):
    return  int(data,base=2)
print(int2("0100"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值