跟女朋友介绍十个常用的 Python 内置函数,她夸了我一整天
内置函数是什么
了解内置函数之前,先来了解一下什么是函数
将使用频繁的代码段进行封装,并给它起一个名字,当我们使用的时候只需要知道名字就行
函数就是一段封装好的、可以重复使用的代码,函数使得我们的程序更加简洁、模块化,提高了代码的复用性
举个例子
我想实现一个求球表面积功能的程序,当我们知道半径 r 的时候,就可以根据公式来求出表面积
假设我们需要计算三个不同半径的球的表面积
这样写会发现一个问题,每次都得写 4 * 3.14 * r * r
,而且如果要把 3.14
改成3.1415
的话,需要全部替换掉
如何解决呢?既然这段是重复的有规律的代码,我们可以将其封装成函数
有了函数,我们就不再需要每次写 S = 4 * 3.14 * r * r
,而是通过函数调用的形式S = surface_area(r)
而且函数S = surface_area(r)
本身只需要写一次,当你需要把 3.14
改成3.1415
的时候,只需要对这个函数进行修改就行了
在 Python 中,解释器自带的函数称为内置函数,这些函数可以直接调用且不需要导入(import)某个模块
运行 Python 需要一个叫做 Python 解释器的东西
这个 Python 解释器其实是一个程序,它为Python使用者提供了一些常用的功能,并取了独一无二的名字,这就是我们所说的“内置函数"
Python 解释器启动以后,内置函数也生效了,可以直接拿来使用
除了内置函数之外,Python 中还有标准库函数
Python 标准库函数相当于解释器的外部扩展,它不会随着解释器的启动而启动,要想使用这些外部扩展函数,需要提前导入,否则函数是无效的
总的来说
内置函数是解释器的一部分,它随着解释器的启动而生效;标准库函数是解释器的外部扩展,导入模块以后才能生效
一般来说,内置函数的执行效率要高于标准库函数
下面给出官方提供的 Python 内置参数使用手册地址
http://docs.python.org/3/library/functions.html
常用内置函数
abs()
abs()
功能:返回一个数的绝对值
结果
100
0
200
调用函数的时候,如果传入的参数数量不对,会报TypeError
的错误,并且Python会明确地告诉你:abs()
有且仅有1个参数,但给出了两个
调用函数的时候,如果传入的参数数量不对,会报TypeError
的错误,并且Python会明确地告诉你:abs()
有且仅有1个参数,但给出了两个
如果传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError
的错误,并且给出错误信息:str
是错误的参数类型
eval()
eval(expression, globals=None, locals=None)
功能:该函数用来执行一个字符串表达式,解析成 Python 表达式并返回表达式的值
结果
2
我是大帅哥
max()
max(iterable, *[, default=obj, key=func])
max(arg1, arg2, *args, *[, key=func])
功能:
当传入单个可迭代参数时,返回可迭代参数中最大的元素
当传入两个或多个参数时,返回最大的那个参数
default 用来指定最大值不存在时返回的默认
传入单个参数,该参数为可迭代对象
传入参数不是可迭代对象会报错
传入多个参数
至少传入两个参数,否则报错(是有只传入一个参数的例外,此时参数必须为可迭代对象,返回的是可迭代对象中的最大元素)
如果传入可迭代参数为空,必须指定参数 default,用来返回默认值输出,否则报错
命名参数 key
值为一个函数,将传入 max() 中的参数传入 key 指定的函数中加工一遍之后再求最大值
min()
min(iterable, *[, default=obj, key=func])
min(arg1, arg2, *args, *[, key=func]) -> value
功能与 max() 相反,返回最小值,这里不过多介绍
数据类型转换函数
比如int()
函数可以把其他数据类型转换为整数
float()
函数可以把其他数据类型转换为浮点数
str()
函数可以把其他数据类型转换为字符串
range()
range(start, stop, step=1)
功能:在 Python3 中,返回特定范围内的可迭代对象,而不是列表类型
默认步长为 1,可以指定步长
reversed()
reversed(seq)
功能:将列表中的元素进行反转排序,返回的是一个可迭代对象,而不是列表类型
sorted()
sorted(iterable, /, *, key=None, reverse=False)
功能:返回指定可迭代对象的排序列表
结果
[1, 2, 3, 4, 6, 11]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
['a', 'c', 'd', 'j']
map()
map(function, iterable, *iterables)
功能:map 将传入的函数依次作用到序列的每个元素,并把结果作为新的迭代器返回
map 传入的第一个参数是 f,即函数对象本身,由于结果 res 是一个 迭代器,是惰性序列,因此需要 list() 函数让它把整个序列都计算出来并返回一个列表
round()
round(number, ndigits=None)
功能:返回小数点后精确舍入到 ndigits 位的数字,ndigits 参数默认为 None,如果为 None,则返回与其输入最接近的整数
结果
1.34
1.35
1
而对于 round(2.675, 2)
返回 2.67 而不是 2.68 的结果官方也进行了说明
Note The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected 2.68.
This is not a bug: it’s a result of the fact that most decimal fractions can’t be represented exactly as a float.
See Floating Point Arithmetic: Issues and Limitations for more information
官方说这不是一个 bug,而是因为大多数小数不能精确地表示为浮点数
而 python3 中的 round()
并不是四舍五入,而是会受到计算机精度的影响
这跟浮点数的精度有关。我们知道在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位数的,机器已经做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67
如果想要返回 2.68,可以先将数值扩大 n 倍,直到将保留小数位的下一位小数提到小数部分第一位
也就是说保留两位小数就将第三位小数提到第一位,做的操作就是乘以100。以此类推
结果
2.67
2.68
最后,除非对精确度没什么要求,否则尽量避开用 round() 函数,使用 decimal 模块
感谢阅读,喜欢作者就动动小手[一键三连],这是我写作最大的动力
跟女朋友介绍十个常用的 Python 内置函数,她夸了我一整天的更多相关文章
- 8个最常用的Python内置函数,小白必备!
题图:Photo by Markus Spiske on Unsplash Python给我们内置了大量功能函数,官方文档上列出了69个,有些是我们是平时开发中经常遇到的,也有一些函数很少被用到,这里 ...
- 人生苦短之我用Python篇(深浅拷贝、常用模块、内置函数)
深浅拷贝 有时候,尤其是当你在处理可变对象时,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来的对象.这就是Python的copy所发挥作用的地方. 定义了当对你的类的实例调用copy.c ...
- python内置函数详细介绍
知识内容: 1.python内置函数简介 2.python内置函数详细介绍 一.python内置函数简介 python中有很多内置函数,实现了一些基本功能,内置函数的官方介绍文档: https: ...
- python 内置函数和函数装饰器
python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...
- python内置函数大全(分类)
python内置函数大全 python内建函数 最近一直在看python的document,打算在基础方面重点看一下python的keyword.Build-in Function.Build-in ...
- Python学习:6.python内置函数
Python内置函数 python内置函数,是随着python解释器运行而创建的函数,不需要重新定义,可以直接调用,那python的内置函数有哪些呢,接下来我们就了解一下python的内置函数,这些内 ...
- 【Python】Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 复制代码代码如下: >>> help(dir)Help on built-in function ...
- Python补充--Python内置函数清单
Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义.最常见的内置函数是: print(&quo ...
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- python内置函数print输出到文件,实现日志记录的功能
# bulid time 2018-6-22 import os import time def log(*args, **kwargs): # *kargs 为了通用 可不传 rule = &quo ...
随机推荐
- Jmeter 函数助手之__time
接口中需要传入time时,可使用Jmeter 函数助手中的__time函数传入当前时间 格式和参数名称两个字段非必填,当都不填时直接点击生成按钮,得到13位时间戳:按图填写后,得到10位时间戳,获取当 ...
- 结合商业项目深入理解Go知识点
这篇文章比较硬核,爆肝5千字,把之前整理的知识点都串起来了.建议先收藏,慢慢看. 前言 上一篇文章 #[Go WEB进阶实战]开源的电商前后台API系统 很受大家欢迎,有好多小伙伴私信我问题:&quo ...
- [常用工具] Python视频解码库DeFFcode使用指北
DeFFcode是一种跨平台的高性能视频帧解码器,通过内部封装ffmpeg,提供GPU解码支持,几行python代码就能够快速解码视频帧,并具有强大的错误处理能力.DeFFcode的APIs支持多种媒 ...
- BST查找结构与折半查找方法的实现与实验比较
简介 作业:查找结构与排序方法 作业题目: BST 查找结构与折半查找方法的实现与实验比较 要求编写程序实现 BST 存储结构的建立(插入).删除.查找和排序算法: 实现折半查找算法:比较 BST 查 ...
- 第一次Kaggle比赛心得
新手避雷 在未组队的情况下私下共享资料属于违规行为,组队截止时间过后尤其不能这样 提交notebook的时候,kaggle的服务器只能找到前两个输出文件,所以一定要把你要提交的文件放在前两个(我们就是 ...
- 今天学到的新知识--自己的电脑可以像Github Pages、码云 Pages一样发布静态资源
大佬教我的,感觉这个很神奇哦 假设下面这个路径是我的本地电脑静态资源路径 打开powershell窗口 然后按照下图的样子执行命令 复制网址就可以访问啦 然后可以通过 https://iplocati ...
- flutter 设置Appbar上面的电池显示的状态栏的背景与颜色
写代码,修改了一下Appbar后,发现这个顶部颜色不对劲 找到这个文件lib\main.dart import 'dart:io'; import 'package:flutter/services. ...
- OpenMP For Construct dynamic 调度方式实现原理和源码分析
OpenMP For Construct dynamic 调度方式实现原理和源码分析 前言 在本篇文章当中主要给大家介绍 OpenMp for construct 的实现原理,以及与他相关的动态库函数 ...
- 《自定义工作流配置,springboot集成activiti,前端vue,完整版审批单据》
前言 activiti工作流引擎项目,企业erp.oa.hr.crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求. 一.项目形式 springboot+v ...
- 线程基础知识10-volatile
1 简介 Volatile保证了可见性和有序性,没有保证原子性. 1.1 保证可见性简介 可见性就是指当一个线程修改了共享变量的值时,其他线程能够立即得知这个修改.volatile变量做到了这一点. ...