基础内置函数
约 1833 字大约 6 分钟
2025-04-04
all
all
函数用来判断可迭代对象中是否所有的元素都为 True
:
print(all([1, 2, 32, 43, 5])) # True
any
any
函数与用来判断可迭代对象中的元素是否有一个为 True
:
print(any([1, 2, 3, 0, 1, 0])) # True
callable
callable
函数用来判断变量是否可以被调用:
def func():
pass
print(callable(func)) # True
bytes
bytes
函数可以将字符串编码为二进制形式,它的功能和字符串的 .encode()
方法十分类似,更推荐使用字符串的 .encode()
方法:
print('你好'.encode('utf-8')) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(bytes('你好', encoding='utf-8')) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
chr
和 ord
chr
函数根据当前编码(Python 3 中为 Unicode)解码为字符,ord
为 chr
方法的逆运算,用来将字符编码为数字:
print(chr(20320)) # 你
print(ord('你')) # 20320
complex
complex
函数用来将一对数字转换为复数形式,第一个数作为复数的实部,第二个数为复数的虚部:
print(complex(20, 3)) # (20+3j)
divmod
divmode
函数会将一对数字做商,第一个参数做被除数,第二个参数做除数,返回值为一个元组,元组的第一个元素是商,第二个元素是余数:
print(divmod(20, 3)) # (6, 2)
eval
和 exec
这两个函数用来执行字符串中的代码。其中,eval 函数可以执行单行字符串代码,exec 函数可以执行多行字符串代码:
msg = 'print(1)'
eval(msg) # 1
msg2 = """ # 禁用
def func():
print("太厉害了")
func()
"""
exec(msg2) # 太厉害了
注意这两个函数在日后的编程中是被禁止使用的,因为有可能会出现被恶意注入的 Bug。
frozenset
frozenset 可以生成一个冻结的不可变的集合:
dic = {frozenset({1, 2, 3, 4}): 1}
print(dic) # {frozenset({1, 2, 3, 4}): 1}
既然能做字典的键,就说明冻结集合是一个不可变数据,基本用不到
hash
hash 函数用来判断一个数据是否可哈希。如果可哈希,会返回该数据的哈希值;如果不可哈希,会报错:
print(hash('12'))
print(hash(12))
print(hash(True))
# print(hash([1, 2]))
print(hash((1, 2)))
# print(hash({1: 2}))
# print(hash({1, 2}))
help
help 函数可以查看帮助信息(基本用不到):
help(list) # 使用 help 函数不需要打印
进制转换函数
bin
、oct
和 hex
三个函数分别能将十进制数转换为二进制、八进制和十六进制数;int
方法则能将各种进制数转换为十进制数:
print(bin(10)) # 0b1010
print(oct(10)) # 0o12
print(hex(30)) # 0x1e
print(int('0x1e', 16)) # 30 将十六进制数转为十进制,0x 可以不加
print(int('1e', 16)) # 30
print(int('0o11', 8)) # 9
print(int('0b11', 2)) # 3、
pow
pow
函数用来进行幂运算,返回的结果是前一个数的后一个数次幂:
print(pow(3, 4)) # 3 ** 4 = 81
repr
repr
函数用来显示打印出来的字符串两端的双引号,即令字符串原形毕露:
print('123') # 123
print(repr('123')) # '123'
round
round
函数用来将小数取整,取整规则是四舍六入五成双,也可以指定保留的小数位数:
print(round(3.4)) # 3
print(round(3.5)) # 4
print(round(3.6)) # 4
print(round(4.4)) # 4
print(round(4.5)) # 4
print(round(4.6)) # 5
print(round(3.14159265397932384626, 3)) # 3.142
abs
abs
用来求数字的绝对值:
print(abs(-6))
format
format
函数用来格式化字符串,与字符串的 .center()
方法类似:
s = '你好'
s1 = format(s, '>20') # 靠右
s2 = format(s, '<20') # 靠左
s3 = format(s, '^20') # 居中
print(s1, s2, s3, sep='\n')
输出的结果为:
你好
你好
你好
format
也可以用来进行数字的进制转换:
s = 18
print(format(s, '08b')) # 00010010 08 的意思是总共八位,不足的用 0 补齐,b 指的是要转换为二进制 bin
print(format(s, '08o')) # 00000022 oct
print(format(s, '08x')) # 00000012 hex
print(format(s, '08d')) # 00000018 decimal
format
方法对于转换 ip
地址会很有用。
sum
sum
函数用来求一个可迭代对象中元素的总和:
print(sum[1, 2, 3, 4])
dir
dir
函数用来查看当前对象有哪些方法:
print(dir(list))
print
print 函数我们已经非常熟悉了,用来将内容打印出来。我们还需要了解的是 print
有两个比较重要的关键字参数:sep
和 end
。
sep
用来规定 print
中多个元素以什么间隔开,默认值为一个空格 ' '
;end
用来规定 print
函数打印完全部内容后以什么为结尾,默认为换行符 \n
。
我们可以通过修改 sep
和 end
的值来实现不同的打印输出效果:
print('alice', 'tom', '太亮', sep='-', end=' ')
print('bob')
输出的结果为:
alice-tom-太亮 bob
我们可以利用 print
的这两个参数实现打印九九乘法表:
for i in range(1, 10):
for j in range(1, 10):
if i > j:
print(f'{i} * {j} = {i * j}', end=' ')
elif i == j:
print(f'{i} * {j} = {i * j}')
输出的结果是这样的:
除了能将信息打印到屏幕上,print 也可以将信息写入到文件中:
f = open('test', 'a', encoding='utf-8')
print('alice', file=f)
屏幕上没有打印出任何内容,但是出现了一个名为 test
的文件,文件中的内容为 alice
input
在 Python 中,用 input()
函数实现用户和程序间的交互。input
是输入的意思。使用示例如下:
qq_user = input('QQ 账号:') # 坑 --> 阻塞
qq_pwd = input('QQ 密码:')
print(qq_user, qq_pwd)
当程序运行到 input
语句时,会发生阻塞,等待用户进行输入。程序会一直保持阻塞状态,除非用户输入内容或终止程序。
需要注意的是,在 Python 3 中 input
获取的内容全都是字符串。因为这样的原因,下面的程序会报错:
num = input('请输入数字:')
print(num + 5)
这两行代码的本意是,当用户输入一个数字之后,程序自动输出一个比输入数字大 5
的数字。但是因为 input
获取的内容是字符串,字符串是不能和整型数字进行加和操作的,故而程序报错。我们可以使用 tpye()
函数查看变量的数据类型。
num = input('请输入数字:')
print(type(num)) # <class 'str'>
int
和 str
通过使用 int()
函数可以将字符串转化为整型数据。同样地,也可以使用 str()
函数,把整型数据转换成字符串。
a = int('12') # 字符串转成整型
b = str(23) # 整型转成字符串
需要注意的是,使用 int()
函数将字符串转换为整型时,字符串中的内容必须全部都是数字,否则会报错:
>>> int('abc123')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc123'
那么我们上面的例子就可以改成这个样子:
num = input('请输入数字:')
a = int(num)
print(a + 5)
这样的话,当我们输入一个数字之后,通过 int()
函数,输入内容转换成为整型,然后就可以进行加和操作了:
请输入数字:3
8
也可以把 inpu()
操作直接放到 int()
函数中:
num = int(input('请输入数字:'))
print(num + 5)
版权所有
版权归属:Shuo Liu