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

    内置函数一

     python官网源代码:https://docs.python.org/2/library/functions.html

    abs() 绝对值
    all() 当all里面的元素全部为真,返回结果为True ; 当all里的元素有一个为假,返回结果为False
    any() 当any里的元素任意一个为真时,返回True;
    ascii() 当执行这个函数时,会自动调用某个对象__repr__方法,并且返回__repr__的return值
    bin() 把一个十进制转换二进制
    oct() 把一个十进制转换八进制
    hex() 把一个十进制转换十六进制
    bool() 返回函数里的对象是否为True或者False  (以下常见的False对象:0,None,"",[],())
    bytes() 将字符串转换成字节类型, 转换格式为:bytes(只要转换的字符串,按照什么编码)
       
    callable() 判断参数值是否能被执行调用
    chr() ascii码的对应关系:ascii码转成字符转
    ord() ascii码的对应关系:字符转成ascii码
    classmethod() 类别的方法,面向对象中会讲
    compile() 把一个字符串编译成一个python代码,然后通过exec()执行compile编译好的python代码
    exec() 执行python代码,可以接收转换好了的python代码,或者将字符串转换成python代码;(但是没有返回值)
    eval() 可以执行表达式,并且可以获取返回值;  eg:s = '8*8'    a= eval(s)  print(a) 等于64 &    s = 'print(123)'  a= eval(s)  print(a) 等于123
    enumerate() 显示元素的索引
    complex() 处理负数。
    delattr() 反射,delattr,getattr,setattr,hasattr以后会讲
    dir() 快速获取对象下面有什么方法
    divmod() 获取商值,并获取余数,返回元祖;(可用于分页表达)
    isinstance() 判断对象是否归属于某个类的实例,例如 s = "alex"  r= isinstance(s,str)  print(r)  #True  'alex'是个字符串,是属于str,所以返回一个True
    filter() 过滤元素。格式:ret = filter(函数,可迭代的对象)  循环第二个可迭代的对象,然后逐个传值到第一个函数里,得出的结果返回给ret;
    map() 过滤元素。与filter类似,区别: map将函数返回值,添加到结果中(无论真假)。filter函数体返回True,将元素添加到结果中。(如果是false,则丢弃)
    float() 转换为浮点型
    globals() python在执行代码的时候,会把所有的全局变量放在这里
    locals() python在执行代码的时候,会把所有的局部变量放在这里
    hash() 将对象转换成hash值,用于字典的key存入到内存中。
    id() 查看内存地址
    object() 所有类的父类
    issubclass 查看某个类是不是这个类的子类
    len() 查看长度
    max() 最大值
    min() 最小值
    sum() 求和
    round() 四舍五入
    pow() 返回 xy(x的y次方) 的值。
    range() 自定义数字范围
    repr() 自动调用字符串下的__repr__的方法
    open() 打开文本文件
    print() 打印显示
    input() 等待用户输入
    tuple() 转换成元祖
    type() 转换成类型
    set() 转换集合
    list() 转换成列表
    dict() 转换成字典
    int() 转换整数
    str() 将字节转换成字符串,用什么样的字符集转成字节,就用什么字符集转成字符串,
    vars() 当前模块都有那些变量
    zip() 依次取出每一个数组的元素,然后组合   例如:zip([1,2,3],['a','b','c'],[4,5,6])       [(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]   如果没有对称的就不做匹配

     

     内置函数的练习

      1 #!/usr/bin/env python
      2 # -*- coding:utf8 -*-
      3 # Author:Dong Ye
      4 
      5 #abs()绝对值:
      6 n = abs(-1)
      7 print('n-->',n)
      8 # n--> 1
      9 
     10 
     11 #所有为真,才为真
     12 n1 = all([1,2,3,4,5])
     13 print('n1-->',n1)
     14 # n1--> True
     15 
     16 
     17 n2 = all([1,2,3,4,5,0])
     18 print('n2-->',n2)
     19 # n1--> True
     20 # n2--> False
     21 
     22 
     23 #任何一个为真,就为真
     24 n3 = any([1,0,"",[],None])
     25 print('n3-->',n3)
     26 # n3--> True
     27 
     28 
     29 #十进制转换二、八、十六进制:
     30 print('二进制-->',bin(5))
     31 print('十进制-->',oct(5))
     32 print('十六进制-->',hex(5))
     33 # 二进制--> 0b101
     34 # 十进制--> 0o5
     35 # 十六进制--> 0x5
     36 
     37 
     38 #布尔值:
     39 print('为假-->',bool([]))
     40 print('为真-->',bool(-1))
     41 # 为假--> False
     42 # 为真--> True
     43 
     44 #字符串转字节:
     45 b = bytes('李杰',encoding='utf-8')
     46 print('b-->',b)
     47 
     48 b1 = bytes('李杰',encoding='gbk')
     49 print('b-->',b1)
     50 
     51 
     52 #字节转换成字符串:
     53 s = str(bytes('李杰',encoding='gbk'),encoding='gbk')
     54 print('s-->',s)
     55 #字符串用什么样的编码变成字节了,也要用同样的编码转成字符串。
     56 
     57 
     58 
     59 #判断参数是否能被调用执行:
     60 def f1():
     61     pass
     62 
     63 f2 = 123
     64 
     65 c1  = callable(f1)
     66 c2  = callable(f2)
     67 print('callable(f1)-->',c1)
     68 print('callable(f2)-->',c2)
     69 # callable(f1)--> True
     70 # callable(f2)--> False
     71 
     72 
     73 
     74 
     75 #字符与ascii码的转换:
     76 c = chr(65)
     77 print(c)
     78 
     79 o = ord("a")
     80 print(o)
     81 
     82 # A
     83 # 97
     84 
     85 
     86 
     87 
     88 #以下三个函数是一组:
     89 # compile() :把一个字符串编译成一个python代码
     90 # eval():
     91 # exec():执行一个python代码
     92 
     93 '''
     94 python解析器要打开文件的步骤:
     95 1、加载:要读取文件内容open,将字符串加载到内存
     96 2、编译:python内部把一个字符串->编译成一个特殊的代码 & 编译成python代码
     97 3、执行:执行代码
     98 
     99 注意:
    100 编译有三种模式:single  eval  exec
    101 single:把代码编译成单行的python程序
    102 eval:把代码编译成表达式,并且有返回值
    103 exec:把代码编译成python代码一模一样的东西
    104 
    105 
    106 用途:有个exel,里面有列如下:
    107 主机名     IP        内存
    108 c1.com   1.1.1.1    8*8
    109 c1.com   1.1.1.1    6*8
    110 
    111 需求:如果想求IP为1.1.1.1的总内存多大
    112 分析:
    113 这时会就需要逐行读取内存列,然后通过计算8*8得出总内存结果。
    114 当处理exel的时候,是一行一行的进行读取。
    115 当读取到内存列的时候,应该是一个字符串,那问题来了?
    116 怎么样让字符串8*8进行运算呢?
    117 s = '8*8'
    118 可以使用eval(s)函数,将字符串变成python表达式,这样就鞥查出结果。
    119 
    120 
    121 
    122 参考视频教程:内置补充函数(二)
    123 '''
    124 
    125 #compile()将字符串编译成python代码
    126 s = "print(123)"
    127 #先编译:
    128 #将字符串编译成python代码
    129 r = compile(s,"<string>","exec")
    130 print(r)
    131 #exec执行python代码,可以接收代码或者字符串(但是没有返回值)
    132 exec(r)
    133 # <code object <module> at 0x00000000009E5C90, file "<string>", line 1>
    134 # 123
    135 
    136 
    137 
    138 #eval()可以执行表达式,并且可以获取返回值:
    139 s = '8*8'
    140 a = eval(s)
    141 print(a)
    142 #64
    143 
    144 
    145 
    146 #获取商值,并获取余数,返回元祖;(可用于分页表达)
    147 d1,d2 = divmod(100,10)
    148 print(d1,d2)
    149 #10 0
    150 
    151 
    152 
    153 '''
    154 对象和类的关系:
    155 对象是类的实例:
    156 例如:
    157 汽车是类,对象是大汽车,小汽车,电动车等
    158 人类是类,对象有大人,小孩,男人,女人等
    159 '''
    160 s="alex" #创建了个对象,对象就是s
    161 r= isinstance(s,dict)
    162 r1 = isinstance(s,str)
    163 print(r)
    164 print(r1)
    165 # False
    166 # True
    167 
    168 
    169 s1 = [1,2,3]
    170 r2 = isinstance(s,list)
    171 print(r2)
    172 # False
    173 
    174 
    175 #filter  map
    176 #需求:无filter,所有大于22的值取出,小于22的值放弃:
    177 def f1(args):
    178     result = []
    179     for item in args:
    180         if item > 22:
    181             result.append(item)
    182     return result
    183 
    184 li = [11,22,33,44,55,66]
    185 ret = f1(li)
    186 print('没有filter取大于22的值-->',ret)
    187 #显示结果:
    188 #没有filter取大于22的值 [33, 44, 55, 66]
    189 
    190 
    191 
    192 #有filter(函数,可迭代的对象)的取值:
    193 def f2(a):
    194     if a > 22:
    195         return  True
    196 
    197 li = [11,22,33,44,55,66]
    198 ret = filter(f2,li)
    199 print('有filter取大于22的值-->',list(ret))
    200 #显示结果:
    201 # 有filter取大于22的值--> [33, 44, 55, 66]
    202 
    203 
    204 #格式解释:
    205 # ret = filter(函数,可迭代的对象)
    206 # 1、先for循环第二个参数(可迭代的对象)。
    207 # 2、在每一次循环的内部又会执行第一个参数(函数体)。
    208 # 3、执行第一个参数拿到一个结果,如果为真;
    209 # 4、则会把该元素添加到列表里,并返回结果;
    210 # 5、可迭代的对象:列表,元祖,字典等
    211 
    212 
    213 #filter与lambda表达式混用:
    214 li = [11,22,33,44,55,66]
    215 ret = filter(lambda a: a > 33,li)
    216 print(list(ret))
    217 
    218 
    219 
    220 #map的使用方式:
    221 #需求:
    222 #1、无map函数时,使每一个元素+100
    223 li = [11,22,33,44,55,66]
    224 def f3(args):
    225     result = []
    226     for i in args:
    227         result.append(100+i)
    228 
    229     return result
    230 
    231 ret = f3(li)
    232 print(list(ret))
    233 #显示结果:
    234 #[111, 122, 133, 144, 155, 166]
    235 
    236 
    237 
    238 #2、map内置函数:
    239 #格式:map(函数,可迭代的对象)
    240 li = [11,22,33,44,55,66]
    241 
    242 def f4(args):
    243    return  args+100
    244 
    245 result = map(f4,li)
    246 print(list(result))
    247 
    248 
    249 #3、map+lambda表达式:
    250 result = map(lambda a:a+100,li)
    251 print(list(result))
    252 
    253 #显示结果:
    254 # [111, 122, 133, 144, 155, 166]
    255 # [111, 122, 133, 144, 155, 166]
    256 # [111, 122, 133, 144, 155, 166]
    257 
    258 
    259 #####################两个函数区别##################
    260 #filter:函数体返回True,将元素添加到结果中
    261 #map:将函数返回值,添加到结果中
    262 ######################################
    263 
    264 
    265 
    266 #gloabls() & local()
    267 #例如:
    268 name = 'alex'
    269 def show():
    270     a = 123
    271     b = 123
    272     print(locals())
    273     print(globals())
    274 
    275 show()
    276 
    277 #显示结果:
    278 # {'a': 123, 'b': 123}
    279 # {'__package__': None, 'a': 64, '__builtins__': <module 'builtins' (built-in)>, 'ret': [111, 122, 133, 144, 155, 166], 'name': 'alex', '__doc__': None, '__file__': 'D:/软件/pychar/data/s13/day3/内置函数.py', 'r2': False, 'f2': <function f2 at 0x0000000000A5C378>, 'c2': False, 's1': [1, 2, 3], 'd2': 0, 'c': 'A', '__spec__': None, 'n2': False, 'f4': <function f4 at 0x0000000000A5C7B8>, '__cached__': None, 'result': <map object at 0x0000000000A79A20>, 'f3': <function f3 at 0x0000000000A5C840>, 'li': [11, 22, 33, 44, 55, 66], 's': 'alex', 'o': 97, 'b1': b'xc0xeexbdxdc', 'n3': True, 'r': False, 'f1': <function f1 at 0x0000000000A5C6A8>, 'b': b'xe6x9dx8exe6x9dxb0', 'r1': True, 'c1': True, 'show': <function show at 0x0000000000A5C950>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000000678A58>, '__name__': '__main__', 'd1': 10, 'n1': True, 'n': 1}
    280 #注意python在执行全局变量时,有很多的是内部定义好的全局变量。
    281 
    282 
    283 s = 'u1'
    284 print(len(s))
    285 #2
    View Code
  • 相关阅读:
    t
    bert4keras
    embeding应用-airbnb推荐
    The Neural Autoregressive Distribution Estimator
    3.redis desktop manager--redis 可视化工具安装及使用
    Day06作业(postman接口测试)
    DRF学习day01(web应用模式,api接口,RESTful API规范,序列化,Django Rest_Framework)
    restFul接口设计规范
    Vue学习之荏苒资讯项目(一)
    微信小程序开发四:Promise的使用,解决回调地狱
  • 原文地址:https://www.cnblogs.com/abobo/p/8035869.html
Copyright © 2011-2022 走看看