zoukankan      html  css  js  c++  java
  • DAY13 内置函数-1

    内置函数

       内置函数就是python提供给我们的函数,可以随时拿来使用。截止到python3.6.2,一共有68种内置函数。按照功能,可以分为以下几类:

       作用域相关的:2种。  迭代器/生成器相关的:3种。   基础数据类型相关的:38种。  反射相关:4种。  面向对象相关的:9种。  其他:12种。

    作用域相关

       globals():以字典的形式返回当前位置的所有全局变量。

    name = 'he'
    print(globals())
    >>>
    {'__name__': '__main__', '__doc__': 'locals():以字典的形式返回当前位置的局部变量', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000244F0078630>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/python_training_s1/day13/builtin_func.py', '__cached__': None, 'name': 'he'}
    

       locals():以字典的形式返回当前位置的所有局部变量。

    b =2
    def func():
        x = 1          #函数中的变量才是局部变量
        print(locals())
    func()
    >>>
    {'x': 1}
    

    其他相关

       字符串类型代码的执行:不建议使用。

          eval():执行字符串类型的代码,并返回结果。

          exec():执行字符串类型的代码,但是没有返回值。

          compile():编译字符串类型的代码,使得其能够exec来执行或者可以通过eval来取值。

    #eval()
    s1 = '1+2+3'
    print(eval(s1),type(eval(s1)))
    >>>
    6 <class 'int'>             #处理字符串类型的代码,并返回结果,而且还会转换成结果对应的数据类型。
    
    #eval()例子二
    s2 = "{'name':'he'}"
    print(eval(s2),type(eval(s2)))
    >>>
    {'name': 'he'} <class 'dict'>
    
    
    #exec():执行字符串类型的代码,但是没有返回值。主要用于处理代码流
    s1 = '1+2+3'
    print(exec(s1))
    >>>
    None        #exec()无返回值,所以为None
    
    s3  = '''for i in range(3):print(i)
    '''
    exec(s3)
    >>>
    0
    1
    2
    

        输入输出相关:

            input():用户输入,内容都转换为字符串类型。

           print() : 输出命令

    #input()
    name = input('请输入你的姓名:')      #用户输入的内容都被赋值给name
    print(name)                # 变量的类型都是字符串类型
    
    
    #print(self, *args, sep=' ', end='
    ', file=None)
    '''                 
    sep:   打印多个值之间的分隔符,默认为空格
    end: 每一次打印的结尾,默认为换行符
    file: 默认是输出到屏幕,如果设置为文件句柄,重定向输出到文件中
    '''
    
    print(666,end='')  #默认print有一个换行换行符
    print(777)
    >>>
    666777
    
    
    print(1,2,3,4,5,sep='|')   #seq定义连接符,默认是空格
    >>>
    1|2|3|4|5
    
    f = open('log.txt','w',encoding='utf-8')
    print('i love python',file=f)  #类似重定向功能,把内容重定入文件
    f.close()
    

       内存相关:

        hash():返回一个可哈希变量的哈希值,不可哈希的变量使用会报错。

         id():返回一个对象的内存地址。

    # id():返回一个对象的内存地址
    s1 = 'he'
    print(id(s1))
    >>>
    2096407672512
    
    
    #hash() 
    print(hash('name'))
    print(hash('name1'))              #无论字符串长度多长,都是返回一定长度的哈希值
    print(hash(1))                    #对于数值类型,哈希值就等于数值本身
    print(hash(100))
    print(hash(1000))
    >>>
    -5080043217602082193               
    -8127996159439637239
    1
    100
    1000
    

       文件操作类型:

        open():打开文件,返回一个文件句柄。

       模块操作相关:

        __import__ : 用于动态加载模块和类。

    #导入模块
    import time
    
    #使用__import__导入模块
    os = __import__('os')
    print(os.path.abspath('.'))
    >>>
    E:python_training_s1day13
    

        调用相关:

        callable():判断一个对象是否可调用

    name = 'he'
    def func():
        pass
    print(callable(name))          #普通变量不可调用
    print(callable(func))            #截止到目前的学习中,函数是可以被调用的
    >>>
    False
    True
    

      查看内置属性:

         dir():查看对象的所有方法

    s1 = 'abc'
    print(dir(s1)) #查找字符串的所有方法
    >>>
    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', 
    '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
    '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs',
    'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', '
    join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
    'title', 'translate', 'upper', 'zfill']

     

    迭代器/生成器相关

        range():可创建一个整数对象,一般用在 for 循环中。python2.x中直接返回列表,python3.x中返回的是range对象。

        next():内部调用的是__next__()方法,返回迭代器的下一个对象。

        iter():内部调用的是__iter__()方法,用来将一个可迭代对象转换为迭代器。

    #range()
    for i in range(1,10):
        print(i)
    
    
    #next():返回迭代器的下一个元素
    g1 = (i for i in range(1,10))
    print(next(g1))
    print(next(g1))
    >>>
    1
    2
    
    
    #iter():把一个可迭代对象转换为迭代器。
    
    from collections import Iterable,Iterator
    l1 = [1,2,3]
    print(isinstance(l1,Iterable))
    
    iter_l1 = iter(l1)
    print(isinstance(iter_l1,Iterator))
    

    基础数据类型相关

       数据类型:

         bool(): 用于将给定的参数转换为布尔型,如果没有参数,则返回False.

         int():  用于将一个字符串或数字转化为整型。

          float():用于将字符串或者整数转化为浮点型。

          complex():复数。

       数字之进制转换相关:

         bin():把十进制转换为二进制。

         oct():把十进制转换为八进制

         hex():把十进制转换为十六进制。

       数据运算相关:

         abs():返回绝对值.

    print(abs(100))
    print(abs(-100))
    >>>
    100
    100
    

         divmod():计算除数与被除数的商和余数,把(商,余数)作为一个元组返回。

    print(divmod(10,3))
    >>>
    (3, 1)
    

        round():保留浮点数的小数位,四舍五入,默认取整。

    print(round(3.1415926,4))
    print(round(3.1415926))
    >>>
    3.1416
    3
    

       pow():求x的y次幂,如果有第三个参数就是,为x的y次幂对z的取余。

    print(pow(2,5))            #求2的5次方
    print(pow(2,5,5))         #求2的5次方对5求余    
    >>>
    32
    0
    

      sum(): 对可迭代对象进行求和。可以传入第二个参数,当做起始值。

    l1 = [1,2,3,4,5]
    print(sum(l1))           #对l1进行求和,默认从0开始
    print(sum(l1,100))    #对l1进行求和,从100开始
    >>>
    15
    115
    

      min():返回可迭代对象中的最小值。可以传入key值,按照函数规则,返回最小值。

    #min返回可迭代对象的最小值
    l1 = [2,1,3,4,5]
    print(min(l1))
    >>>
    1
    
    
    #传入key参数,按照自定义的函数规则,返回最小值。
    # 第一步:先将iterable的每一个元素都当做函数的参数传进去。
    # 第二步:按照返回值去比较大小。
    
    l1 = [('alex',1000),('taibai',18),('wusir',500)]
    def func(x):
        return x[1]
    print(min(l1,key=func))
    >>>
    ('taibai',18)
    

      max():同上,返回可迭代对象中的最大值。可以传入key值,按照函数规则,返回最大值。

         

        

        

            

  • 相关阅读:
    1295: [SCOI2009]最长距离
    [vijos p1028] 魔族密码
    HJ浇花
    1060: [ZJOI2007]时态同步
    1816: [Cqoi2010]扑克牌
    1800: [Ahoi2009]fly 飞行棋
    4300: 绝世好题
    1237: [SCOI2008]配对
    1801: [Ahoi2009]chess 中国象棋
    1189: [HNOI2007]紧急疏散evacuate
  • 原文地址:https://www.cnblogs.com/hebbhao/p/9512283.html
Copyright © 2011-2022 走看看