函数模块包

函数

传参

def hello(a,b,c):
	print(a,b,c)

1位置传参

hello(a,b,c)			#正确
#错误
hello(a,b)
hello(a,b,c,d)			#参数不能多不能少

2关键字传参

hello(a=1,b=2,c=3)
hello(b=2,a=1,c=3)		#都正确
						#直接通过形参名称赋值,顺序无关,同样不能多或少

3序列传参

#可通过list、tuple、str传参
hello(*list)
hello(*tuple)
hello(*str)				#加星号

4字典传参

#特别注意,字典的键名一定要与形参名一致,键名要为字符串且不能多或少
d={"a":1,"b":2,"c":3}	
hello(**d)				#双星号

不定长参数

1)星号元组形参
2)双星号字典形参

星号元组形参

def func(*args):				#序列传参和字典传参都是使用时加星号
	print(len(args))			#这里定义时加星号,args为一个元组
	x=1
	for i in args:
		print(x,"  ",i)
		x+=1
func(1,2)
func("first",2,"third")			#都正确

命名关键字形参

def func(a,b,*,c,d):
def func(a,b,*args,c,d)	#c,d为关键字形参
func(1,2,c=1,d=2)			#ok
func(1,2,3,5)				#error
#*args之后的参数要用关键字传参,args是元组,可理解为后面的参数用关键字来识别

双星号字典形参

def func(**args):		#把args当作字典
	pirnt()
func(name="123",age=15)	#ok
func(1,2,3)				#error
func(name="123",15)		#error

函数定义时双星号字典形参需要写在星号元组形参前面

三个强大的内置函数

map()

map(func , *iterable)	#func是一个函数
						#iterable是一个可迭代对象

list1=[1,2,3,4,5]
def add(x):
	return 1+x
mit=map(add,list1)		#返回值为map的位置
for i in mit:			#mit变成了一个可迭代对象
	print(i,end=' ')	#[2,3,4,5,6]
print()
print(list1)			#[1,2,3,4,5]

map()的作用是把可迭代对象里的每个对象依次取出进行func操作然后返回

reduce()

reduce(func,*iterable [,initializer])

from functools import reduce		#需引入
list1=[1,2,3,4,5]
def add(x,y):
	return x+y
print(reduce(add,list1))			#返回值为累积的结果

reduce()将可迭代对象里的所有元素都进行func操作,(func参数数目为2)第一次取两个元素进行func操作,然后取第三个与第一次func的结果进行func操作

filter()

filter(func,iterable)

list1=[1,2,3,4,5]
def fx(x):
	return x%2==1
list2 = [i for i in filter(fx,list1)]	#得出筛选结果
print(list2)

filter()作用是进行筛选,选出func为真的元素,直接print(filter)结果为filter的位置,用for来得到筛选结果,结果是新生成的对象,原来的对象依然存在

sorted()

sorted(iterable,key=None,reverse=False)
#key为排序依据		key=abs/len表示依据绝对值/长度排序
reverse=False为升序

匿名函数

匿名函数功能简单,不浪费空间
匿名函数内只能写表达式,即return后面的内容且匿名函数自带return
采用lambda而非def

func = lambda x,y : x+y
print (func(1,2))			#3

模块Module

模块是一个文件,以.py结尾
py中的全局变量只在模块中存在

import 模块1 [as 别名],模块2 [as 别名]		#引入
import math
print(math.sin(10))				#用math.sin

help(obj)		#查看模块文档字符串,理解为查看所有对象与作用
dir(obj)		#查看模块所有属性的字符串列表

from 模块名 import 模块属性		#导出一个属性
from math import sin

from math import sin			#可直接使用sin
print(sin(10))

将一系列模块进行分类管理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值