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

    一、定义

      python自动调用的,本来就有的函数。

      不依赖某个函数,即使用前不需要加.

    二、举例

      1.dir

    #dir 查看一个变量包含的所有方法名
    print(dir(int))
    
    m=[1,2,3,4]
    print('__next__' in dir(m))
    g=iter(m)
    print('__next__' in dir(g))

      2.collable

    #callable检测是否是个函数
    a=1
    print(callable(a))    #false
    print(callable(globals))   #true

      3.help

    #help返回所有的方法名字以及用法
    help(str)

      4.id和hash

    #内存相关
    #id 内存地址
    #hash 返回hash值
    #列表属于不可哈希的类型
    print(hash(1))      #不变,1
    print(hash('111'))   #会变
    print(hash((1,2,3,4)))    #不变,大数
    #在一个程序执行中,可哈希的类型返回的哈希值不会变。但是再执行一次就会变。
    #字典中key进行hash算法,得到一个数值即内存地址,存入value。所有key不可重复,而且必须可哈希

      5.input、print与end,sep

    #input每次执行就会必须输入值,得到回车然后结束。可以传入参数作为提示
    #print。end指定如何换行,默认
    。
    #sep指定多个值之间的分隔符,默认空格。file指定文件,如果指定就是将打印的东西写到文件中
    print('abcde',end='') print('abcde',end='') print('abcde',end='') print('') print(1,2,3,sep='|')

      6.exec、eval与compile

    #eval,exec,compile
    exec('print(1,2,3)')
    eval('print(1,2,3)')
    print(exec('1+2+3'))   #none  没有返回值,适合简单的流程控制
    print(eval('1+2+3'))   #6,用在明确知道代码是什么,并且比较安全的情况下,一般不用
    #exec,eval都可以执行字符串类型的代码,但是exec没有返回值
    
    #关于exec
    code='''
    for i in range(1,5):
        print('this is %s'%i)
    '''
    exec(code)
    
    #compile 将需要执行的代码翻译成字节码以执行,一次编译,可以多次执行
    #exec,流程类
    c=compile(code,'','exec')  #参数source,file
    exec (c)
    #eval,计算类
    code2='1+2 +3'  #无视空格
    c2=compile(code2,'','eval')  #参数source,file
    print(eval (c2)) #返回6
    #single,交互类
    code3='r=input("please input r:")'
    compile_3=compile(code3,'','single')
    #print(r)
    exec(compile_3)
    print(r)    #虽然报错但其实此时执行到这里就可以用r了,上一步exec执行之前不可以用

      7.几个简单内置函数

    #复数不能比较大小,5+2j(python用j,一般用i)
    #浮点数:无限循环小数,有限循环小数,因为科学技术法的小数点可以浮动
    #当小数点后特别长,会出现误差,而不是一般的四舍五入。因为计算机用的二进制转化
    #bin 二进制  oct 八进制  hex 十六进制
    #abs 返回绝对值       print(abs(-3))
    #divmod 除法  接收两个参数而返回值是商和余数    print(divmod(9,5))
    #round 做小数的精确, print(round(3.1415,2))   返回3.14
    #pow 求幂  print(pow(5,3,2))   5的3次方对2取余,两个参数就直接算幂pow(5,3)
    #sum 求和 最多两个参数,可迭代的里面是数也可以print(sum([1,2,3,4,5],4))
    #   start=4,其实也是加,但是不可以按关键字传参,只能按位置传参
    #min 求最小值  传参可以是可迭代的,也可以是不定长传参  print(min([1,2,5,4]))
    #   print(min(1,2,5,-4,key=abs))   计算按方法得到的结果再找最小值
    #max 求最大值

    #reversed和reverse区别 都是反转,reverse用后原先的已经变了,产生一个新的数据,reversed会保留原数据,产生一个新的迭代器
    #sort与sorted区别,都是排序。但sort会改变原来的数据,而sorted重新创建一个数据,比较占内存。
    #sli=slice(1,5,2) print(l[sli]) 切片,类似一种语法糖 #format 格式化输出,进制转换,计算,小数点精确,调整格式,左对齐等 # 左对齐 print(format('test','<20')) #bytes转换进制,其实一般读到内存都是unicode,用encoding转换 # print(bytes('ccc',encoding='gbk')) unicode转换成gbk # print(bytes('ccc',encoding='gbk').decode('gbk')) #又变成ccc # 网络通讯中,只能传二进制 , # 照片和视频也基本用二进制存储, # html爬取到的也是编码, #bytearray byte是个整体,将其作为列表进行操作,print(b_array[0])返回二进制的第一个的十进制数 # 修改时可以节省内存,但只能通过字符编码来修改 #memeryview 转换成utf-8的bytes可以进行切片,得到字节类型的切片,不占内存,但看到的只是字节,如果转换成字符串又占空间了

    #ord 转换成ascii码,如果是中文得到一个很大的数 #ascii 转换成ascii码,如果是中文得到一个类似二进制编码 #chr ascii转换成字符

    #
    repr print(repr('1'))返回有引号 print(repr(1))返回无引号 print('dcs is %r' %cccc) 原封不动的输出 #大括号括起来的都是无序的 #frozenset令集合不可变可以成为字典的key #len长度 #enumerate 计数
    #all()接收一个可迭代的值,看是否所有值都不为空 #any()接收一个可迭代的,看是否有某一个值是空,返回true



    *很重要的几个内置函数 #zip(几个可迭代的),得到一个zip object,这是可以迭代的。左右两边拉成对应的,如果长度不一样就后面的值不再出现。无序地拉 # 字典只能拉key #filter() 循环可迭代地类型。ret=filter(panduan_1,[1,2,3,4]),可以,将后面的可迭代的值全放入第一个的函数进行判断,筛选适合的值 # 传递函数名不加括号,函数可以非常复杂
    #map 使每个值执行一遍第一个参数代表的函数
  • 相关阅读:
    FlashInspector 【Firefox浏览器插件,flash分析工具】
    屌丝和木耳
    Flash剪贴板功能
    sql newid()随机函数
    SQL 视图
    向SQL Server 现有表中添加新列并添加描述.
    sql server 约束 查找
    创建与删除SQL约束或字段约束
    SQLServer
    利用排序规则特点计算汉字笔划和取得拼音首字母
  • 原文地址:https://www.cnblogs.com/lowislucifer/p/11290286.html
Copyright © 2011-2022 走看看