第16课 核心函数(方法)

news2024/11/24 6:02:57

掌握常用的内置函数及其用法。

数学类函数:abs、divmod、max、min、pow、round、sum。

类型转换函数:bool、int、float、str、ord、chr、bin、hex、tuple、list、dict、set、enumerate、range、object。

序列操作函数:all、any、filter、map、next、sorted。

对象操作函数:help、dir、type、ascii、format、vars。

交互操作函数:input、print。

文件操作函数:open。

一、数学运算函数

1、abs(x)

该函数返回数字的绝对值。

参数x为数值表达式。

函数返回x(数字)的绝对值。

示例程序:

>>> abs(3.14)
3.14
>>> abs(-1 * 3.14)
3.14

2、divmod(a, b)

该函数把数字a除以数字b的商和余数封装成一个元组,并返回。

参数a为被除数,b为除数。

返回值是元组:(a//b, a%b),不是列表。

注意:余数的符号,有第二个参数决定。

示例程序:

>>> divmod(10, 3)    # 都是正数的情况
(3, 1)
>>> divmod(-10, 3)   # 被除数为负数的情况
(-4, 2)
>>> divmod(10, -3)   # 除数为负数的情况
(-4, -2)
>>> divmod(-10, -3)  # 都是负数的情况
(3, -1)

二、类型转换函数

1、bool([x])

用于将给定的参数转换成布尔类型,如果没有参数,则返回False。

如果给定参数x,只要x的值为False、或空、或0、或None,返回都是False;否则返回值都是True。

示例程序:

>>> bool()    # 不给定参数时
False
>>> bool(False)  # 参数为False时
False
>>> bool("False")  # 参数为字符串“False”时
True
>>> bool(0)   # 参数为数字0时
False
>>> bool("0") # 参数为字符串“0”时
True
>>>> bool("")  # 参数为空时
False
>>> bool(None)  # 参数为None时
False

2、ord(字符)

用于将给定单个字符转换成对应的ASCII码值,返回值为int类型。

注意,参数只能给一个字符,不能多给,也不能不给。

示例程序:

>>> ord("0")    # 查看字符串“0”的ASCII码值
48
>>> ord("中")  # 查看汉字“中”的ASCII码值
20013
>>> ord("国")  # 查看汉字“国”的ASCII码值
22269

部分ASCII码表如下:
在这里插入图片描述
在这里插入图片描述

3、chr(数值表达式)

用于将数值表达式转换成字符串(单个字符)。

可以将chr()函数看作ord()函数的逆运算。

示例程序:

>>> chr(20013)  # 查看数字20013对应的字符
"中"
>>> chr(22269)  # 查看数字22269对应的字符
"国"

4、set([可迭代对象])

用于将给定的可迭代对象转换成一个无需不重复的元素集合;如果不给定参数,则创建一个空的元素集合。

集合可以执行交集、并集、差集计算。

示例程序:

x = set("Hello")  # 将字符串“Hello”转换成元素集合
y = set("Python")  # 将字符串“Python”转成集合
>>> x, y  # 查看x和y的值
({'e', 'o', 'l', 'H'}, {'P', 'h', 't', 'y', 'o', 'n'})
>>> x & y  # 求两个集合的交集
{'o'}
>>> X | y  # 求两个集合的并集
{'P', 'h', 'H', 'l', 't', 'y', 'o', 'n', 'e'}
>>> x - y  # 求两个集合的差集
{'l', 'H', 'e'}
>>> y - x  # 注意减数和被减数的位置不同,结果也不
{'P', 'h', 'y', 't', 'n'}

5、enumerate(可迭代对象)

用于将一个可遍历对象(如:列表、字符串、元素)组合成一个索引序列,也就是为每一个元素的外增加一个对应的索引,一般用于for循环。

示例程序:

>>> lst = [12, 34, 56, 78, 90]  # 初始化一个列表lst
>>> for v in lst:  # 使用for循环遍历列表lst
>>>     print(v)   # 将每次迭代出来的元素打印出来
12
34
56
78
90
>>> # 先将列表lst转换成enumerate对象,再用for循环迭代
>>> for i, v in enumerate(lst):
>>>     print(i, v)  # 将每次迭代出来的索引和元素打印出来
0  12
1  34
2  56
3  78
4  90

6、object()

object类是Python中所有类的基类,如果定义一个类时没有指定继承哪个类,则默认继承object类。

object()函数无参数,返回一个新的无特征对象。

示例程序:

>>> object()
<object object at 0x0000015273235400>

三、序列操作函数

1、all(可迭代对象)

用于判断给定的可迭代对象中的每个元素是否都为True,如果是则返回True,否则返回False。

元素值除了0、空、None、False之外,都算True。

注意:all()函数对空字符串、空列表、空元组的判断结果为True。因为all()函数判断的是可迭代对象里的元素是否为真,而不是可迭代对象本身。

因为没有元素,也就不会有假元素,所以返回真。

示例程序:

>>> all([1, 2, 3, 4, 5])  # 列表中的数字都不为0
True
>>> all([1, 2, 0, 4, 5])  # 列表中存在一个数字0
False
>>> all(())    # 判断空元组
True
>>> all("")    # 判断空字符串
True
>>> all([])    # 判断空列表
True

2、any(可迭代对象)

用于判断给定的可迭代对象中的元素,只要有一个元素为True,则返回True;否则返回False。

注意:any()函数对空字符串、空列表、空元组的判断结果为False。因为空的可迭代对象里面没有任何元素,所以不会有元素的值为True,所以返回False。

all()和any()的判断逻辑不同,所以对空对象的判断结果也不同。

示例程序:

>>> any(['a', 'b', 'c', 'd'])  # 所有元素都为True
True
>>> any(['False', '', '', ''])  # 只有一个元素为True
True
>>> any([False, None, 0, ''])  # 所有元素都为False
False
>>> any(())    # 判断空元组
False
>>> any("")    # 判断空字符串
False
>>> any([])    # 判断空列表
False

3、filter(过滤函数,可迭代对象)

该函数用于过滤序列,将不符合条件的元素过滤掉,返回一个filter对象。可使用list()函数将迭代器对象转换成列表对象。

filter()函数接收两个参数,第一个是处理函数,第二个是要处理的可迭代对象。将可迭代对象传递给处理函数进行处理,最后将符合条件(判断结果为True)的元素放到新的可迭代对象中,实现过滤效果。

示例程序:过滤出列表中的所有奇数。

# 定义一个函数,用于判断给定的参数是否为奇数
def ji_shu(n):
    return n % 2 == 1

# 初始化一个原始列表
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 将处理函数ji_shu 和 待过滤对象lst传入filter函数
new_obj = filter(ji_shu, lst)  # 执行数据过滤过滤操作
# 将new_obj转换成列表,并打印出来
print(list(new_obj))

运行结果:[1, 3, 5, 7, 9]

4、map(映射函数,可迭代对象)

该函数可接受两个及以上参数,第一个参数是用来映射的函数,后面可以接受一个或多个可迭代对象。通过映射函数,对可迭代对象做映射。

映射过程将:将映射函数依次作用在可迭代对象的每个元素上,得到一个新的map对象并返回。

注意:map()和filter()函数一样,都不改变原有的可迭代对象,而是返回一个新的可迭代对象。

示例程序:

# 定义一个函数,用于计算给点参数的平方
def square(x):
    return x ** 2

# 初始化一个列表 lst
lst = [1, 2, 3, 4, 5]
# 将映射函数 square 和 可迭代对象 lst 传入map()函数
new_obj = map(square, lst)  # 执行映射操作
# 将new_obj转换成列表,并打印出来
print(list(new_obj))

运行结果:[1, 4, 9, 16, 25]

(1)通过使用lambda匿名函数的方法使用map()函数,程序如下:

# 将两个列表的对应的元素相加,将结果转换成list并打印出来
print(list(map(lambda x, y: x+y, [1, 3, 5], [2, 4, 6])))
# 运行结果如下
[3, 7, 11]

(2)通过lambda匿名函数使返回值是一个元组,程序如下:

# 使用匿名函数,结合map()函数做了一系列的批量计算
print(list(map(lambda x, y: (x**y, x+y), [2, 4, 6], [4, 3, 2])))
# 运行结果如下
[(16, 6), (64, 7), (36, 8)]

(3)通过map()函数实现类型转换,程序如下:

# 1、将字符串型列表转换成数字类型列表
print(list(map(int, ['1', '2', '3'])))

# 2、将字符串转换成列表
print(list(map(int, '12345')))

# 3、提取字典中的键,将其转换成整数,并将结果放在一个列表中
print(list(map(int, {'1': 2, '3': 4, '5': 6})))
print(list(map(int, {'1': 2, '3': 4, '5': 6}.keys())))

5、next(迭代器对象[, 默认值])

用于返回迭代器对象(iterator)的下一个元素,如果没有下一个对象,就返回默认值;如果不设置默认值,会报错(StopIteration)。

注意:这里的迭代器对象,不是可迭代对象!比如:字符串、列表都是可迭代对象,但是不适用next方法,只有迭代器对象才可以。

使用iter(可迭代对象)函数可以将可迭代对象转换成迭代器对象(iterator)。然后将迭代器对象作为参数传递给next()函数,每调用一次next()函数,就返回下一个元素。

示例程序:

>>> it = iter('abc')  # 将字符串转换成 iterator 对象
>>> next(it)    # 使用next()函数查看迭代器对象it的下一个元素
'a'    # 第一次调用next()函数,返回第一个元素
>>> next(it)    # 使用next()函数继续获取it对象的下一个元素
'b'
>>> next(it)    # 第三次使用next()函数,查看it最后一个元素
'c'
>>> next(it)    # it对象获取完毕之后,继续查看下一个元素
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    next(it)
StopIteration
>>> next(it, '没有下一个了')    # 设定默认值,避免程序报错
'没有下一个了'    # 如果没有下一个元素可以迭代,就返回默认值

四、对象操作函数

对象类操作函数,知道基本的用法,了解即可。

1、help()

用于查看函数或者模块用途的详细说明,返回对象的帮助信息。示例程序:

>>> help('os')    # 查看“os”模块的帮助信息
···显示帮助信息···
>>> lst = [1, 2, 3]    # 初始化一个列表
>>> help(lst)    # 查看列表 lst 的帮助信息
···显示帮助信息···
>>> help(lst.append)  # 查看lst的append方法的帮助文档
Help on built-in function append:

append(object, /) method of builtins.list instance
    Append object to the end of the list.

2、dir([object])

该函数不带参数时,以列表的形式返回当前范围内的变量、方法和定义的类型;带参数时,返回给定参数的属性和方法的列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度的搜集参数信息。

示例程序:

>>> dir()    # 获取当前模块的属性列表
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'it', 'l', 'lst', 'os', 'r']
>>> dir([])  # 查看列表的方法
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

3、ascii()

该函数返回一个表示对象的ASCII码字符串。

示例程序:

>>> ascii((1, 2))
'(1, 2)'
>>> ascii({'name': '张三', 'age': 12})
"{'name': '\\u5f20\\u4e09', 'age': 12}"

4、vars([object])

该函数用于返回对象object的属性和属性值的字典对象,即查看对象的命名空间;如果没有指定参数,就返回当前调用位置的属性和属性值。

示例程序:

>>> a = 2    # 初始化变量 a
>>> b = vars()  # 获取当前调用位置的命名空间
>>> b['a']    # 查看命名空间里,变量a的属性值
2

五、模拟考题

(一)单选题:

1、关于abs()函数,描述不正确的是( )。

A、abs()函数的功能是取整数的绝对值

B、abs()函数的功能是取实数的绝对值

C、abs()函数的功能是取一个数的绝对值

D、负数的绝对值是整数

2、以下表达式的值为False的是( )。

A、all(())

B、any((0, 1))

C、all((0,))

D、any([‘a’, ‘b’, ‘’, ‘d’])

3、ascii(chr(65))的值是( )。

A、‘A’

B、65

C、“‘A’”

D、‘65’

4、下列选项中具有查看函数或模块说明功能的函数是( )。

A、help()函数

B、ascii()函数

C、dir()函数

D、vars()函数

(二、判断题)

1、divmod()函数的返回值是一个包含商和余数的列表。( )

2、bool()、bool(None)、bool(‘’)、bool([‘’])这四个表达式输出的结果都是False。( )

3、在Python中,执行print(ord(‘a’) + 12)语句,能够得到一个数字结果。( )

4、在Python中,函数all([])将返回False。( )

–>参考答案往下翻<–























–>参考答案<–

一、单选题:

1~4:A、C、C、A

二、判断题:

1~4:F、F、T、F

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2229861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【1个月速成Java】基于Android平台开发个人记账app学习日记——第2天,启动项目

24.11.01 下面讲一下如何通过USB连接手机然后启动app实现真机测试&#xff0c;还是有一些坑的。 调整电脑的驱动程序&#xff0c;完成USB的连接 在启动项目的第一步我就遇见了问题&#xff0c;那就是插入usb线以后没有检测到设备。想要完成连接需要2个步骤&#xff0c;第一步…

使用Mac如何才能提高OCR与翻译的效率

OCR与截图大家都不陌生&#xff0c;或许有的朋友对于这两项功能用到的不多&#xff0c;但是如果经常会用到的话&#xff0c;那你就该看看了 iOCR&#xff0c;快捷键唤出翻译窗口&#xff0c;不论是截图翻译、划词翻译、输入翻译、剪切板翻译&#xff0c;统统快捷键完成&#x…

Etsy又被封号了!这次我终于搞懂了原因...

你是否真的了解在Etsy开店有哪些红线不能踩&#xff1f;你是否真的知道Etsy被封号后如何解决&#xff1f;本文我将探讨Etsy账号被封的常见原因&#xff0c;以及卖家可以采取的应对策略&#xff0c;以期减轻对跨境业务的伤害程度&#xff0c;感兴趣的商家速速码住&#xff0c;不…

MySQL — 事务 (o゚▽゚)o

文本目录&#xff1a; ❄️一、什么是事务&#xff1a; ❄️二、ACID特性&#xff1a; ❄️三、使用事务&#xff1a; ▶1、查看支持事务的存储引擎&#xff1a; ▶2、语法&#xff1a; ▶3、开启并且回滚&#xff1a; ▶4、开启并且提交&#xff1a; ▶ 5、保存点&#xff…

DOS时代软件遗憾落幕,国产编程新势力接过火炬

在计算机发展史上&#xff0c;DOS时代是一个不可磨灭的篇章。那个时期&#xff0c;虽然操作系统的图形界面尚未普及&#xff0c;但一款款经典软件却为我们打开了通往数字世界的大门&#xff0c;让我们在那个相对简单却充满魅力的时代中&#xff0c;感受到科技的魅力与创新的力量…

Qt的信号槽机制学习一

一、Qt理论知识简记 &#xff08;一&#xff09;信号与槽[1] 信号与槽是Qt编程的基础&#xff0c;其使得处理界面上各个组件的交互操作变得比较直观和简单&#xff0c;GUI&#xff08;Graphical User Interface&#xff09;程序设计的主要工作就是对界面上各组件的信号进行相应…

P11232 [CSP-S 2024] 超速检测

P11232 [CSP-S 2024] 超速检测 难度&#xff1a;普及/提高。 考点&#xff1a;二分、贪心。 题意&#xff1a; 题意较长&#xff0c;没有题目大意&#xff0c;否则你也大意。 主干道长度为 L L L&#xff0c;有 n n n 辆车&#xff0c;看做左端点为 0 0 0&#xff0c;第 …

使用GetX实现GetPage中间件

前言 GetX 中间件&#xff08;Middleware&#xff09;是 GetX 框架中的一种机制&#xff0c;用于在页面导航时对用户进行权限控制、数据预加载、页面访问条件设置等。通过使用中间件&#xff0c;可以有效地控制用户的访问流程&#xff0c;并在适当条件下引导用户到所需页面。 这…

JAVA:常见 JSON 库的技术详解

1、简述 在现代应用开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;已成为数据交换的标准格式。Java 提供了多种方式将对象转换为 JSON 或从 JSON 转换为对象&#xff0c;常见的库包括 Jackson、Gson 和 org.json。本文将介绍几种常用的 JSON 处理…

视频怎么去水印?7个视频去水印在线工具大比拼,宝藏工具推荐!

您是否正在寻找一款好用的视频去水印在线工具&#xff0c;却总是难以找到合适的去水印软件&#xff1f;别担心&#xff0c;今天在本文中小编将和大家分享一些去水印的小助手。很多人都觉得视频或图片上的水印十分烦人。如果您有着同样的烦恼&#xff0c;那么使用去水印工具将是…

如何一键更换ppt模板?掌握这2个ppt技巧快速搞定!

每当要制作ppt&#xff0c;很多人会第一时间去搜刮各种ppt模板&#xff0c;有时我们找到了一份貌似符合需求的模板&#xff0c;等到了ppt制作环节&#xff0c;才发现离我们的预期相距甚远&#xff0c;做到一半的ppt如何换模板呢&#xff1f; 想要在中途更换ppt模板&#xff0c;…

0基础入门linux文件系统

目录 文件系统简介 1. 文件系统类型 2. 文件系统结构 3. 文件系统的主要功能 4. 文件系统的使用 5. 文件系统的维护 6. 注意事项 简单举例 机械硬盘 物理结构介绍​编辑 CHS寻址 逻辑结构介绍 LBA寻址法 文件系统与磁盘管理 Boot Block Data block inode block…

2024年meme币走势分析:最后两个月的市场趋势与机会 #交易所#dapp#KOL社区合作

2024年即将步入尾声&#xff0c;meme币市场经历了显著的波动。对于加密市场来说&#xff0c;年底的走势尤为关键&#xff0c;尤其是meme币这种受市场情绪影响较大的加密资产。本文将从市场环境、宏观经济因素、投资者情绪、技术分析等方面分析meme币在2024年最后两个月的潜在走…

Cpp多态机制的深入理解(20)

文章目录 前言一、多态的概念二、多态的定义与实现两个必要条件虚函数虚函数的重写重写的三个例外override 和 final重载、重写(覆盖)、重定义(隐藏) 三、抽象类概念接口继承和实现继承 四、多态的原理虚表和虚表指针虚函数调用过程动态绑定与静态绑定 五、那...那单继承甚至多…

.net core 接口,动态接收各类型请求的参数

[HttpPost] public async Task<IActionResult> testpost([FromForm] object info) { //Postman工具测试结果&#xff1a; //FromBody,Postman的body只有rawjson时才进的来 //参数为空时&#xff0c;Body(form-data、x-www-form-urlencoded)解析到的数据也有所…

高清解压视频素材从哪儿下载?推荐5个高清推文素材资源网站

做抖音小说推文&#xff0c;哪里找爆款素材&#xff1f;作为一名从业多年的视频剪辑师&#xff0c;今天就来给大家揭秘可以下载爆款推文视频素材的网站&#xff0c;如果你也在苦苦找寻找&#xff0c;赶紧进来看看吧&#xff5e; 1. 稻虎网 首先是稻虎网&#xff0c;作为国内顶…

Python的全局锁GIL解析

Python的全局锁&#xff08;GIL&#xff09;是 CPython 解释器实现中的一个机制&#xff0c;用来确保任何时候只有一个线程执行 Python 字节码。这一机制存在于 CPython 中&#xff0c;主要是为了确保线程操作中的数据一致性&#xff0c;但也因此限制了多线程的并行执行效率。尤…

ELK的ElasticStack概念

目录 传送门前言一、ElasticStack是什么二、ElasticStack数据格式1、Elasticsearch的概述2、Elasticsearch核心概念&#xff08;1&#xff09;接近实时&#xff08;NRT&#xff09;&#xff08;2&#xff09;集群&#xff08;cluster&#xff09;&#xff08;3&#xff09;节点…

硅谷甄选(9)SKU模块

SKU模块 8.1 SKU静态 <template><el-card><el-table border style"margin: 10px 0px"><el-table-column type"index" label"序号" width"80px"></el-table-column><el-table-columnlabel"名称…

如何将ppt转换成word文档?8款ppt转word免费的软件大揭秘,值得收藏!

在日常办公中&#xff0c;将ppt转换成word文档的需求日益增长。这种需求源自多个方面&#xff0c;比如制作详尽的报告、创建课程讲义&#xff0c;或者将信息转化为可编辑的格式。作为一种普遍使用的演示工具&#xff0c;ppt在许多商业环境中扮演着重要角色。然而&#xff0c;随…