python内置函数 P

python内置函数 P

Python 解释器内置了很多函数和类型,任何时候都能使用。

P

名称描述
pow计算一个数的幂。
print在控制台上输出文本或变量的值。
property创建属性(attribute)的内置函数。
pow(base, exp, mod=None)

pow() 是 Python 中的一个内置函数,用于计算一个数的幂。这个函数接受两个参数,第一个参数是基数,第二个参数是指数,并返回基数的指数次幂。

返回 baseexp 次幂;如果 mod 存在,则返回 baseexp 次幂对 mod 取余(比 pow(base, exp) % mod 更高效)。 两参数形式 pow(base, exp) 等价于乘方运算符: base**exp

参数必须为数值类型。 对于混用的操作数类型,则适用二元算术运算符的类型强制转换规则。 对于 int 操作数,结果具有与操作数相同的类型(转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。 例如,pow(10, 2) 返回 100,但 pow(10, -2) 返回 0.01。 对于 intfloat 类型的负基和一个非整数的指数,会产生一个复数作为结果。 例如, pow(-9, 0.5) 返回一个接近于 3j 的值。

对于 int 操作数 baseexp,如果给出 mod,则 mod 必须为整数类型并且 mod 必须不为零。 如果给出 mod 并且 exp 为负值,则 base 必须相对于 mod 不可整除。 在这种情况下,将会返回 pow(inv_base, -exp, mod),其中 inv_basebase 的倒数对 mod 取余。

下面的例子是 38 的倒数对 97 取余:

>>> pow(38, -1, mod=97)
23
>>> 23 * 38 % 97 == 1
True

在 3.8 版本发生变更: 对于 int 操作数,三参数形式的 pow 现在允许第二个参数为负值,即可以计算倒数的余数。

在 3.8 版本发生变更: 允许关键字参数。 之前只支持位置参数。

# 计算 2 的 3 次方  
result = pow(2, 3)
print(result)  # 输出:8  # 计算 5 的 0 次方  
result = pow(5, 0)
print(result)  # 输出:1,任何非零数的 0 次方都是 1# 计算负数的偶数次方  
result = pow(-2, 2)
print(result)  # 输出:4,-2 的平方是 4  # 计算负数的奇数次方  
result = pow(-2, 3)
print(result)  # 输出:-8,-2 的立方是 -8# 计算 (2^3) mod 7
result = pow(2, 3, 7)
print(result)  # 输出:1,因为 2^3 = 8,而 8 mod 7 = 1
print(*objects, sep=’ ', end=‘\n’, file=None, flush=False)

objects 打印输出至 file 指定的文本流,以 sep 分隔并在末尾加上 endsependfileflush 必须以关键字参数的形式给出。

所有非关键字参数都会被转换为字符串,就像是执行了 str() 一样,并会被写入到流,以 sep 分隔并在末尾加上 endsepend 都必须为字符串;它们也可以为 None,这意味着使用默认值。 如果没有给出 objects,则 print() 将只写入 end

file 参数必须是一个具有 write(string) 方法的对象;如果参数不存在或为 None,则将使用 sys.stdout。 由于要打印的参数会被转换为文本字符串,因此 print() 不能用于二进制模式的文件对象。 对于这些对象,应改用 file.write(...)

输出缓冲通常由 file 确定。 但是,如果 flush 为真值,流将被强制刷新。

在 3.3 版本发生变更: 增加了 flush 关键字参数。

print("apple", "banana", "cherry", sep=', ')  
print("This is the first line.", end='')  
print("This is on the same line.")# 输出结果:
apple, banana, cherry  
This is the first line.This is on the same line.
property(fget=None, fset=None, fdel=None, doc=None)

class property(fget=None, fset=None, fdel=None, doc=None)

property()函数是用于创建属性(attribute)的内置函数。属性允许你将一个方法(通常是getter、setter和deleter方法)作为一个类的实例属性来访问。

返回 property 属性。

fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。并且 doc 为属性对象创建文档字符串。

一个典型的用法是定义一个托管属性 x:

class C:def __init__(self):self._x = Nonedef getx(self):return self._xdef setx(self, value):self._x = valuedef delx(self):del self._xx = property(getx, setx, delx, "I'm the 'x' property.")

如果 cC 的实例,c.x 将调用 getter,c.x = value 将调用 setter, del c.x 将调用 deleter。

如果给出,doc 将成为该 property 属性的文档字符串。 否则该 property 将拷贝 fget 的文档字符串(如果存在)。 这令使用 property() 作为 decorator 来创建只读的特征属性可以很容易地实现:

class Parrot:def __init__(self):self._voltage = 100000@propertydef voltage(self):"""Get the current voltage."""return self._voltage

@property 装饰器会将 voltage() 方法转化为一个具有相同名称的只读属性 “getter”,并将 voltage 的文档字符串设为 “Get the current voltage.”

@getter

@setter

@deleter

特征属性对象具有 getter, setterdeleter 方法,它们可用作装饰器来创建该特征属性的副本,并将相应的访问函数设为所装饰的函数。 这最好是用一个例子来说明:

class C:def __init__(self):self._x = None@propertydef x(self):"""I'm the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x

上述代码与第一个例子完全等价。 注意一定要给附加函数与原始的特征属性相同的名称 (在本例中为 x。)返回的特征属性对象同样具有与构造器参数相对应的属性 fget, fsetfdel

在 3.5 版本发生变更: 特征属性对象的文档字符串现在是可写的。

class Person:def __init__(self, name):self._name = name@propertydef name(self):"""Getter for name."""return self._name@name.setterdef name(self, value):"""Setter for name."""if not isinstance(value, str):raise TypeError("Name must be a string.")self._name = value@name.deleterdef name(self):"""Deleter for name."""del self._name# 使用示例
p = Person("Alice")
print(p.name)  # 输出: Alicep.name = "Bob"  # 设置新的名字
print(p.name)  # 输出: Bobdel p.name  # 删除名字属性

在这个例子中,Person类有一个私有属性_name,和一个通过@property装饰器创建的公有属性namename属性有一个getter方法(用于读取属性的值),一个setter方法(用于设置属性的值),和一个deleter方法(用于删除属性)。

当你尝试访问p.name时,会调用getter方法;当你尝试设置p.name = "Bob"时,会调用setter方法;当你尝试删除del p.name时,会调用deleter方法。

参考:内置函数 — Python 3.12.2 文档

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

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

相关文章

《妈妈是什么》笔记(四) 找到自己的兴趣,是童年最重要的工作

经典摘录 一个孩子的童年,本来就会自然地孕育创意。妈妈没有识别创意的能力,不代表孩子没有创意。 【我们要给孩子准备简单、可塑性强的创意材料,比如充足的纸和笔。】 【童年的权利,就是玩;童年的执行力&#xff0…

【CPP】C++11多线程

thread类 在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C11中最重要的特性就是对线程进行支持了,使得C在并行编程时不需要依赖第三方库&#xff0c…

Docker卷原理

“在此刻要沉醉忘我” 当我们想从宿主机外,控制容器内文件时时行不通的,因为存在Cgroupe、命名空间等虚拟化技术使得容器内的文件对外不可见。所以,引入了卷机制,使得可以从宿主机外访问到容器内的文件内容。 那么,Doc…

哨兵位及用哨兵位实现链表的链接

哨兵位: 通俗的话讲就是额外开辟一块空间,指向链表的头部。 合并两个有序链表 已解答 简单 相关标签 相关企业 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入&#…

比堆垛机方案省电65% 实施快50% 四向车系统柔性化建设进程异军突起

对物流企业来说,供应链的数智化升级并非“赶时髦”,它需要找到一个既懂物流行业,又有数字化技术作基础的仓储方案提供商。而河北沃克基于AI底层技术、软硬一体化产品体系和技术创新行业经验双轮驱动的业务团队等“技术产品人才”三位一体优势…

C++多线程都可以对同一个全局变量读写,不设置锁应该没关系吧?

C多线程都可以对同一个全局变量读写,不设置锁应该没关系吧? 是这个意思吗:某个线程只操作一个二进制位,不会有其他线程和它抢着操作同一个二制进位,这种情况下,是否需要锁? 在开始前我有一些资…

【推荐算法-特征工程】用户侧标签类特征

用户高点击的item上的tag的Top-3,3个tag-id可以作为用户的3维特征, 但是如何区分这Top-3里哪个是Top-1,还是Top-2,还是Top-3呢, 可以在特征tag_id embedding的时候,给不同的hidden_size, 比如…

Java基于微信小程序的二手交易系统的实现(V2.0)

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python 技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&#…

Mysql面试题以及答案

1 基础 1.1、MySQL有哪些数据库类型? 数值类型 有包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,分别表示 1 字节、2 字节、3 字节、4 字节、8 字节的整数类型。 1)任何整数类型都可以加上 UNSIGNED 属性,表示无符号整数。 …

【C语言】C语言运算符优先级详解

文章目录 📝前言🌉运算符优先级简述 🌠逻辑与和逻辑或🌉赋值和逗号运算符 🌠位运算🌉条件表达式🌉位运算与算术运算结合🌉混合使用条件表达式和赋值运算符🌉 逗号运算符的…

Java使用工厂方法实现聚合调用不同第三方接口进行实名验证

在Java中使用工厂方法实现聚合实名验证指的是创建一种实名验证服务,可以连接到不同的实名验证处理器,比如阿里、腾讯等。我们可以定义一个实名验证接口,然后实现不同的实名验证方式,最后使用一个工厂来创建相应的实名验证实例。以…

网络和Linux解析

目录 1.解析网络 1.OSI七层 2.层级协议 3.名称解析 2.Linux系统基础操作 1.解决问题思路例 2.在局域网内外,连接服务器过程 3.linux基础服务以及搭建 1.基础服务 2.DNS域名解析 4.安全加固 5.应用组合(中间件) 1.TomcatNginx 1…

自定义WordPress顶部的菜单的方法

要自定义WordPress顶部的菜单,你需要使用WordPress的菜单系统。首先,你需要创建自定义菜单,然后将其设置为顶部导航菜单。 以下是创建自定义菜单并设置其为顶部导航菜单的步骤: 登录到WordPress管理界面。转到“外观”>“菜单…

IAB将在未来全世界数字营销生态中发挥怎样的作用?

写在前面 如果您研究过美国企业早期发展的过程中的组织架构和战略规划,您就会发现,从18世纪末期以来一直到第二次世界大战前夕,美国工业公司基本上成立了技术和自己的实验室。从美国的石油公司,到汽车生产制造,还是化…

C/C++中内存泄漏常有例子

C/C中内存泄漏常有例子 1、什么是内存泄漏? 在定义一个指针的时候,需要给他分配一段内存空间,防止他变为野指针,而这个指针在分配一段内存地址的时候没有释放,等下次再次使用这个指针再次为他分配内存空间&#xff0…

MySQL数据库 - 事务

1. 事务的概念 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中, 要删除一个人员,即需要删除人员的基本资料,又需要删除和该人员相关的信息,如信箱, 文章等等。这样&#x…

【嵌入式——QT】QWT应用

【嵌入式——QT】QWT应用 概述步骤一步骤二步骤三代码声明代码实现图示 概述 QWT,全称Qt Widgets for Technical Applications,是一个基于Qt开发的第三方库。它主要为具有技术背景的程序提供GUI组件和一组实用类,用于生成各种统计图。QWT的主…

完全背包的动态规划:暴力dfs + dp + dp优化

有N件物品和一个容量是 V 的背包,每个物品有各自的体积和价值,且每个物品可以放多次,如何让背包里装入的物品具有最大的价值总和? 本篇将给出代码,具体讲解请移步以下博客:动态规划入门:从暴力d…

深度学习pytorch——激活函数损失函数(持续更新)

论生物神经元与神经网络中的神经元联系——为什么使用激活函数? 我们将生物体中的神经元与神经网络中的神经元共同分析。从下图可以看出神经网络中的神经元与生物体中的神经元有很多相似之处,由于只有刺激达到一定的程度人体才可以感受到刺激&#xff0c…

网络安全——笔记

XSS:跨站脚本(Cross-site scripting) XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文…