zoukankan      html  css  js  c++  java
  • Python函数Day5

    一、内置函数

    globals()    将全部的全局变量以字典的形式返回

    locals()      将当前作用域的所有变量以字典的形式返回

    a = 1
    b = 2
    def func(x):
        c = 3
        d = 4
        print(locals())                 # 当前作用域的所有变量以字典的形式返回
        print(globals())                # 全局所有的变量以字典的形式返回
    func(1)
    
    
    # 结果
    {'d': 4, 'c': 3, 'x': 1}
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000221481C87B8>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/骑士计划1期/Day13/review.py', '__cached__': None, 'a': 1, 'b': 2, 'func': <function func at 0x00000221465A2E18>}

      

    eval()    把字符串的引号去除,执行字符串的内容并返回

    s = '1 * 2 * 3'
    print(eval(s),type(eval(s)))
    
    # 结果
    6 <class 'int'>

     

    exec()    执行字符串里的代码,但不返回结果

    s = '''
    for i in range(3):
        print(i)
    '''
    exec(s)
    
    # 结果
    0
    1
    2

    总结:字符串里的结果,需要得到结果就用eval

       字符串里是没结果或者是代码流,就用exec

       但是两者都不建议使用,除非字符串不做任何的修改

     

    compile()    函数将一个字符串编译为字节代码,通过exec或者eval来执行

      语法:compile(source, filename, mode[, flags[, dont_inherit]])

      source -- 字符串或者AST(Abstract Syntax Trees)对象。。

      filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
      mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
      flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
      flags和dont_inherit是用来控制编译源码时的标志

    s = "for i in range(3):print(i)"
    com = compile(s,'','exec')      # 编译为直接代码对象
    exec(com)
    
    # 结果
    0
    1
    2

     

    input()    函数接受一个标准输入数据,返回为 string 类型

      用户输入的内容都是str类型,一般后面要添加strip() 去除两端空格

    >>>a = input("input:")
    input:>? 123
    >>>type(a)
    <class 'str'>

     

    print()    打印内容

      语法:print(self, *args, sep=' ', end=' ', file=None)

      sep=''    用来分隔,分割符,默认是空格

           end=' '    打印结尾内容,默认是换行符

      file=None    写入的文件对象,默认是None
      

    print('h','e','l','l','o','',sep='-',end='')
    print(123)
    
    # 结果
    h-e-l-l-o-123

    注意:print() 能接收可变参数*args,不能接收关键字参数**kwargs

          print() 能打印*args,不能打印**kwargs

    print(*[1,2,3])         # 加*将列表打散
    print([1,2,3])
    
    # 结果
    1 2 3
    [1, 2, 3]

     

    id()    # 获取对象的内存地址

      字符串的ID是等长度的

    print(id(1))
    print(id('1'))
    print(id('abc'))
    
    # 结果
    1954570464
    1585777572976
    1585778570328

     

    hash()    # 获取对象的哈希值,

      只针对不可变数据类型,可变数据类型是不可哈希的,哈希可变数据类型会报错。

    print(hash('abc'))
    print(hash('qwertyuioplkjhgfdsazxcvbbnm'))
    
    # 结果
    5828273204391538033
    7013223571618619052

     

      整型的哈希值跟值一致

    print(hash(1))
    print(hash(10000))
    
    # 结果
    1
    10000

     

    open()    函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写

      语法:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

      详情查看点击链接

      

    __import__  函数用于动态加载类和函数 

     

    help()     函数用于查看函数或模块用途的详细说明 

    help(list)
    
    # 结果
    class list(object)
     |  list() -> new empty list
     |  list(iterable) -> new list initialized from iterable's items
     |  
     |  Methods defined here:
     |  
     |  __add__(self, value, /)
     |      Return self+value.
     |  
     |  __contains__(self, key, /)
     |      Return key in self.
     |  
     |  __delitem__(self, key, /)
     |      Delete self[key].
    
    ......
    View Code

      

    callable    函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

    print(callable('abc'))
    print(callable(str))
    
    # 结果
    False
    True

     

    dir()       函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

    print(dir())
    
    # 结果
    ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
    print(dir(str))
    
    # 结果
    ['__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循环总

    for i in range(3):
        print(i)
    
    # 结果
    0
    1
    2

      python2版本:range(3) -----> [0,1,2] 列表

              xrange(3)-----> 迭代器

      python3版本:range(3) -----> range(0,3)  可迭代对象

     

    next()  调用__next__()方法,返回迭代器的下一个项目

      语法:next(iterator, default=None)

     

    iter()    调用__iter__()方法,函数用来生成迭代器

      语法:iter(source, sentinel=None)

     

    bool()    函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。

      可以用于and or 的条件判断

    b = bool(1 > 3 and 5 < 6 or 7 > 2 and 9 > 0 or 1 > 6)
    print(b)
    
    # 结果
    True

     

      空参数返回False

    print(bool())
    
    # 结果
    False

      

    int()

      用途:① 将字符串变成数字

    a = int('123456')
    print(a,type(a))
    
    # 结果
    123456 <class 'int'>

     

      ② 取整

    print(int(5.938576))
    
    # 结果
    5

     

      ③ base关键字,base代表是进制,前面的内容必须是该进制的数字;将对应进制转换为十进制数

    a = int('1100',base=2)
    print(a)
    
    # 结果
    12

     

    float()  函数用于将整数和字符串转换成浮点数。

    print(float(1))
    print(float('999'))
    
    # 结果
    1.0
    999.0

     

    complex    函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。(一般用于科学计算领域)

    print(complex(1,2))
    print(complex('1'))
    
    # 结果
    (1+2j)
    (1+0j)

     

    bin()    将十进制数转化为二进制,0b代表二进制

    oct()    将十进制数转化为八进制,0o代表二进制

    hex()    将十进制数转化为十六进制,0x代表二进制

    print(bin(999))
    print(oct(999))
    print(hex(999))
    
    # 结果
    0b1111100111
    0o1747
    0x3e7

     

    abs()    返回数字的绝对值

           一般与排序、比较大小相结合

    >>>abs(-99)
    99

     

    divmod()  计算除数与被除数的结果,返回商和余数的元组

          一般用于项目的分页功能

    >>>divmod(100,9)
    (11, 1)

     

    round()    保留浮点数的小数位数(四舍五入)

            无第二参数默认不保留小数位

    >>>round(3.14159265358979323846,6)
    3.141593
    >>>round(3.14159265358979323846)
    3

     

    pow()    返回 xy(x的y次方) 的值,对第三个参数取余

    >>>pow(2,3)
    8
    >>>pow(2,3,3)        # 2的3次幂的结果取3取余
    2

     

    sum()    对可迭代对象求和

            语法:sum(iterable,startnum初始值)    在第二个参数设置初始值

    >>>sum([1,2,3])
    6
    >>>sum([1,2,3],100)        # 第二个参数可设置初始值,默认0
    106    

     

    min()    求可迭代对象的最小值

    max()      求可迭代对象的最大值

            语法:min(*args, key=None)   

            key关键字是可调用的对象,例如函数名,将每个元素当参数调用到函数里,默认是按每个元素的第一个值排大小

    >>>min([-1,-2,1],key=abs)
    -1
    dic = {'a':1,'b':2,'c':3}
    def func(x):            # 定义函数,字典的键值对元组传入
        return x[1]         # 获取元组的索引返回比较
    
    a = (min(dic.items(),key=func))        # 将字典的键值对形成元组
    print(a)
    
    # 结果
    ('a', 1)

    步骤:①它会将iterable的每一个元素当作函数的参数传进去

    ② 它会按照函数返回值来比较大小

    ③ 函数会返回的是遍历的元素

  • 相关阅读:
    在光驱按钮不好使用时如何关闭光驱门
    将24位及32位图像数据保存到位图中
    VIM代码自动完成
    加载TLBB场景(一)
    创建异形窗口
    Windows快速关机与重启
    Direct3D9应用CEGUI
    利用GDI+加载图片
    ubuntu MP3乱码解决
    asp.net动态生成控件及访问控件
  • 原文地址:https://www.cnblogs.com/st-st/p/9511722.html
Copyright © 2011-2022 走看看