Python基础必备之最新的73个内置函数(2)

目录

bytes()

callable()

chr()

classmethod()

compile()

complex()

delattr()

dict()

dir()

divmod()


 

Python 解释器内置了很多函数和类型(一共73个内置函数),任何时候都能使用。本篇将介绍第11到第20个内置函数的作用、特性以及详细的使用方法,并给出对应的代码示例。

前面的文章已经介绍了前10个Python内置函数,以及介绍了一些基本概念的说明,详细的请参考第一篇文章

Python基础之最新的73个内置函数(1)

Python基础之最新的73个内置函数(2)

Python基础之最新的73个内置函数(3)

Python基础之最新的73个内置函数(4)

Python基础之最新的73个内置函数(5)

Python基础之最新的73个内置函数(6)

Python基础之最新的73个内置函数(7)

注意:本代码示例均在当前最新版本Python3.11上运行的结果。

Python专栏:https://blog.csdn.net/zhouruifu2015/category_5742543.html

bytes()

函数bytes()是Python内置函数之一,用于创建一个不可修改的字节序列对象。其基本语法如下:

bytes([source[, encoding[, errors]]])

其中,source是可选参数,可以是一个字符串、一个字节序列、一个可迭代对象或一个整数,用于初始化字节序列的值;encoding是可选参数,用于指定字符串的编码方式;errors是可选参数,用于指定编码时的错误处理方式。

如果没有提供source参数,则返回一个空的字节序列对象。

下面是bytes()函数的一些常见用法:

from inner_module_def_datastruct import WEIXIN_URL
# 1. 创建一个空的字节序列对象
b = bytes()
print(b, type(b), len(b))  # b'' <class 'bytes'> 0

# 2. 通过一个字符串初始化字节序列
b = bytes(WEIXIN_URL, 'utf-8')
print(b, type(b), len(b))  # b'https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q' <class 'bytes'> 49
for i in b:
    print(i, end=' ')

# 3. 通过一个字节序列初始化字节序列
b = bytes(b'\x01\x02\x03')
print(b, type(b), len(b)) # b'\x01\x02\x03' <class 'bytes'> 3

# 4. 通过一个可迭代对象初始化字节序列
b = bytes([1, 2, 3])
print(b, type(b), len(b)) # b'\x01\x02\x03' <class 'bytes'> 3

# 5. 通过一个整数指定字节序列的长度
b = bytes(5)
print(b, type(b), len(b))  # b'\x00\x00\x00\x00\x00' <class 'bytes'> 5

# 6. 访问字节序列中的值
print(b[0])  # 返回值是0

# 遍历字节序列
for i in b:
    print(i, end=' ') # 0 0 0 0 0 

总之,函数bytearray()用于创建一个可修改的字节数组对象,函数bytes()用于创建一个不可修改的字节序列对象。这两个函数在Python编程中非常常用,掌握它们的使用方法可以帮助我们更好地处理二进制数据。

callable()

函数callable()是Python内置函数之一,用于判断一个对象是否可调用。其基本语法如下:

callable(obj)

其中,obj是要判断的对象。

如果obj是可调用的,则返回True;否则返回False。

下面是callable()函数的一些常见用法:

from inner_module_def_datastruct import WEIXIN_URL

# 1. 判断函数是否可调用
def func():
    pass

if callable(func):
    print('函数是可调用的')
else:
    print('函数不可调用')

# 2. 判断类是否可调用
class MyClass:
    pass

if callable(MyClass):
    print('类是可调用的')
else:
    print('类不可调用')

# 3. 判断实例对象是否可调用
class MyClass:
    def __call__(self):
        pass

obj = MyClass()

if callable(obj):
    print('实例对象是可调用的')
else:
    print('实例对象不可调用')

# 4. 整个字符串 判断是否可调用
print(callable(WEIXIN_URL))

输出结果:

函数是可调用的

类是可调用的

实例对象是可调用的

False

chr()

函数chr()是Python内置函数之一,用于返回指定整数对应的Unicode字符。其基本语法如下:

chr(i)

其中,i是要转换为Unicode字符的整数。

下面是chr()函数的一些常见用法:

# 1. 将整数转换为Unicode字符
print(chr(65))  # 返回值是'A'

# 2. 将十六进制数转换为Unicode字符
print(chr(0x4e2d))  # 返回值是'中'

# 3. 将Unicode编码转换为Unicode字符
print(chr(0x4e2d))  # 返回值是'中'

print(chr(0))  # 输出空格
print(chr(1000)) # 输出 Ϩ
print(chr(False)) # 输出空格

# 一些错误的用法
# print(chr(None)) # TypeError: an integer is required (got type NoneType)
# print(chr('')) # TypeError: an integer is required (got type str)
# print(chr('中文'))  # TypeError: an integer is required (got type str)

总之,函数callable()用于判断一个对象是否可调用,函数chr()用于将一个整数转换为Unicode字符。这两个函数在Python编程中非常常用,掌握它们的使用方法可以帮助我们更好地处理函数和字符编码。

classmethod()

函数classmethod()是Python内置函数之一,用于将一个方法转换为类方法。类方法是指在类级别上调用的方法,而不是在实例级别上调用的方法。其基本语法如下:

classmethod(func)

其中,func是要转换为类方法的方法。

classmethod()函数通常与装饰器@classmethod一起使用。被@classmethod装饰的方法将会被自动转换为类方法。

下面是classmethod()函数的一些常见用法:

# 1. 将方法转换为类方法
class MyClass:
    @classmethod
    def my_classmethod(cls):
        print('这是一个类方法')

MyClass.my_classmethod()  # 调用类方法

# 2. 在类方法中访问类变量
class MyClass:
    x = 0

    @classmethod
    def my_classmethod(cls):
        cls.x += 1
        print('类变量x的值为:', cls.x)

MyClass.my_classmethod()  # 调用类方法
# 类变量被修改后,直接生效
print(MyClass.x)  # 输出 1

参考:https://blog.csdn.net/zhouruifu2015/article/details/51348260

compile()

函数compile()是Python内置函数之一,用于将字符串形式的Python代码编译为可执行的代码对象。其基本语法如下:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

其中,source是要编译的Python代码字符串;filename是文件名,可以是任意字符串;mode是编译模式,可以是exec、eval或single;flags是标志位,用于指定编译器的特定行为;dont_inherit和optimize是可选参数,分别用于控制继承和优化的行为。

compile()函数返回一个代码对象,可以通过exec()、eval()或者单独调用其代码对象的方式来执行编译后的代码。

下面是compile()函数的一些常见用法:

from inner_module_def_datastruct import WEIXIN_URL
# 1. 编译Python代码字符串为可执行代码对象
code_obj = compile('print(f"Hello, this is my blog {WEIXIN_URL}")', '<string>', 'exec')
# 执行代码对象
exec(code_obj)  # Hello, this is my blog https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q


# 2. 编译Python文件为可执行代码对象
with open('compile_test.py', 'r') as f:
    code_str = f.read()

code_obj = compile(code_str, 'compile_test.py', 'exec')
# 执行代码对象
exec(code_obj)  # this is my blog https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q


# 3. 编译Python表达式为可执行代码对象
code_obj = compile('1 + 2', '<string>', 'eval')
result = eval(code_obj)  # 执行代码对象
print(result)  # 输出结果是3

总之,函数classmethod()用于将一个方法转换为类方法,函数compile()用于将一个Python代码字符串编译为可执行的代码对象。这两个函数在Python编程中非常常用,掌握它们的使用方法可以帮助我们更好地处理类和代码执行。

complex()

函数complex()是Python内置函数之一,用于创建一个复数对象。其基本语法如下:

complex(real, imag=0)

其中,real是复数的实部,imag是复数的虚部,默认值为0。

complex()函数返回一个复数对象,可以进行复数运算。

下面是complex()函数的一些常见用法:

1. 创建一个复数对象

z = complex(3, 4)

print(z)  # 输出结果是(3+4j)

2. 进行复数运算

z1 = complex(1, 2)

z2 = complex(3, 4)

z3 = z1 + z2

print(z3)  # 输出结果是(4+6j)

delattr()

函数delattr()是Python内置函数之一,用于删除对象的属性。其基本语法如下:

delattr(obj, name)

其中,obj是要删除属性的对象,name是要删除的属性名。

delattr()函数会删除对象的指定属性,如果属性不存在,则会抛出AttributeError异常。

下面是delattr()函数的一些常见用法:

1. 删除对象的属性

class MyClass:

    x = 1

    y = 2

obj = MyClass()

print(obj.x, obj.y)  # 输出结果是1, 2

delattr(obj, 'x')  # 删除属性x

print(obj.y)  # 输出结果是2

2. 删除对象的不存在的属性

class MyClass:

    x = 1

    y = 2

obj = MyClass()

delattr(obj, 'z')  # 删除不存在的属性z,会抛出AttributeError异常

总之,函数complex()用于创建一个复数对象,函数delattr()用于删除对象的属性。这两个函数在Python编程中非常常用,掌握它们的使用方法可以帮助我们更好地处理复数和对象属性。

dict()

dict(**kwarg)

dict(mapping, **kwarg)

dict(iterable, **kwarg)

其中,kwarg是一组关键字参数,用于指定字典的键值对;mapping是一个字典或者其他映射类型的对象;iterable是一个可迭代对象,其中每个元素都是一个包含两个元素的元组,第一个元素是键,第二个元素是值。

dict()函数返回一个字典对象,可以进行字典操作,例如添加、删除、修改和查找等。

下面是dict()函数的一些常见用法:

# dict() 函数用于创建一个字典。
# 用法
# class dict(**kwarg)
# class dict(mapping, **kwarg)
# class dict(iterable, **kwarg)

# 参数说明:
# **kwargs -- 关键字。
# mapping -- 元素的容器,映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
# iterable -- 可迭代对象。

print({})
print(dict())
print(dict({'name': 'rocket', 'email': 'rocket_2014@126.com', 'year': 2023}))
# 输出:{'name': 'rocket', 'email': 'rocket_2014@126.com', 'year': 2023}

# 1. 创建一个字典对象
print(dict(name="rocket", email="rocket_2014@126.com", year=2023))
# 输出:{'name': 'rocket', 'email': 'rocket_2014@126.com', 'year': 2023}

# 2. 映射函数方式来构造字典  zip() 创建可迭代对象
# 映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
print(dict(zip(["name", "email", "year"], ("rocket", "rocket_2014@126.com", 2023))))
# 输出:{'name': 'rocket', 'email': 'rocket_2014@126.com', 'year': 2023}

# 可迭代对象方式来构造字典
print(dict([("name", "rocket"), ("email", "rocket_2014@126.com"), ("year", 2023)], language="python3.11"))
# 输出:{'name': 'rocket', 'email': 'rocket_2014@126.com', 'year': 2023, 'language': 'python3.11'}

# 3. 通过可迭代对象创建字典
l = [('a', 1), ('b', 2), ('c', 3)]
d = dict(l)
print(d)  # 输出结果是{'a': 1, 'b': 2, 'c': 3}

dir()

函数dir()是Python内置函数之一,用于返回指定对象的属性和方法列表。其基本语法如下:

dir([object])

其中,object是要查询属性和方法列表的对象,如果不指定object,则返回当前作用域内的属性和方法列表。

dir()函数返回一个包含属性和方法名称的列表,可以用于查看对象的属性和方法。

下面是dir()函数的一些常见用法:

# 1. 查看当前作用域内的属性和方法
print(dir())  # 输出当前作用域内的属性和方法列表
# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']


# 2. 查看对象的属性和方法
class MyClass:
    x = 1
    y = 2

    @classmethod
    def test1(cls):
        pass

    @staticmethod
    def test2():
        pass

    def test3(self):
        pass

obj = MyClass()
# 输出对象的属性和方法列表
print(dir(obj))  # [...... 'test1', 'test2', 'test3', 'x', 'y']


# 3. 查看模块的属性和方法
import math
print(dir(math))  # 输出模块的属性和方法列表

总之,函数dict()用于创建一个字典对象,函数dir()用于返回指定对象的属性和方法列表。这两个函数在Python编程中非常常用,掌握它们的使用方法可以帮助我们更好地处理字典和对象属性。

divmod()

函数divmod()是Python内置函数之一,用于计算两个数的商和余数,并返回一个元组,其中第一个元素是商,第二个元素是余数。其基本语法如下:

divmod(x, y)

其中,x和y是两个数,可以是整数、浮点数或复数。

divmod()函数返回一个元组,第一个元素是x除以y的商,第二个元素是x除以y的余数。

下面是divmod()函数的一些常见用法:

# 1. 计算整数的商和余数
result = divmod(10, 3)
print(result)  # 输出结果是(3, 1)

# 2. 计算浮点数的商和余数
result = divmod(10.5, 3.2)
print(result)  # 输出结果是(3.0, 1.0999999999999996)


# 如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)。
# 如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b),q 通常是 math.floor(a / b),但也有可能是 1 ,比小,不过 q * b + a % b 的值会非常接近 a。
# 如果 a % b 的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)。
print(divmod(5, -2))  # (-3, -1)
print(divmod(-5, 2))  # (-3, 1)
print(divmod(-5, -2)) # (2, -1)
print(divmod(4, 2))  # (2, 0)

# 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。在 python 3.x 版本该函数不支持复数。python2支持

# 3. 计算复数的商和余数
result = divmod(3+4j, 1+2j)  # TypeError: can't take floor or mod of complex number.
print(result)  # py2中输出结果是((2+0j), (1+0j))

c1 = complex(3,4)
c2 = complex(1,2)
print(c1, c2)
print(divmod(c1, c2))  # py2中输出:((2+0j), (1+0j))

SteveRocket的博客_CSDN博客-Django进阶,Python进阶,网络&信息安全领域博主SteveRocket擅长Django进阶,Python进阶,网络&信息安全,等方面的知识https://blog.csdn.net/zhouruifu2015/


更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。

关于公众号的描述访问如下链接



关于Articulate“做一个知识和技术的搬运工。做一个终身学习的爱好者。做一个有深度和广度的技术圈。”一直以来都想把专业领域的技https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SteveRocket

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值