python内置函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python内置函数相关的知识,希望对你有一定的参考价值。
我们一起来看看python里的内置函数。什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了。
一.其它中的12个
1.执行字符串类型代码的执行
eval:用来执行一个字符串表达式,并返回表达式的值。
描述 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。 实例 以下展示了使用 eval() 方法的实例: >>>x = 7 >>> eval( \'3 * x\' ) 21 >>> eval(\'pow(2,2)\') 4 >>> eval(\'2 + 2\') 4 >>> n=81 >>> eval("n + 4") 85
exce:执行存储在字符串或文件中的Python语句,相比于eval,exec可以执行更Python代码
描述 exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。 需要说明的是在 Python2 中exec不是函数,而是一个内置语句(statement),但是Python 2中有一个 execfile() 函数。可以理解为 Python 3 把 exec 这个 statement 和 execfile() 函数的功能够整合到一个新的 exec() 函数中去了。 语法 以下是 exec 的语法: exec obj 参数 obj -- 要执行的表达式。 返回值 exec 返回值永远为 None。 实例 以下展示了使用 exec 的实例: # 实例 1 >>>exec \'print "Hello World"\' Hello World # 单行语句字符串 >>> exec "print \'runoob.com\'" runoob.com # 多行语句字符串 >>> exec """for i in range(5): ... print "iter time: %d" % i ... """ iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4 # 实例 2 x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {\'x\': 1, \'y\': 2}) exec(expr, {\'x\': 1, \'y\': 2}, {\'y\': 3, \'z\': 4}) func() 输出结果: 60 33 34
- exec和eval都可以执行 字符串类型的代码 - eval有返回值 —— 有结果的简单计算 - exec没有返回值 —— 简单流程控制 - eval只能用在你明确知道你要执行的代码是什么
compile:将一个字符串编译为字节代码。
ret=\'for i in range(5):print(i)\' c=compile(ret,\'\',\'exec\') #用exec执行,有返回值 exec(c) ret=\'1+2+3+4\' c=compile(ret,\'\',\'eval\') #\'\'引号原本的功能是放 print(eval(c)) # 用eval执行,没有返回值,所以需要打印
2.输入输出
input:接受一个标准输入数据,返回为 string 类型。
>>>a = input("input:") input:123 # 输入整数 >>> type(a) <type \'int\'> # 整型 >>> a = input("input:") input:"runoob" # 正确,字符串表达式 >>> type(a) <type \'str\'> # 字符串 >>> a = input("input:") input:runoob # 报错,不是表达式 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name \'runoob\' is not defined <type \'str\'>
>>>a = raw_input("input:") input:123 >>> type(a) <type \'str\'> # 字符串 >>> a = raw_input("input:") input:runoob >>> type(a) <type \'str\'> # 字符串 >>>
print:方法用于打印输出,最常见的一个函数。
print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。
>>>print(1) 1 >>> print("Hello World") Hello World >>> a = 1 >>> b = \'runoob\' >>> print(a,b) 1 runoob >>> print("aaa""bbb") aaabbb >>> print("aaa","bbb") aaa bbb >>> >>> print("www","runoob","com",sep=".") # 设置间隔符 www.runoob.com
3.内存相关
hash:用于获取取一个对象(字符串或者数值等)的哈希值。
>>>hash(\'test\') # 字符串 2314058222102390712 >>> hash(1) # 数字 1 >>> hash(str([1,2,3])) # 集合 1335416675971793195 >>> hash(str(sorted({\'1\':1}))) # 字典 7666464346782421378
id:用于获取对象的内存地址。
>>>a = \'runoob\' >>> id(a) 4531887632 >>> b = 1 >>> id(b) 140588731085608
4.文件操作
open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+: 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+: 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 w: 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 w+: 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb+: 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
file 对象方法
file.read([size]):size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()读到文件尾时返回""(空字串)。 file.readline():返回一行。 file.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。 for line in f: print line :通过迭代器访问。 f.write("hello\\n"):如果要写入字符串以外的数据,先将他转换为字符串。 f.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的比特数)。 f.seek(偏移量,[起始位置]):用来移动文件指针。 偏移量: 单位为比特,可正可负 起始位置: 0 - 文件头, 默认值; 1 - 当前位置; 2 - 文件尾 f.close() 关闭文件
RUNOOB1 RUNOOB2 >>>f = open(\'test.txt\') >>> f.read() \'RUNOOB1\\nRUNOOB2\\n\'
5.调用相关
callable :用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
>>>callable(0) False >>> callable("runoob") False >>> def add(a, b): ... return a + b ... >>> callable(add) # 函数返回 True True >>> class A: # 类 ... def method(self): ... return 0 ... >>> callable(A) # 类返回 True True >>> a = A() >>> callable(a) # 没有实现 __call__, 返回 False False >>> class B: ... def __call__(self): ... return 0 ... >>> callable(B) True >>> b = B() >>> callable(b) # 实现 __call__, 返回 True True
6.模块相关
__import__:用于动态加载类和函数,如果一个模块经常变化就可以使用 __import__() 来动态载入。
#!/usr/bin/env python #encoding: utf-8 import os print (\'在 a.py 文件中 %s\' % id(os))
#!/usr/bin/env python #encoding: utf-8 import sys __import__(\'a\') # 导入 a.py 模块
7.帮助
help:用于查看函数或模块用途的详细说明。
>>>help(\'sys\') # 查看 sys 模块的帮助 ……显示帮助信息…… >>>help(\'str\') # 查看 str 数据类型的帮助 ……显示帮助信息…… >>>a = [1,2,3] >>>help(a) # 查看列表 list 帮助信息 ……显示帮助信息…… >>>help(a.append) # 显示list的append方法的帮助 ……显示帮助信息……
8.查看内置属性
dir:不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
>>>dir() # 获得当前模块的属性列表 [\'__builtins__\', \'__doc__\', \'__name__\', \'__package__\', \'arr\', \'myslice\'] >>> dir([ ]) # 查看列表的方法 [\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__delslice__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__getslice__\', \'__gt__\', \'__hash__\', \'__iadd__\', \'__imul__\', \'__init__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__mul__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__reversed__\', \'__rmul__\', \'__setattr__\', \'__setitem__\', \'__setslice__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'append\', \'count\', \'extend\', \'index\', \'insert\', \'pop\', \'remove\', \'reverse\', \'sort\']
二.基础数据类型相关 38个
1.1数字类型
数据类型
bool:用于将给定参数转换为布尔类型,如果没有参数,返回 False。
>>>bool() False >>> bool(0) False >>> bool(1) True >>> bool(2) True >>> issubclass(bool, int) # bool 是 int 子类 True
int:用于将一个字符串或数字转换为整型。
>>>int() # 不传入参数时,得到结果0 0 >>> int(3) 3 >>> int(3.6) 3 >>> int(\'12\',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制 18 >>> int(\'0xa\',16) 10 >>> int(\'10\',8) 8
float:用于将整数和字符串转换成浮点数。
>>>float(1) 1.0 >>> float(112) 112.0 >>> float(-123.6) -123.6 >>> float(\'123\') # 字符串 123.0
complex:用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。
>>>complex(1, 2) (1 + 2j) >>> complex(1) # 数字 (1 + 0j) >>> complex("1") # 当做字符串处理 (1 + 0j) # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 >>> complex("1+2j") (1 + 2j)
进制转换
bin:返回一个整数 int 或者长整数 long int 的二进制表示。
>>>bin(10) \'0b1010\' >>> bin(20) \'0b10100\'
oct:将一个整数转换成8进制字符串
>>>oct(10) \'012\' >>> oct(20) \'024\' >>> oct(15) \'017\' >>>
hex:用于将10进制整数转换成16进制,以字符串形式表示。
>>>hex(255) \'0xff\' >>> hex(-42) \'-0x2a\' >>> hex(1L) \'0x1L\' >>> hex(12) \'0xc\' >>> type(hex(12)) <class \'str\'> # 字符串
数学运算
abs:返回数字的绝对值。
#!/usr/bin/python print "abs(-45) : ", abs(-45) print "abs(100.12) : ", abs(100.12) print "abs(119L) : ", abs(119L) # 运行结果 abs(-45) : 45 abs(100.12) : 100.12 abs(119L) : 119
divmod:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。在 python 2.3 版本之前不允许处理复数。
>>>divmod(7, 2) (3, 1) >>> divmod(8, 2) (4, 0) >>> divmod(1+2j,1+0.5j) ((1+0j), 1.5j)
round:方法返回浮点数x的四舍五入值。
print "round(80.23456, 2) : ", round(80.23456, 2) print "round(100.000056, 3) : ", round(100.000056, 3) print "round(-100.000056, 3) : ", round(-100.000056, 3) # 运行结果 round(80.23456, 2) : 80.23 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
sum:方法对系列进行求和计算。
>>>sum([0,1,2]) 3 >>> sum((2, 3, 4), 1) # 元组计算总和后再加 1 10 >>> sum([0,1,2,3,4], 2) # 列表计算总和后再加 2 12
min:方法返回给定参数的最小值,参数可以为序列。
print "min(80, 100, 1000) : ", min(80, 100, 1000) print "min(-20, 100, 400) : ", min(-20, 100, 400) print "min(-80, -20, -10) : ", min(-80, -20, -10) print "min(0, 100, -400) : ", min(0, 100, -400) # 运行结果 min(80, 100, 1000) : 80 min(-20, 100, 400) : -20 min(-80, -20, -10) : -80 min(0, 100, -400) : -400
max:方法返回给定参数的最大值,参数可以为序列。
#!/usr/bin/python print "max(80, 100, 1000) : ", max(80, 100, 1000) print "max(-20, 100, 400) : ", max(-20, 100, 400) print "max(-80, -20, -10) : ", max(-80, -20, -10) print "max(0, 100, -400) : ", max(0, 100, -400) # 运行结果 max(80, 100, 1000) : 1000 max(-20, 100, 400) : 400 max(-80, -20, -10) : -10 max(0, 100, -400) : 100
pow:方法返回 xy(x的y次方) 的值。
#!/usr/bin/python # -*- coding: UTF-8 -*- import math # 导入 math 模块 python有多少内置函数