1、实验所采用版本为:python3.x
2、本次主要查看了一下python的内置函数用法,参考菜鸟教程:https://www.runoob.com/python/python-built-in-functions.html
3、其中进制转换类型的在编写算法类型的时候非常重要,自我认为比较重要的几个内置函数(也是自己运用的不熟练的)有eval()、all()、repr()、exec()、filter()、slice(),掌握好了常用的内置函数真的能事半功倍!
int() 函数用于将一个字符串或数字转换为整型。
1、int()
#当不传参数时,返回结果为整数0,类型为:int
>>>print(int())
>0
>>>print(type(int()))
<class 'int'>
2、int(x)
#当传递一个参数x时,x为字符串或者整数,返回的一定是int型
>>>print(int(10))
10
>>>print(type(10))
<class 'int'>
>>>print(int('10'))
10
>>>print(type('10'))
<class 'str'>
>>>print(type(int('10')))
<class 'int'>
>>>print(int(0xa0))
160
>>>print(type(0xa0))
<class 'int'>
>>>print(int('0xa0'))
ValueError: invalid literal for int() with base 10: '0xa0'
>>>print(int(eval('0xa0')))
160
>>>print(type(int(eval('0xa0'))))
<class 'int'>
oct() 函数将一个整数转换成8进制字符串。
#参数有且只能有一个整型,返回值为8进制字符串型
>>>print(oct(10))
0o12
>>>print(type(oct(10)))
<class 'str'>
hex()其他进制转换为十六进制,以字符串形式返回
#参数有且只能有一个整型,返回值为16进制字符串型
>>>print(hex(255))
0xff
>>>print(type(hex(255)))
<class 'str'>
bin()将int型或long int型转为二进制,以字符串形式返回.
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
#用法:
eval(expression[, globals[, locals]])
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
#其他进制字符串 --> 十进制整数
>>> eval('0x0c')
12
#才外eval()函数也是一个及其危险的函数,他也可以执行系统命令
>>>eval("__import__('os').system('ipconfig')")
killer\administrator
ord()函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
#返回一个字符对应的十进制整数
#字符 --> 十进制整数
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
#返回值是当前整数对应的 ASCII 字符
#整数 --> 字符
>>>print chr(0x30), chr(0x31), chr(0x61) # 十六进制
0 1 a
>>> print chr(48), chr(49), chr(97) # 十进制
0 1 a
unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。
函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
#元素除了是 0、空、None、False 外都算 True。
#例如:列表、元组等,若有一个为假,则返回False;空元组、空列表返回值为True,这里要特别注意。
>>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
False
>>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素
False
>>> all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0
True
>>> all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素
False
>>> all((0, 1, 2, 3)) # 元组tuple,存在一个为0的元素
False
>>> all([]) # 空列表
True
>>> all(()) # 空元组
True
将对象转化为供解释器读取的形式,返回一个对象的 string 格式
>>>s = 'RUNOOB'
>>> repr(s)
"'RUNOOB'"
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>
python3 删去了 execfile(),代替方法如下:
with open('test1.py','r') as f:
exec(f.read())
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
#该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
#python2放回的直接是列表,python3返回的是迭代器对象,需要转换成列表。
def is_sqr(x):
return math.sqrt(x) % 1 == 0
newlist = filter(is_sqr, range(1, 101))
print(list(newlist))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
slice(start, stop, step):函数实现切片对象,主要用在切片操作函数里的参数传递。
#slice(start, stop, step):函数实现切片对象,主要用在切片操作函数里的参数传递。
data = [1,2,3,4,5,6,7,8]
print(data[slice(1,8,3)])
[2, 5, 8]