这几个Python内置函数你都知道吗

divmod() 

divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。

示例用法如下:

result = divmod(10, 3)
print(result)  # 输出 (3, 1),10 除以 3 的商为 3,余数为 1

divmod() 函数常用于需要同时获取商和余数的情况,比如在对列表进行分页时可以方便地计算出页数和剩余元素个数。

enumerate() 

enumerate() 是 Python 中的一个内置函数,用于将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时返回索引和值。它常用于在迭代过程中获取元素的索引和值。

示例用法如下:

my_list = ['apple', 'banana', 'cherry']
for index, value in enumerate(my_list):print(f"Index: {index}, Value: {value}")输出:
yamlCopy code
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: cherry

在上面的示例中,enumerate(my_list) 返回一个迭代器,每次迭代会返回一个元组,包含当前元素的索引和值。通过使用 enumerate(),可以更方便地在循环中获取元素的索引和值。

isinstance() 

isinstance() 是 Python 中用于检查一个对象是否是指定类或类型的实例的内置函数。它的语法如下:

isinstance(object, classinfo)

其中,object 是要检查的对象,classinfo 可以是一个类或者一个类型(如 int、str、list 等)。如果 object 是 classinfo 类型的实例(或者是其子类的实例),则返回 True,否则返回 False。

示例用法如下:

x = 5
print(isinstance(x, int))  # 输出 True,因为 x 是 int 类型的实例y = "Hello"
print(isinstance(y, str))  # 输出 True,因为 y 是 str 类型的实例z = [1, 2, 3]
print(isinstance(z, list))  # 输出 True,因为 z 是 list 类型的实例

isinstance() 在判断对象类型时很有用,特别是在编写需要处理不同类型对象的代码时。

zip() 

zip() 是 Python 中的一个内置函数,用于将多个可迭代对象组合成一个元组序列。它接受多个可迭代对象作为参数,返回一个迭代器,每次迭代会返回一个元组,包含每个可迭代对象当前位置的元素。

示例用法如下:

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]for name, age in zip(names, ages):print(f"{name} is {age} years old")输出:
csharpCopy code
Alice is 25 years old
Bob is 30 years old
Charlie is 35 years old

在这个示例中,zip(names, ages) 将 names 和 ages 两个列表组合起来,返回一个迭代器,每次迭代会返回一个元组,包含 names 和 ages 中对应位置的元素。这样可以方便地同时遍历多个列表,并对应处理它们的元素。

locals() 

locals() 是一个内置函数,用于返回当前作用域中的所有局部变量和它们的值组成的字典。你可以在函数内部调用 locals() 来获取当前函数的局部变量。注意,locals() 返回的是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容不会影响到实际变量。示例如下:

def my_function():a = 1b = 2print(locals())
my_function()输出:
{'a': 1, 'b': 2}

在实际开发中,通常不建议过多地依赖 locals() 函数来操作变量,因为它会使代码变得难以理解和维护。通常情况下,更好的做法是明确地使用变量名来访问和操作变量。

globals()

globals() 是一个内置函数,用于返回全局作用域中的所有全局变量和它们的值组成的字典。你可以在任何地方调用 globals() 来获取全局作用域中的变量。与 locals() 类似,globals() 返回的也是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容会影响到全局变量。示例如下:

a = 1
b = 2def my_function():c = 3print(globals())my_function()输出:
sqlCopy code
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fbf9c7a19a0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'main.py', '__cached__': None, 'a': 1, 'b': 2, 'my_function': <function my_function at 0x7fbf9c7a7d30>}

在实际开发中,一般不建议过多地使用 globals() 函数来操作全局变量,因为它可能会导致代码不够清晰和可维护。通常情况下,最好明确地使用变量名来访问和操作全局变量。

vars() 

vars() 是 Python 中的一个内置函数,用于返回对象的 __dict__ 属性,或者返回当前作用域的变量和值的字典。

对于普通对象,vars(obj) 返回对象 obj 的 __dict__ 属性,如果对象没有 __dict__ 属性,则返回 TypeError。__dict__ 属性是一个字典,包含了对象的属性和值。

示例:

class Person:def __init__(self, name, age):self.name = nameself.age = agep = Person("Alice", 30)
print(vars(p))  # 输出 {'name': 'Alice', 'age': 30}

对于模块、类或实例,vars() 返回该对象的 __dict__ 属性,它包含了该对象的所有属性和方法。

示例:

class MyClass:class_variable = "class_variable_value"def __init__(self):self.instance_variable = "instance_variable_value"def method(self):passprint(vars(MyClass))  # 输出 {'__module__': '__main__', 'class_variable': 'class_variable_value', ...}

如果不提供参数,则 vars() 返回当前作用域的变量和值的字典。

示例:

x = 10
y = 20
print(vars())  # 输出 {'x': 10, 'y': 20}

vars() 函数在调试和动态属性操作时很有用,可以方便地查看对象的属性和值,或者获取当前作用域的变量。

操作对象属性的函数

getattr()、setattr()、hasattr() 和 delattr() 这四个函数是 Python 中用于操作对象属性的函数,它们分别用于获取、设置、检查和删除对象的属性。

getattr(object, name[, default]):获取对象 object 的属性 name 的值。如果属性不存在,可以提供一个默认值 default,如果不提供默认值且属性不存在,会引发 AttributeError 异常。

示例:

class Person:name = "John"age = 30p = Person()
print(getattr(p, "name"))  # 输出 "John"
print(getattr(p, "age"))   # 输出 30
print(getattr(p, "gender", "Male"))  # 输出 "Male",因为 gender 属性不存在

setattr(object, name, value):设置对象 object 的属性 name 的值为 value。如果属性不存在,会创建一个新的属性。

示例:

class Person:name = "John"age = 30p = Person()
setattr(p, "age", 40)
setattr(p, "gender", "Male")
print(p.age)     # 输出 40
print(p.gender)  # 输出 "Male"

hasattr(object, name):检查对象 object 是否具有属性 name。如果对象具有该属性,则返回 True,否则返回 False。

示例:

class Person:name = "John"age = 30p = Person()
print(hasattr(p, "name"))  # 输出 True
print(hasattr(p, "gender"))  # 输出 False

delattr(object, name):删除对象 object 的属性 name。如果属性不存在,会引发 AttributeError 异常。

示例:

class Person:name = "John"age = 30p = Person()
delattr(p, "age")
print(hasattr(p, "age"))  # 输出 False

这些函数在操作对象的属性时很有用,可以灵活地对属性进行获取、设置、检查和删除操作

更多内置函数可以查看:https://www.runoob.com/python3/python3-built-in-functions.html

查看原文:这几个Python内置函数你都知道吗

关注公众号 "字节航海家" 及时获取最新内容

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支持向量机|机器学习方法(李航)

支持向量机&#xff0c;可以看着是升级版的感知机&#xff0c;与感知机相比。他们都是找到一个超平面对数据集进行分割&#xff0c;区别在于&#xff0c;感知机模型得到的超平面空间中可以有无穷个超平面&#xff0c;但支持向量机仅含有一个&#xff0c;这一个超平面与样本点的…

堆/堆排序(C/C++)

本篇文章将会较为全面的介绍堆的概念以及实现堆两个重要算法&#xff1a;向上调整算法和向下调整算法。接着实现了堆排序。 若想查看对应位置&#xff0c;可直接按照以下目录进行查看&#xff1a; 目录 1.堆的概念及结构 2.堆的实现 2.1 堆的向上调整算法 2.2 堆的向下调整算法…

【代码随想录python笔记整理】第十三课 · 链表的基础操作 1

前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。 一、链表 在之前的学习中,我们接触到了字符串和数组(列表)这两种结构,它们具有着以下的共同点:1、元素按照一定的顺序来排列。2、可以通过索引来访问数组中的元素和字符串中的字符。由此,…

力扣模板题:回文链表

请牢记检测回文串的模板 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ bool isPalindrome(struct ListNode* head) {int size0;struct ListNode* pointhead;while(point){size;pointpoint->next;}int arr…

微信小程序本地开发

微信小程序本地开发时不需要在小程序后台配置服务器域名直接在小程序项目中填写后端在本机的IP地址和端口号 如图&#xff08;第一步&#xff09; 填写地址后发现报错&#xff0c;url不是合法域名&#xff0c;则在详情设置不校验合法域名 如图&#xff08;第二歩&#xff09;…

学习vue3第二节(使用vite 创建vue3项目)

使用vite 创建vue3项目 node 安装请移步 node官网&#xff1a; https://nodejs.p2hp.com/ node 版本控制 请移步 nvm官网&#xff1a;https://nvm.uihtm.com/ vite 生成vue项目完整版 请移步 vite官网&#xff1a;https://cn.vitejs.dev/ 1、使用 npm 或者 yarn 创建vue3 项目…

9.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏连接服务器的操作

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;游戏底层功能对接类GameProc的实现 码云地址&#xff08;master 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/titan 码云版本号&#xff1a;44c54d30370d3621c1e9ec3d7fa1e2a0…

数学建模【相关性模型】

一、相关性模型简介 相关性模型并不是指一个具体的模型&#xff0c;而是一类模型&#xff0c;这一类模型用来判断变量之间是否具有相关性。一般来说&#xff0c;分析两个变量之间是否具有相关性&#xff0c;我们根据数据服从的分布和数据所具有的特点选择使用pearson&#xff…

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

启动spark-shell时报错java.lang.NumberFormatException: For input string: “0x100“

一、问题描述 安装完Spark后&#xff0c;启动spark shell时报错 java.lang.NumberFormatException: For input string: "0x100" 如下图&#xff1a; 二、解决办法 1.更换scala的版本 2.更改环境变量 使用vim编辑器打开用户的环境变量配置文件 vim ~/.bashrc s…

单片机51 定时器

一、基本概念 1.1简介 单片机的定时器是一种内部功能模块&#xff0c;用于产生计时、计数、延时等功能。定时器通常由一个或多个计数器和相关的控制逻辑组成。单片机的定时器可以运行在不同的工作模式下&#xff0c;以适应不同的计时和计数需求。 C51中的定时器和计数器是同…

代码随想录算法训练营day26

题目&#xff1a;39_组合总数&#xff08;没看题解&#xff09; 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&…