函数

1.定义

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
  • 先定义,后使用

1.2分类

  • 系统函数
  • 自定义函数

1.3语法:

def functionname(parameters):
"函数_文档字符串"
function_suite
return [expression]

1.4函数的返回值

  • 函数执行完毕之后的返回的结果
  • 如果没有给出返回值,默认返回None
  • 返回多个值时,返回类型为元组

2.参数问题

2.2分类

位置参数

  • 默认情况下,函数调用时参数的个数,位置参数与函数定义时一致
def fun1(a, b):
print(a, b) fun1(1, 2)

关键字参数

  • 可以将实参的值通过关键字来指定给具体给哪个形参
  • 如:
def fun1(a, b):
print(a, b) fun1(b=1, a=2)

默认参数

  • 在定义时,形参如果给出了默认值,这时候,就是默认参数。 所有的默认参数必修放在最后
    默认参数在调用时,如果没有实参对他进行赋值,他的值为默认值,否则为指定值
def fun1(a, b=2, c=3):
print(a, b, c) fun1(1)
fun1(1, 3, 4)

 可变参数(可以实现函数定义,以及函数调用时,参数个数不匹配的情况)

  • *args :可以给任意个参数

def fun1(*args):
print("type(args):", type(args))
print("args:", args)
print("*args:", *args)
print("-" * 30) fun1()
fun1(1)
fun1(1, 2)
fun1([1, 2, 3])

  

**kwargs :只能给键值对的参数(a=1, b=2)

def fun1(**kwargs):
print("type(kwargs):", type(kwargs))
print("kwargs:", kwargs)
print("-" * 30) fun1()
fun1(a=1, b=2, c=3)

*args 与 **kwargs 一起使用

def fun1(*args, **kwargs):
print("type(args):", type(args))
print("args:", args)
print("*" * 10)
print("type(kwargs):", type(kwargs))
print("kwargs:", kwargs)
print("-" * 30) fun1()
fun1(1)
fun1(1, 2, 3, a=4, b=5)

  

2序列解包

使用 *:

  • 完成str、list、tuple的解包
  • 对于字典,只解包key
  • 返回类型:tuple
a = [1, 2, 3]
b = *a,
print(type(b))
print(b)

  

a = [1, 2, 3]
b = (1, 2, 3)
c = "hello"
d = {'a': 1, 'b': 2}
print("a:", *a, "\nb:", *b, "\nc:", *c)
print("d:", *d)

  

使用 **:

  • 完成dict的解包
  • 解包为: key1=value1 key2=value2
  • 不能直接打印
def fun1(**kwargs):
print(kwargs) d = {'a': 1, 'b': 2}
fun1(a=1, b=2)
fun1(**d)

  

3. 内置函数

3.1查看内置函数

  • import builtins
    print(dir(builtins))

3.2 常用内置函数

abs(x):求绝对值

  • x : 数值表达式,可以是整数,浮点数,复数。

max(x):求最大值

  • x :Iterable(list,tuple,str,dict,set)
  • 关键字key,默认以每个元素中的0号索引值查找最大元素
list1 = [(1001, "James", 40), (1000, "Jack", 20), (1002, "Lucy", 28)]
m = max(list1)
print(m)

  

  • 指定关键字key,自定义选择每个元素中的索引值,查找最大元素
list1 = [(1001, "James", 40), (1000, "Jack", 20), (1002, "Lucy", 28)]
m = max(list1, key=lambda item:item[2])
print(m)

  

map() :

  • 有两个参数,第一个参数是一个函数,第二个参数是可迭代的内容。函数会依次作用在可迭代内容的每一个元素上进行计算,然后返回一个新的可迭代内容

如:

def fun1(n):
return n ** 2 list1 = [1, 2, 3, 4]
list2 = map(fun1, list1)
print(type(list2)
print([item for item in list2])

  

def fun1(a, b):
return a + b list1 = [1,2,3,4]
list2 = [2,3,4]
list3 = map(fun1, list1, list2)
# list3 = map(lambda a,b:a+b, list1, list2)
print([item for item in list3])

  

filter():

  • 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新“列表”(迭代器)
def func2(x):
return x % 2 == 0 list1 = filter(func2, [1, 2, 3, 4, 5])
print(type(list1))
print([item for item in list1])

  

zip():

  • zip 函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象。这个可迭代对象可以使用循环的方式列出其元素。若多个可迭代对象的长度不一致,则所返回的列表长度与参数中长度最短的可迭代对象相同
list1 = [1,2,3]
tuple1 = ('a', 'b', 'c', 'd')
str1 = "Hello"
v = zip(list1, tuple1, str1)
print(type(v))
print([item for item in v])

  

python自定义函数和内置函数的更多相关文章

  1. Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)

    Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器) 1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数

  2. python协程函数、递归、匿名函数与内置函数使用、模块与包

    目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...

  3. python基础-匿名函数和内置函数

    匿名函数和内置函数 匿名函数:没有名字,使用一次即被收回,加括号就可以运行的函数. 语法:lambda 参数:返回值 使用方式: 将匿名函数赋值给变量,给匿名函数一个名字,使用这个变量来调用(还不如用 ...

  4. python — lambda表达式与内置函数

    目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): == ...

  5. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  6. python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...

  7. python之三元表达式、列表推导、生成器表达式、递归、匿名函数、内置函数

    目录 一 三元表达式 二 列表推到 三 生成器表达式 四 递归 五 匿名函数 六 内置函数 一.三元表达式 def max(x,y): return x if x>y else y print( ...

  8. Python 入门基础12 --函数基础5 匿名函数、内置函数

    今日内容: 1.三元表达式 2.列表.元组生成式 | 字典生成式 3.递归 4.匿名函数 5.内置函数 一.三元表达式 三元运算符:就是 if...else... 语法糖 前提:if 和 else # ...

  9. python基础之函数式编程、匿名函数、内置函数

    一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...

  10. python 基础篇 15 内置函数和匿名函数

    ------------------------>>>>>>>>>>>>>>>内置函数<<< ...

随机推荐

  1. Java实现对日期上旬中旬下旬格式化

    PS:我数据库表定义的日期是String类型,要求对读取的日期进行格式化为xx年xx月上\中\下旬 测试代码如下 package day1; import java.text.ParseExcepti ...

  2. xshell添加脚本

    ##### xshell添加脚本```属性连接 - 用户身份验证 - 登陆脚本 - 添加等待:[usmshell]$发送:open 212 //212是指188那台机器的ID再添加一个等待:passw ...

  3. oauth2使用心得-----基本概念以及认证服务器搭建

    应用场景 我们假设你有一个“云笔记”产品,并提供了“云笔记服务”和“云相册服务”,此时用户需要在不同的设备(PC.Android.iPhone.TV.Watch)上去访问这些“资源”(笔记,图片) 那 ...

  4. RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景?

    RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? - 知乎 https://www ...

  5. 【DM8168学习笔记5】EZSDK目录结构

    EZSDK5.02的目录结构与之前的版本不同,之前的版本各个组件都放在/ezsdk目录下,5.02做了整合. 之前版本:(图片摘自:3.DM816x_1-day_Workshop-Getting_St ...

  6. idea短信验证

    idea短信验证(短信接口:阿里云:消息中间件:activeMQ) 主要分为两步:1.创建发消息  2.创建收消息 1.创建发消息 1.1 创建maven工程 1.2 pom.xml文件导入依赖 注意 ...

  7. hbase过滤器(1)

    最近在公司做hbase就打算复习下它的过滤器以便不时之需,RowFilter根据行键(rowkey)筛选数据 public void filter() throws IOException { Fil ...

  8. TZ_14_Feign的客户端和Feign的负载均衡

    1.作用:Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样.你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做. 2.导入起步坐标 < ...

  9. 傳説中的 jsonp

    jsonp的由來 1 . 網頁上的東西衹要跨域了就不能傳送或者接受數據了.不管是什麽衹要是跨域.Ajax直接请求普通文件存在跨域无权限访问的问题, 2 . 但是src這個東西比較厲害了,請求哪裏都可以 ...

  10. http请求生命周期流程

    https://mp.weixin.qq.com/s/fpA2CThk2L-YBw6z0k4rtw HTTP 请求/相应 1.客户端连接到Web服务器 一个HTTP客户端,通常是浏览器,与Web服务器 ...