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

    Python提供了,许多内置的函数我们按 函数的作用来分类:

    一、作用域相关的内置函数(2个)

    (1)、globals() 更改全局变量

    (2)、locals()更改局并命名空间的变量(上一级)

    五、其他

    1、字符串类型代码的执行(3)

      (1)、eval()  将字符串类型得代码执行并返回结果

        1 print(eval(('1+2+3+4'))) 2 #输出10 

      (2)、exec()将字符串类型的代码执行 

    print(exec("1+2+3+4"))
    exec("print('hello,world')")
    #输出 None
    #hello,world

      (3)、compile将字符串类型的代码编译,代码对象能通过exec语句来执行或者eval()进行求值  

        1. 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。  

        2. 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。  

        3. 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。

    code1 = 'for i in range(0,3): print (i)'
    compile1 = compile(code1,'','exec')
    exec (compile1)
    #输出0,1,2

     2、输入输出

    (1)input,print

    1 test = input('请输入')#输入的内容显示在屏幕上
    2 print(test)#在屏幕上显示所打印的东西

    3、内存相关

    (1)、id

    a = 1
    print(id(a))
    #140705006216016 变量内存地址

    4、文件系统相关

    (1)open :打开一个文件 操作模式,r,读,W,写,a追加 每一种模式都可以用二进制的方式操作(rb,ab,wb)可以指定enconding比吗

    f = open('file_name','w',encoding='utf-8')
    #f 文件句柄,file_name文件名,W ,写模式,'utf-8'编码模式

    5、帮助

    (1)help

    # help()
    #在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出
    help(print)
    #加参数,此命令的相关文档

    6、查看参数所属类型的所有内置方法

    (1)dir

     1 print(dir(dict)) 2 #查看dict的内置方法,比如get,pop等等 

    二、和数字相关

    1、数据类型

    (1)bool 查看bool值类型

     1 bool()#布尔值 2 print(bool(0)) 3 #输出False 

    (2)int 整数

    a = 1.153
    print(int(a))
    # 输出1

    (3)float 浮点数

     1 a = 1 2 print(float(a)) 3 #输出1.0 

    (4)complex 复数,对数学研究的去看看,我对着不感兴趣

    2、进制转换(bin,oct,hex)

    1 num = 18
    2 #转换成二进制
    3 print(bin(num))
    4 #转换成八进制
    5 print(oct(num))
    6 #转换成16进制
    7 print(hex(num))
    8 #输出 0b10010,0o22,0x12   

    3、数学运算

    (1)abs 

    print(abs(-11))
    #11

    (2)divmod 返回(除,余)

    print(divmod(19,2))
    #19/2  输出 9,1 

    (3)round小数精确

     1 print(round(18.885465465,2)) 2 #精确至小数点后两位 ,四舍五入 3 #18.89

    (4)pow幂运算

     1 print(pow(3,3)) 2 #27 3的三次方 

    (5)sum求和

    lis = [1,23,43,5,21]
    print(sum(lis))
    #输出93

    注意:sum只能接收可迭代对象,不能sum(1,2,3,5)

    (6)max计算最大值

    lis = [1,23,43,5,21]
    print(max(lis))
    #输出43

    (7)min计算最小值

    lis = [1,23,43,-5,21]
    print(min(lis))
    #输出-5
    print(min(lis,key=abs))
    # 输出1 key可以传方法,也可以传函数 

     三、和数据结构相关

    1、序列

    (1)列表和元组[list,tuple] 

     (2) reversed() 反转序列 【本身有序的序列才可以反转】

     1 ret = reversed([1,2,3,4,5]) 2 for i in ret:#ret 是一个生成器 3 print(i) 

     注:

    1 ret = reversed('123adsaga')
    2 print(''.join(list(ret)))
    3 #拼接成一个新字符串

     (3)slice 切片

     1 lis = [1,2,3,4,5] 2 my_slice = slice(1,3,2) 3 print(lis[my_slice])#lis[1:3:2] 

    2、字符串

    (1)str 字符串强转

    (2)format格式化

    (3)bytes  把一个字符串转成二进制 

    1 t = 'sunjinyao'
    2 by = bytes(t,encoding='utf-8')#转换成UTF-8
    3 print(by.decode('utf -8'))#decode 转换回来
    4 #转换的编码必须一致

    (4)bytearray         #array == 数组 

     1 ret = bytearray('sunjinyao',encoding='utf-8')
     2 print(ret)
     3 #bytearray(b'sunjinyao')
     4 for i in ret:
     5     print(i)#打印的是字符编码
     6 '''117
     7 110
     8 106
     9 105
    10 110
    11 121
    12 97
    13 111
    14 '''
    View Code

    (5)ord 字符按照unicode转成数字

    (6)chr 把数字转换字符

     1 print(ord('a')) 2 print(chr(97)) 

    (7)ascii 字符串转ascii

      #print(ascii('你好'))

    (8)repr 

    1 print(repr(123))
    2 print(repr('123'))
    3 #在解释器里面2个是看不出来类型的,如果加repr就可以看出来

    3、数据集合

    (1)字典dict

      (2)set 集合

    (3)frozenset #定义不可变集合

     1 s = set('sunjinyao') 2 s_1 = frozenset(s) 3 print(s_1) (不可删除,不可增加)

    4、相关内置函数

    (1)len 计算长度 

    (2)enumerate

      将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 

    1 seq = ['one', 'two', 'three']
    2 for i, element in enumerate(seq):
    3     print(i, element)
    4 '''
    5 输出
    6 0 one
    7 1 two
    8 2 three
    9 '''

     (3)all 判断是否有bool值为False的值 # 接受可迭代对象

     (4)any 判断是否有bool值为True的值

     1 print(all([1,2,3,4,'']))#一个为假,都是假 2 print(any([1,2.0]))#有一个就为真, 

    (5)zip拉链

     1 lis_1 = (1,2,3,4,5)
     2 lis_2 = ('a','b','c','d')
     3 lis_3 = (9,8,7,6,5)
     4 ret = zip(lis_1,lis_2,lis_3)# 迭代器
     5 for i  in ret:
     6     print(i)
     7 '''
     8 (1, 'a')
     9 (2, 'b')
    10 (3, 'c')
    11 (4, 'd')
    12 '''

    (6) filter过滤  返回一个迭代器对象

    收两个参数,第一个为函数,第二个为序列

    1 def is_odd(n):
    2     return n % 2 == 1
    3 tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    4 newlist = list(tmplist)
    5 print(newlist)
    6 #[1, 3, 5, 7, 9]

    (7) map  #根据函数的功能对 序列进行操作

    1 def square(x) :            # 计算平方数
    2     return x ** 2
    3 ret = map(square,[1,2,3,4,5])  # 计算列表各个元素的平方
    4 print(list(ret))
    5 #[1, 4, 9, 16, 25]

    (8) sorted 排序

     1 lis = [15,6,4,32,5,57] 2 print(sorted(lis))#排序。默认从小到大 

    #sorted(lis,reverse=True)  从大到小

  • 相关阅读:
    常用js脚本
    lotus支持的java版本
    解决传递中文参数乱码问题
    Lotus的金额大小写转换
    lotus designer 8.5中创建JAVA代理
    一步一步带你进入Java世界(一)_Java环境配置
    实例 XPages 开发一个通用的 Dojo Tree 风格定制控件
    LOTUS中B/S开发初学者问题收集
    Lotus问题收集
    R6中文参数乱码解决
  • 原文地址:https://www.cnblogs.com/sunjinchao/p/10938074.html
Copyright © 2011-2022 走看看