• python全栈开发-Day13 内置函数


    一、内置函数

    注意:内置函数id()可以返回一个对象的身份,返回值为整数。

    这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以内存地址为准。

    is运算符用于比较两个对象的身份,等号比较两个对象的值,内置函数type()则返回一个对象的类型

    #更多内置函数:https://docs.python.org/3/library/functions.html?highlight=built#ascii

    二、内置函数详情

    1、abs(x)

    功能:取数的绝对值

    1
    2
    >>> abs(-1)  #取-1的绝对值
    1

    2、all(iterable)

    功能:如果这个可迭代的元素都为真,则返回真(非0的就为真,负数也是为真)

    1
    2
    3
    4
    >>> all([0,9,-3])   #有0,说明为假
    False
    >>> all([-1,5,6])  #负数也是为真
    True

    3、any(iterable)

    功能:可迭代的元素中,有一个为真,则返回真,没有真或空列表返回假。

    1
    2
    3
    4
    >>> any([0,0,2])  #有一个为真,则为真
    True
    >>> any([])  #空列表为假
    False

    4、ascii(object)

    功能:把内存对象变成一个可打印的字符串格式

    1
    2
    >>> a = ascii([1,2,3,4])
    >>> print(type(a),[a])

    5、bin(x)

    功能:把一个整数转换成二进制

    1
    2
    3
    4
    >>> bin(300)  #把300转换成二进制
    '0b100101100'
    >>> bin(1)
    '0b1'

    6、bool([x])

    功能:返回一个布尔值,空列表为假,不为空为真

    1
    2
    3
    4
    5
    6
    >>> bool([])   #空列表
    False
    >>> bool([1,2])   #不为空列表
    True
    >>> bool([0])
    True

    7、bytearray[source[, encoding[, errors]]]

    功能:字节数组,并且可以修改二进制的字节

    1
    2
    3
    4
    5
    6
    >>> b = bytearray("abcd",encoding="utf-8")  #声明一个字节数组
    >>> b[0]  #打印第一个元素的ascii值,也就是'a'对应的ascii值
    97
    >>> b[0= 100  #修改时,只能赋值对应字符的ascii值
    >>> b
    bytearray(b'dbcd')   #发现字节数组值被修改

    8、bytes([source[, encoding[, errors]]])

    功能:把字符串转换成字节

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> b = bytes("abcd",encoding="utf-8")  #声明字节
    >>> b
    b'abcd'
    >>> b[0]   #访问到'a'字符对应的ASCII值
    97
    >>> b[0]=100    #不可以修改里面的值,不然会报错
    Traceback (most recent call last):
      File "<input>", line 1in <module>
    TypeError: 'bytes' object does not support item assignment

    9、callable(object)

    功能:判断一个对象是否可以被调用,只有在后面有括号的,表示可以调用,比如:函数,类。

    1
    2
    3
    4
    5
    >>> callable([])  #列表后面不加括号
    False
    >>> def sayhi():pass  #定义一个函数
    >>> callable(sayhi)  #函数调用,后面需要加括号
    True

    10、chr(i)

    功能:通过ascii的值(必须是数字),找到对应的字符

    1
    2
    >>> chr(97)
    'a'

    11、ord(c)

    功能:根据字符(必须ascii的字符),找到对应的ascii值

    1
    2
    >>> ord('a')
    97

    12、complex([real[, imag]])

    功能:返回一个复数,我们几乎用不到。

    1
    2
    >>> complex('1+2j')
    (1+2j)

    13、dict(**kwarg)、dict(mapping**kwarg)、dict(iterable**kwarg)

    功能:返回一个字典

    1
    2
    3
    4
    5
    6
    7
    8
    >>> dict()  #定义一个字典
    {}
    >>> dict(name='qianduoduo',age=18)   #传入非固定关键字参数
    {'name''qianduoduo''age'18}
    >>> dict([('name','qianduoduo'),('age',18)])   #传入一个列表
    {'name''zhangqigao''age'18}
    >>> dict([['name','qianduoduo'],['age',18]])    #传入一个列表
    {'name''qianduoduo''age'18}

     14、dir([object])

    功能:看一个对象有哪些方法

    1
    2
    3
    4
    5
    6
    7
    8
    >>> name = []
    >>> dir(name)  #显示name下的所有的方法
    ['__add__''__class__''__contains__''__delattr__''__delitem__''__dir__''__doc__',
    '__eq__''__format__''__ge__''__getattribute__''__getitem__''__gt__''__hash__',
    '__iadd__''__imul__''__init__''__iter__''__le__''__len__''__lt__''__mul__''__ne__',
    '__new__''__reduce__''__reduce_ex__''__repr__''__reversed__''__rmul__',
    '__setattr__''__setitem__''__sizeof__''__str__''__subclasshook__''append''clear',
    'copy''count''extend''index''insert''pop''remove''reverse''sort']

    15、divmod(a,b)

    功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。

    1
    2
    >>> divmod(5,2)
    (21)    #2是商,1是余数

    16、enumerate(iterable,start=0)  购物车的列表用到了,

    功能:遍历一个可迭代对象,获取索引和对应的元素的

    1
    2
    3
    4
    5
    >>> seasons = ['Spring''Summer''Fall''Winter']
    >>> list(enumerate(seasons))
    [(0'Spring'), (1'Summer'), (2'Fall'), (3'Winter')]
    >>> list(enumerate(seasons, start=1))
    [(1'Spring'), (2'Summer'), (3'Fall'), (4'Winter')]

     17、eval(expressionglobals=Nonelocals=None)

    功能:把字典类型的字符串变成字典,把一个整数类型的字符变成int类型,或者加减乘除这种简单转换成表达式。

    1
    2
    3
    4
    >>> eval('1')  #字符类型转换成int类型
    1
    >>> eval("1+3/2*6")   #字符串转换为表达式
    10.0

    18、filter(functioniterable)

    功能:通过function过滤条件,去获取iterable中你想要的数据。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> res = filter(lambda n:n>5,range(10)) 
    >>> res     #得到一个迭代器
    <filter object at 0x0000000003093BE0>
    >>> for in res:
        print(i)
    6
    7
    8
    9

    19、map(functioniterable)

    功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> res = map(lambda n:n*2,range(5))  #n*2是处理方式
    >>> res
    <map object at 0x00000000031B4BE0>
    >>> for in res:
        print(i)
    0
    2
    4
    6
    8

    20、reduce(function,iterable)

    功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。

    1
    2
    3
    4
    5
    6
    7
    >>> from functools import reduce
    >>> res = reduce(lambda x,y:x+y,range(10))  #x+y的值赋给x,rang(10)中的每个元素赋给y
    >>> res
    45
    >>> res = reduce(lambda x,y:x*y,range(1,10)) #x*y的值赋给x,rang(10)中的每个元素赋给y
    >>> res
    362880

    21、float([x])

    功能:把一个浮点类型的字符串转换为浮点类型的数据。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> float('+1.23')
    1.23
    >>> float('   -12345 ')
    -12345.0
    >>> float('1e-003')
    0.001
    >>> float('+1E6')
    1000000.0
    >>> float('-Infinity')
    -inf

    22、format(value[, format_spec])

    功能:格式话字符串,前面字符串拼接讲过

    23、frozenset([iterable])

    功能:把集合变成一个不可变的集合

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> res = frozenset([1,2,3,4,3])
    >>> res
    frozenset({1234})   #去重的,不可变的集合
    >>> dir(res)   #没有可变的方法
    ['__and__''__class__''__contains__''__delattr__''__dir__''__doc__''__eq__',
    '__format__''__ge__''__getattribute__''__gt__''__hash__''__init__''__iter__''__le__',
     '__len__''__lt__''__ne__''__new__''__or__''__rand__''__reduce__''__reduce_ex__',
    '__repr__''__ror__''__rsub__''__rxor__''__setattr__''__sizeof__''__str__''__sub__',
    '__subclasshook__''__xor__''copy''difference''intersection''isdisjoint''issubset',
    'issuperset''symmetric_difference''union']

     注:set()是可变的

    24、globals()

    功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value

    1
    2
    3
    4
    5
    6
    7
    print(globals())
     
    #输出
    {'__spec__'None'__name__''__main__''__file__': 'D:/PycharmProjects/pyhomework
    /day4/内置函数/内置函数.py', '__doc__': None, '__package__': None, '__loader__':
    <_frozen_importlib_external.SourceFileLoader object at 0x0000000000695B00>,
    '__cached__'None'__builtins__': <module 'built

    注:可以判断一个文件中的变量是否存在,而globals()只能打印全局变量

    25、help([object])

    功能:显示对象的帮助信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> res = []  #定义一个列表
    >>> help(res)   #打印帮助信息
    Help on list object:
     
    class list(object)
     |  list() -> new empty list
     |  list(iterable) -> new list initialized from iterable's items
     
     |  Methods defined here:
     
     .....

    26、hex(x)

    功能:把一个数字转成16进制

    1
    2
    3
    4
    >>> hex(255)
    '0xff'
    >>> hex(10)
    '0xa'

    27、id(object)

    功能:返回对象的内存地址

    1
    2
    >>> id('zhangqigao')
    50993136   #'zhangqigao'这个字符串的内存地址

    28、input([prompt])

    功能:输入字符串

    1
    2
    3
    4
    >>> s = input('--> '
    --> Monty Python's Flying Circus  #输入的内容
    >>> s 
    "Monty Python's Flying Circus"

    29、int(x)

    功能:把其他数据类型强制转换成int类型

    1
    2
    >>> int('10')
    10

    30、iter(object[, sentinel])

    功能:把一个普通序列转成迭代器

    1
    2
    3
    with open('mydata.txt') as fp:
        for line in iter(fp.readline, ''):
            process_line(line)

    31、len(s)

    功能:计算序列或者字符串的长度

    1
    2
    3
    4
    >>> len("zhangqigao")  #字符串的长度
    10
    >>> len([1,2,3,4,5])  #列表的长度
    5

    32、list([iterable])

    功能:把其他序列转换成一个列表

    1
    2
    >>> list((1,2,3,4,5))   #把一个元组转换为一个列表
    [12345]

    33、locals()

    功能:打印局部变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def test():
        locals_var = 333
        print(locals())   #只打印局部变量
     
    test()
    print(globals().get("locals_var"))  #只能打印全局变量
     
    #输出
     
    {'locals_var'333}
    None

    34、max(iterable*[, keydefault])

    功能:返回列表重点额最大值

    1
    2
    >>> max([1,2,3,4,5])
    5

    35、min(iterable*[, keydefault])

    功能:返回列表中的最小值

    1
    2
    >>> min([1,2,3,4,5])
    1

    36、next(iterator[, default])

    功能:返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = iter([1,2])
    >>> next(a)
    1
    >>> next(a)
    2
    >>> next(a)
    Traceback (most recent call last):
      File "<input>", line 1in <module>
    StopIteration

    37、object

    功能:python中一切皆对象,每一个对象都有它的属性和方法

    38、oct(x)

    功能:把一个数转成8进制

    1
    2
    3
    4
    5
    6
    7
    8
    >>> oct(7)
    '0o7'
    >>> oct(8)
    '0o10'
    >>> oct(15)
    '0o17'
    >>> oct(16)
    '0o20'

    39、open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None)

    功能:文件操作,详细介绍:http://www.cnblogs.com/ManyQian/p/8075983.html

    40、pow(xy[, z])

    功能:返回多少次幂

    1
    2
    >>> pow(2,3)  #相当于2**3
    8

    41、print(*objectssep=' 'end=' 'file=sys.stdoutflush=False)

    功能:打印

    1
    2
    >>> print("zhangqigao")
    zhangqigao

    42、range(stop)、range(startstop[, step])

    功能:生成一个迭代器

    1
    2
    3
    4
    5
    6
    >>> range(5)
    range(05)
    >>> range(1,5)
    range(15)
    >>> range(1,5,2)
    range(152)

    43、reversed(seq)

    功能:反转一个序列,跟列表中的reversed方法是一样的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> reversed([1,2,3,4,5])
    <list_reverseiterator object at 0x00000000030A2588>  #变成一个迭代器
    >>> for in  reversed([1,2,3,4,5]):
    ...     print(i)
    ...    
    5
    4
    3
    2
    1

    44、round(number[, ndigits])

    功能:四舍五入

    45、set([iterable])

    功能:集合

    46、slice(stop),slice(startstop[, step])

    功能:序列的切片,方便多次反复切

    1
    2
    3
    4
    5
    >>> a = [1,2,3,4,5,6]
    >>> a[slice(1,3)]
    [23]
    >>> a[1:3]
    [23]

    47、sorted(iterable[, key][, reverse])

    功能:对一个序列进行排序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> sorted([5,3,2,6,8])
    [23568]
    >>> a = {1:5,6:8,3:6}
    >>> sorted(a)  #默认是按key排序
    [136]
    >>> sorted(a.items())  #按key排序
    [(15), (36), (68)]
    >>> sorted(a.items(),key = lambda x:x[1])  #按value排序
    [(15), (36), (68)]

    48、 str(object)

    功能:把其他数据类型转换为字符串

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

    49、sum(iterable[, start])

    功能:求一个列表的和,元组,集合,前提都是数字类型

    1
    2
    >>> sum([1,2,3,4,5,6])
    21

    50、tuple([iterable])

    功能:把其他序列转换为一个元组

    1
    2
    >>> tuple([1,2,3,4,5])
    (12345)

    51、type(object) 、type(namebasesdict)

    功能:查看一个对象的数据类型

    1
    2
    3
    >>> a = 'qianduoduo'
    >>> type(a)
    <class 'str'>

    注:一切数据类型都是有type()方法产生,它是一切数据类型的根。

    52、zip(*iterables)

    功能:zip中文意思是拉链的意思,把两个序列一一对应起来。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = [1,2,3,4]
    >>> b=['a','b','c','d']
    >>> for in zip(a,b):
    ...     print(i)
    ...    
    (1'a')
    (2'b')
    (3'c')
    (4'd')

     注:如果a的元素比b的多,则按照元素最少的那个来 

    PS:有些没有列出来,不是实在用不着,就是后面类的重点,后面还有单独的博客!

  • 相关阅读:
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业02
    软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
  • 原文地址:https://www.cnblogs.com/ManyQian/p/8708864.html
Copyright © 2020-2023  润新知