python 常用内置函数

python 常用内置函数

  • 0x01 版本
  • 0x02 int()函数
  • 0x03 oct()
  • 0x04 hex()
  • 0x05 bin()
  • 0x06 eval()
  • 0x07 ord()
  • 0x08 chr()
  • 0x09 unichr()
  • 0x0a all()
  • 0x0b repr(object)
  • 0x0c execfile()
  • 0x0d filter()
  • 0x0e slice()

0x01 版本

1、实验所采用版本为:python3.x

2、本次主要查看了一下python的内置函数用法,参考菜鸟教程:https://www.runoob.com/python/python-built-in-functions.html

3、其中进制转换类型的在编写算法类型的时候非常重要,自我认为比较重要的几个内置函数(也是自己运用的不熟练的)有eval()、all()、repr()、exec()、filter()、slice(),掌握好了常用的内置函数真的能事半功倍!

python 常用内置函数_第1张图片

0x02 int()函数

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'>

0x03 oct()

oct() 函数将一个整数转换成8进制字符串。

#参数有且只能有一个整型,返回值为8进制字符串型
>>>print(oct(10))
0o12
>>>print(type(oct(10)))
<class 'str'>

0x04 hex()

hex()其他进制转换为十六进制,以字符串形式返回

#参数有且只能有一个整型,返回值为16进制字符串型
>>>print(hex(255))
0xff
>>>print(type(hex(255)))
<class 'str'>

0x05 bin()

bin()将int型或long int型转为二进制,以字符串形式返回.

0x06 eval()

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

0x07 ord()

ord()函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

#返回一个字符对应的十进制整数
#字符 -->  十进制整数
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99

0x08 chr()

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

0x09 unichr()

unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。

0x0a all()

函数用于判断给定的可迭代参数 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, 12, 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

0x0b repr(object)

将对象转化为供解释器读取的形式,返回一个对象的 string 格式

>>>s = 'RUNOOB'
>>> repr(s)
"'RUNOOB'"
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>

0x0c execfile()

python3 删去了 execfile(),代替方法如下:
with open('test1.py','r') as f:
		exec(f.read())

0x0d filter()

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]

0x0e slice()

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]

你可能感兴趣的:(python)