这几个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.mzph.cn/news/704564.shtml

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

相关文章

【Simulink系列】——动态系统仿真 之 混合系统

声明&#xff1a;本系列博客参考有关专业书籍&#xff0c;截图均为自己实操&#xff0c;仅供交流学习&#xff01; 一、混合系统概述 由不同类型系统共同构成的系统称为混合系统&#xff01;仿真时必须考虑连续信号和离散信号的采样匹配问题&#xff0c;一般使用变步长连续求…

C++学习笔记:多态

C学习笔记:多态 什么是多态?多态的构成条件?C11中的final和override抽象类是什么?什么是虚表?多继承中的虚表 什么是多态? 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为。 例如:学校在餐厅的某个档口为老师们提供了教师优惠,同样…

SpreadJS+vue3练手使用

SpreadJS的练手使用 // 首先在 package.json 这个文件里{"name": "app-admin","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite",&quo…

【深度学习笔记】 3_13 丢弃法

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.13 丢弃法 除了前一节介绍的权重衰减以外&#xff0c;深度学习模型常常使用丢弃法&#xff08;dropout&#xff09;[1] 来应对过拟合…

阿里面试:最佳线程数,如何确定?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 如何确定系统的最佳线程数&#xff1f; 小伙伴 没有回…

机器学习深度解析:原理、应用与前景

随着人工智能的迅速发展&#xff0c;机器学习已经成为当今时代最为引人注目的技术之一。它不仅仅是一种技术或工具&#xff0c;更是一种推动社会进步、影响人类生活的重要力量。那么&#xff0c;什么是机器学习&#xff1f;它是如何工作的&#xff1f;又在哪些领域中发挥着不可…

阿里云服务器ECS u1实例性能怎么样?

阿里云服务器ECS u1实例&#xff0c;2核4G&#xff0c;5M固定带宽&#xff0c;80G ESSD Entry盘优惠价格199元一年&#xff0c;性能很不错&#xff0c;CPU采用Intel Xeon Platinum可扩展处理器&#xff0c;购买限制条件为企业客户专享&#xff0c;实名认证信息是企业用户即可&a…

介绍一下我们:久菜盒子工作室

大数据科学团队/全网可搜索的久菜盒子工作室 我们是&#xff1a;985硕博/美国全奖doctor/计算机7年产品负责人/医学大数据公司医学研究员/SCI一区2篇/Nature子刊一篇/中文二区核心一篇/都是我们 主要领域&#xff1a;医学大数据分析/经管数据分析/金融模型/统计数理基础/统计学…

编程笔记 Golang基础 028 结构体与JSON

编程笔记 Golang基础 028 结构体与JSON 一、JSON二、结构体转JSON&#xff08;序列化&#xff09;三、JSON转结构体&#xff08;反序列化&#xff09;小结 结构体与JSON之间的相互转换是现代软件开发中数据处理的基础工具&#xff0c;极大地简化了数据在不同层次、不同组件间的…

spring boot 集成科大讯飞星火认知大模型

一、安装依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

Educational Codeforces Round 160 (Rated for Div. 2) D. Array Collapse(笛卡尔树+DP)

原题链接&#xff1a;D. Array Collapse 题目大意&#xff1a; 给你一个长度为 n n n 的排列 p p p &#xff0c;排列的定义为 [ 1 , 2 , 3 , . . , n ] [1,2,3,..,n] [1,2,3,..,n] 中每个数都出现 恰好 一次。 你可以做 任意多次 这样的操作&#xff1a; 选出一个任意长度…

前端导出EXCEL

步骤解析 定义了一个名为 excelDown 的函数&#xff0c;它接受两个参数&#xff1a;res 和 type。res 是包含响应数据的对象&#xff0c;type 是要导出的文件类型。如果 type 未提供&#xff0c;则默认使用 Excel 文件的 MIME 类型。 export const excelDown (res, type) >…

unity导航网格无法烘培到台阶和斜坡

如图是我在b站学Unity导航网格时建的一个示例场景&#xff0c;本场景使用的为棱长1m的立方体&#xff0c;读者可以以此为参照度量其他物体大小。 可见导航网格根本无法烘焙到斜坡和台阶上&#xff0c;为解决问题我做了不少尝试&#xff0c;调整最大坡度和步高都没办法解决问题…

AI新纪元:可能的盈利之道

本文来源于Twitter大神宝玉&#xff08;dotey&#xff09;在聊 Sora 的时候&#xff0c;总结了 Sora 的价值和可能的盈利方向&#xff0c;我把这部分内容单独摘出来再整理一下。现在的生成式 AI 大家应该不陌生&#xff0c;用它总结文章、翻译、写作、画图&#xff0c;当然真正…

搭建私有Git服务器:GitLab部署详解

引言&#xff1a; 为了方便团队协作和代码管理&#xff0c;许多组织选择搭建自己的私有Git服务器。GitLab是一个集成了Git版本控制、项目管理、代码审查等功能的开源平台&#xff0c;是搭建私有Git服务器的理想选择。 目录 引言&#xff1a; 一、准备工作 在开始部署GitLab之…

Dockerfile和jar包不同目录处理

如果Dockerfile的全路径为/srm/myDockerfile/Dockerfile&#xff0c;而JAR文件位于/srm目录下&#xff0c;你可以在Dockerfile中使用相对路径引用JAR文件。以下是如何编写Dockerfile的示例&#xff1a; 假设你的项目结构如下&#xff1a; luaCopy code /srm |-- myDockerfile …

Map集合的遍历方式

遍历Map集合的几种方式 迭代器(Iterator)forlambdaStream 代码示例 package com.haimeng.Array;import java.security.Key; import java.util.HashMap; import java.util.Iterator; import java.util.Map;public class Lambda1 {public static void main(String[] args) {//…

MySQL数据库基础(十五):PyMySQL使用介绍

文章目录 PyMySQL使用介绍 一、为什么要学习PyMySQL 二、安装PyMySQL模块 三、PyMySQL的使用 1、导入 pymysql 包 2、创建连接对象 3、获取游标对象 4、pymysql完成数据的查询操作 5、pymysql完成对数据的增删改 PyMySQL使用介绍 提前安装MySQL数据库&#xff08;可以…

shell脚本介绍及基本功能

目录 1. 什么是shell 2. hello word 2.1 echo 2.2 第一个脚本 3. Bash的基本功能 3.1别名 3.2 常用快捷键 3.3 输入输出 3.4 输出重定向 3.5 多命令执行 3.6 管道符 3.7 通配符和特殊符号 1. 什么是shell Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用…

数据分析---常见处理逻辑

目录 数据清洗数据转换数据聚合数据筛选增删改查(以查为例)数据清洗 去除重复值:使用DISTINCT关键字去除重复行。//这将返回一个包含所有不重复城市的结果集 SELECT DISTINCT city FROM students;处理缺失值:使用IS NULL或IS NOT NULL判断是否为空值,并使用COALESCE或CASE…