python 常用内置函数_Python_常见内置函数

1. 方法

注:class(类)是具有相同的属性和方法的对象的集合。

2. 例子

(1)数据/集合类型

str(object=''); str(object=b'', encoding='utf-8', errors='strict')

int(x, base=10)

float(x=0)

complex(real=0, imag=0)

1 >>> str(123)2 '123'

3 >>> str(['a', 'b', 'c'])4 "['a', 'b', 'c']"

5 >>> str(123).join(['a', 'b', 'c'])6 'a123b123c'

7 >>> int('123')8 123

9 >>> float('123')10 123.0

11 >>> (0.75).as_integer_ratio()12 (3, 4)13 >>> (1.0).is_integer()14 True15 >>> complex(1, 2)16 (1+2j)17 >>> complex(1, 2).conjugate()18 (1-2j)

range(stop), range(start, stop[, step])

tuple(iterable=())

list([iterable])

dict(); dict(mapping); dict(iterable); dict(**kwargs)

1 >>> r = range(40, 1, -3)2 >>> t =tuple(r)3 >>> l =list(r)4 >>>t5 (40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4)6 >>>l7 [40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4]8 >>> r.count(1)9 010 >>> r.index(31)11 3

12 >>> t.count(10)13 1

14 >>> t.index(31)15 3

16 >>>l.sort()17 >>>l18 [4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40]19 >>> dict(a=1, b=2, c=3)20 {'a': 1, 'b': 2, 'c': 3}21 >>> dict(zip(list('abc'), [1, 2, 3]))22 {'a': 1, 'b': 2, 'c': 3}23 >>> dict([('a', 1), ('b', 2), ('c', 3)])24 {'a': 1, 'b': 2, 'c': 3}25 >>> dict(a=1, b=2, c=3).items()26 dict_items([('a', 1), ('b', 2), ('c', 3)])

set([iterable])

frozenset([iterable])

1 >>> s1 = set('hello')2 >>>s13 {'o', 'h', 'e', 'l'}4 >>> s1.add(123)5 >>>s16 {'o', 'l', 'h', 'e', 123}7 >>> s1.discard('o')8 >>>s19 {'l', 'h', 'e', 123}10 >>> s2 = set('lemon')11 >>>s212 {'o', 'l', 'e', 'm', 'n'}13 >>>s1.update(s2)14 >>>s115 {'o', 'l', 'h', 'e', 'm', 'n', 123}

1 >>> a = frozenset('hello world')

2 >>>a

3 frozenset({'w', 'l', ' ', 'r', 'o', 'h', 'd', 'e'})

4 >>> b = frozenset(range(5))

5 >>>b

6 frozenset({0, 1, 2, 3, 4})

7 >>> c = frozenset(range(2,7))

8 >>>c

9 frozenset({2, 3, 4, 5, 6})

10 >>> b.union(c) #并集

11 frozenset({0, 1, 2, 3, 4, 5, 6})

12 >>> b.intersection(c) #交集

13 frozenset({2, 3, 4})

14 >>> b.difference(c) #差集

15 frozenset({0, 1})

16 >>> c.difference(b) #差集

17 frozenset({5, 6})

18 >>> b.symmetric_difference(c) #对称差集

19 frozenset({0, 1, 5, 6})

20 >>> b.isdisjoint(c) #是否没有交集

21 False

22 >>> d = frozenset(range(2,5))

23 >>>d

24 frozenset({2, 3, 4})

25 >>> d.issubset(b) #是否被包含

26 True

27 >>> b.issuperset(d) #是否包含

28 True

29 >>> e = d.copy() #复制

30 >>> id(d) ==id(e)

31 True

bytearray和bytes

1 >>>bytes()2 b''

3 >>> bytes(3)4 b'\x00\x00\x00'

5 >>> bytes('abc', 'utf-8')6 b'abc'

7 >>> bytes([1, 2, 3])8 b'\x01\x02\x03'

9 >>> b'abcd'.replace(b'bc', b'XY')10 b'aXYd'

11

12 >>> B = b'abc'

13 >>> BA =bytearray(B)14 >>>BA15 bytearray(b'abc')16 >>> [i for i inB]17 [97, 98, 99]18 >>> [i for i inBA]19 [97, 98, 99]20 >>> B[0] = 65

21 Traceback (most recent call last):22 File "", line 1, in

23 B[0] = 65

24 TypeError: 'bytes' object does notsupport item assignment25 >>> BA[0] = 65

26 >>>BA27 bytearray(b'Abc')

(2)操作

format(value, format_spec='')

len(obj)

sorted(iterable, key=None, reverse=False)

reversed(sequence)

slice(stop); slice(start, stop[, step])

1 >>> L = list('abcde')2 >>>L3 ['a', 'b', 'c', 'd', 'e']4 >>>len(L)5 5

6 >>> sorted(L, reverse=True)7 ['e', 'd', 'c', 'b', 'a']8 >>>list(reversed(L))9 ['e', 'd', 'c', 'b', 'a']10 >>> L[slice(1, 4, 2)]11 ['b', 'd']

enumerate(iterable, start=0)

zip(iter1 [,iter2 [...]])

map(func, *iterables)

1 >>> l1 = [1, 2, 3]2 >>> l2 = [4, 5, 6]3 >>> l3 = [7, 8, 9, 10]4

5 >>>list(enumerate(l3))6 [(0, 7), (1, 8), (2, 9), (3, 10)]7

8 >>>list(zip(l1, l2))9 [(1, 4), (2, 5), (3, 6)]10 >>>list(zip(l1, l3))11 [(1, 7), (2, 8), (3, 9)]12 >>> list(zip(*zip(l1, l3))) #*理解为解压

13 [(1, 2, 3), (7, 8, 9)]14

15 >>> list(map(lambda x: x * 3, l1))16 [3, 6, 9]17 >>> list(map(lambda x, y: x +y, l1, l2))18 [5, 7, 9]

(3)输入输出

input(prompt=None)

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

1 >>> age = input('请输入年龄:')

2 请输入年龄:18

3 >>>age

4 '18'

5 >>>type(age)

6

1 >>> print('hello world', 'hello Bunny', sep='\n', end='_'*10)2 hello world3 hello Bunny__________

(4)数学函数

abs(x)

divmod(x, y)

pow(x, y, z=None)

round(number, ndigits=None)

sum(iterable, start=0)

max(arg1, arg2, *args, *[, key=func]); max(iterable, *[, default=obj, key=func])

min(arg1, arg2, *args, *[, key=func]); min(iterable, *[, default=obj, key=func])

1 >>> abs(-10)2 10

3 >>> divmod(11, 3)4 (3, 2)5 >>> pow(2, 3)6 8

7 >>> pow(2, 3, 3)8 2

9 >>> round(1.2345, 2)10 1.23

11 >>> sum(range(5))12 10

1 >>> max(1, 2, 3)

2 3

3 >>> max(1, 2, '3')

4 Traceback (most recent call last):

5 File "", line 1, in

6 max(1, 2, '3')

7 TypeError: '>' not supported between instances of 'str' and 'int'

8 >>> max(1, 2, '3', key=int)

9 '3'

10 >>> max(-3, 1, 2, key=abs)

11 -3

12 >>> max('123')

13 '3'

14 >>> max([1, 8], [2, 6], [3, 4])

15 [3, 4]

16 >>> couple = ({'name': 'Bunny', 'age': 18, 'salary': 888}, {'name': 'Twan', 'age': 20, 'salary': 666})

17 >>> max(couple, key=lambda x: x['age'])

18 {'name': 'Twan', 'age': 20, 'salary': 666}

19 >>> max((), default=0)

20 0

(5)编码

bin(number), oct(number), hex(number)

chr(i), ord(c), ascii(obj), repr(obj)

1 >>> bin(10)2 '0b1010'

3 >>> oct(10)4 '0o12'

5 >>> hex(10)6 '0xa'

7 >>> chr(65)8 'A'

9 >>> ord('A')10 65

11 >>> ascii('hello world')12 "'hello world'"

13 >>> repr('hello world')14 "'hello world'"

15 >>> ascii('你好,世界')16 "'\\u4f60\\u597d\\uff0c\\u4e16\\u754c'"

17 >>> repr('你好,世界')18 "'你好,世界'"

(6)判断

bool(x), all(iterable), any(iterable), callable(object)

1 >>> all(['a', 'b', 'c'])2 True3 >>> all(['a', 'b', '', 'c'])4 False5 >>>all([])6 True7 >>> any([0, '', False])8 False9 >>>any([])10 False11 >>>callable(str)12 True13 >>> callable('hello world')14 False

(7)迭代器

iter(iterable); iter(callable, sentinel)

next(iterator[, default])

filter(function or None, iterable)

1 >>> for i in iter(list('abc')):

2   print(i)

3

4 a

5 b

6 c

7

8 >>> from random importrandint

9 >>> defguess():

10 return randint(0,10)

11 >>> num = 1

12 >>> for i in iter(guess, 5):

13 print('第%s次猜测,猜测数字为:%s' %(num, i))

14 num += 1

15

16 第1次猜测,猜测数字为:3

17 第2次猜测,猜测数字为:1

1 >>> i = iter(list('abc'))

2 >>>next(i)

3 'a'

4 >>>next(i)

5 'b'

6 >>>next(i)

7 'c'

8 >>>next(i)

9 Traceback (most recent call last):

10 File "", line 1, in

11 next(i)

12 StopIteration

13 >>>next(i, 0)

14 0

1 >>> defis_odd(n):

2 return n % 2 == 1

3

4 >>> oldlist = [i for i in range(1,11)]

5 >>>oldlist

6 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

7 >>> newlist =list(filter(is_odd, oldlist))

8 >>>newlist

9 [1, 3, 5, 7, 9]

(8)属性操作

getattr(obj, name[, default])

setattr(obj, name, value)

hasattr(obj, name)

delattr(obj, name)

1 >>> classPerson:2   name = 'Bunny'

3   age = 18

4   sex = '女'

5

6 >>>Person.name7 'Bunny'

8 >>>Person.country9 Traceback (most recent call last):10 File "", line 1, in

11 Person.country12 AttributeError: type object 'Person' has no attribute 'country'

13 >>> getattr(Person, 'age', 0)14 18

15 >>> getattr(Person, 'country', 0)16 017 >>> setattr(Person, 'country', 'China')18 >>> getattr(Person, 'country', 0)19 'China'

20 >>> delattr(Person, 'sex')21 >>> hasattr(Person, 'sex')22 False

(9)辅助函数

dir([object])

1 >>>dir()2 ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']3 >>>dir(dict)4 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

help([object])

1 >>>help(hash)

2 Help on built-in function hash inmodule builtins:

3

4 hash(obj, /)

5 Return the hash value forthe given object.

6

7 Two objects that compare equal must also have the same hash value, but the

8 reverse is not necessarily true.

hash(obj)

1 >>> hash('hello world')

2 -8331809543453374991

3 >>> hash(tuple('abcde'))

4 5996617995451668254

id([object])

1 >>> a = 'hello world'

2 >>> b =a3 >>>id(a)4 1873301041520

5 >>>id(b)6 1873301041520

memoryview(object)

1 >>> a = memoryview(bytearray('abcde', 'utf-8'))

2 >>> a[1]

3 98

4 >>> a[1:3]

5

6 >>> a[1:3].tobytes()

7 b'bc'

8 >>> a[1:3].tolist()

9 [98, 99]

type(object), type(name, bases, dict)

issubclass(cls, class_or_tuple)

isinstance(obj, class_or_tuple)

1 >>> a = 2

2 >>>type(a)

3

4 >>>isinstance(a, int)

5 True

6 >>>isinstance(a, str)

7 False

8 >>> isinstance(a, (str, int, list)) #是元组中的一个就返回True

9 True

1 >>> classA:2    pass

3

4 >>> classB(A):5    pass

6

7 >>>issubclass(B, A)8 True9 >>>isinstance(B(), A)10 True11 >>> type(B()) ==A12 False

(10)面向对象

@classmethod, @staticmethod

1 >>> classA:2 num = 0 #类属性

3 #类方法

4 @classmethod5 defsetNum(cls,newNum):6 cls.num =newNum7 #实例方法

8 def __init__(self):9 self.age = 1 #实例属性

10 defsetAge(self, newAge):11 self.age =newAge12 #静态方法

13 @staticmethod14 defprintInfo():15 print('类方法修改类属性,实例方法修改实例属性,静态方法不访问类')16

17

18 >>> a =A()19 >>> a.setAge(18)20 >>>a.age21 18

22 >>> A.setAge(18)23 Traceback (most recent call last):24 File "", line 1, in

25 A.setAge(18)26 TypeError: setAge() missing 1 required positional argument: 'newAge'

27 >>> A.setNum(100)28 >>>A.num29 100

30 >>>A.printInfo()31 类方法修改类属性,实例方法修改实例属性,静态方法不访问类

property(fget=None, fset=None, fdel=None, doc=None); @property

效果:

1 >>> c =C()

2 >>> c.x = 10

3 >>>c.x

4 10

5 >>> delc.x

6 >>>c.x

7 Traceback (most recent call last):

8 File "", line 1, in

9 c.x

10 File "", line 5, inx

11 returnself._x

12 AttributeError: 'C' object has no attribute '_x'

方式1:

1 >>> classC(object):

2   def getx(self): returnself._x

3   def setx(self, value): self._x =value

4   def delx(self): delself._x

5   x = property(getx, setx, delx, "I'm the 'x' property.")

方式2:

1 >>> classC(object):

2 @property

3   defx(self):

4   "I am the 'x' property."

5   returnself._x

6 @x.setter

7   defx(self, value):

8   self._x =value

9 @x.deleter

10   defx(self):

11   delself._x

super

1 >>> classA:

2 defadd(self, x):

3 print(x+1)

4

5 >>> classB(A):

6 defadd(self, x):

7 super().add(x)

8

9 >>> B().add(2)

10 3

globals, locals, vars([object])

1 >>> word = 'hello world'

2 >>> deftest(x):3 y = 1

4 print(locals())5

6 >>> test(2)7 {'x': 2, 'y': 1}8 >>>globals()9 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'word': 'hello world', 'test': }10 >>> classA:11 a = 1

12

13 >>>vars(A)14 mappingproxy({'__module__': '__main__', 'a': 1, '__dict__': , '__weakref__': , '__doc__': None})

(11)可执行对象

eval(source, globals=None, locals=None)

exec(source, globals=None, locals=None)

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

1 >>> eval('2 * 3 + 4')2 10

3 >>> exec('print("hello world")')4 hello world5 >>> eval_code = compile('2 * 3 + 4', '', 'eval')6 >>>eval_code7 at 0x00000269270686F0, file "", line 1>

8 >>>eval(eval_code)9 10

10 >>> exec_code = compile('print("hello world")', '', 'exec')11 >>>exec_code12 at 0x0000026927074150, file "", line 1>

13 >>> exec(exec_code)14 hello world

需要注意的是,exec函数和eval函数都是将用户提供的字符串作为代码执行,将无法控制代码的行为,会带来严重的安全隐患,使用的时候要慎重。

1 >>> exec('abs="xyz"')2 >>> abs(-1)3 Traceback (most recent call last):4 File "", line 1, in

5 abs(-1)6 TypeError: 'str' object is not callable

报错的原因是使用exec函数将'xyz'赋值给了abs,abs不再是求绝对值的函数了。为了避免污染命名空间,在调用exec函数时,可以给它传递第二个参数——命名空间。

1 >>> scope ={}2 >>> exec('abs="xyz"', scope)3 >>> abs(-1)4 1

5 >>> scope['abs']6 'xyz'

你可能感兴趣的:(python,常用内置函数)