码迷,mamicode.com
首页 > 编程语言 > 详细

python_day4内置函数补充

时间:2016-09-07 11:05:53      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:python

之前内容回顾

1、python基础

2、基本数据类型:str、dict、list、tuple、set..

   s = "alex" => str # s是创建的一个对象,所有功能被保存在其对应的str的类里

    对象是类的实例

    isinstance(s, str) ==> True

3、函数式编程

    函数定义

    内置函数

        文件处理

        注意:

   li = [11,22,33,44]

   def f1(arg):     #此函数没有返回值,默认返回None

       arg.append(55)


   li = f1(li)      # li被重新赋值了,而其返回值为None

   print(li)# 如果li没有被重新赋值,则li == [11,22,33,44,55]

4、其他

    三目运算

    lambda表达式

内置函数补充

callable()    # 查询是否可以被调用

chr() # 将数字转换成对应的ascii码

ord() # 将ascii码转换成数字

abs() # 取绝对值

bool()  # 取布尔值

  # 0, None, "", [], {}, () 

  # 以上布尔类型值都是False(注意双引号里面没有空格,列表跟字典里面无所谓)

bin()   #十进制转二进制

oct()   #十进制转八进制

hex()   #十进制转十六进制


utf-8 一个汉字:三个字节

gbk 一个汉字:两个字节


# 字符串转换成字节类型

# bytes("要转换的字符串",encoding="某种编码格式")

python file.py

执行文件过程:

    1、读取文件内容open,string(字符串形式)到内存

    2、python,把字符串 -> 编译 =》特殊代码

    3、执行代码


    >>> s = "print(123)"#字符串

    >>> r = compile(s, "<string>", "exec")#将字符串编译成python代码

                             #有几种模式single, eval ,exec

    >>> print(r)                 #code

    <code object <module> at 0x0000018F219D2660, file "<string>", line 1>

    >>> exec(r)        #执行

    123

    >>>


    #将字符串编译成python代码

    compile()


    #执行python代码,接收:代码(直接执行)或者字符串(先编译再执行);虽然很牛逼,但没有返回值

    exec("7+8+9")


    #执行表达式,并且获取结果(有返回值

    ret = eval("7+8+9")

    print(ret)

dir(list)    #快速查看对象提供了哪些功能

help(dir)    #帮助读源码的


#共97条数据,每页显示10条,需要多少页

    r = divmod(97, 10)

    print(r)      # (9, 7) 商9余7

    # r[0] == 9 && r[1] == 7

    #可以这么写:

    n1, n2 = divmod(97, 10)


s = "alex"#用于判断,对象是某个类的实例

isinstance(s, str) ==> True

ret = filter(函数, 可迭代的对象)

   # filter内部会循环被迭代的对象,然后执行函数,符合条件的元素就被添加到ret中

    # 函数返回值为True,将元素添加到结果中!!!

   >>> a = [11,22,33,44]

   >>> ret = filter(lambda x:x>33, a)

   >>> print(ret)

   <filter object at 0x000001CE9A862518>

   >>> print(list(ret))

   [44]


ret2 = map(函数,可迭代的对象)

   # map将函数的返回值添加到结果中!!!

   >>> a = [11,22,33,44]

   >>> ret2 = map(lambda x:x>11, a)#lambda返回值为bool类型

   >>> print(list(ret2))

   [False, True, True, True]

   >>> ret2 = map(lambda x:x+11, a)#lambda返回值为int类型

   >>> print(list(ret2))

   [22, 33, 44, 55]

   >>>

len()在python2.7跟python3.0里面的不同:

>>> li = "理解"        #python3里面,中文默认是字符来算的

>>> len(li)

2

>>> b = bytes(li, encoding=‘utf-8‘)    #可以显式的转换成字节

>>> len(b)

6

>>>

sum([11,22,33,44])

max([11,22,33,44])

min([11,22,33,44])

pow(2, 10)#乘方 =》1024

round(1.2)#四舍五入


li = [11,22,3,4]

li.reverse() 《===》reversed(li) #内部执行li.reverse()方法

li.sort() 《===》 sorted(li)

zip():  #仅限于python3..

>>> l1 = ["Your", 11, 22]

>>> l2 = ["are", 22, 33, 55]

>>> l3 = ["beautiful", 33, 44]

>>> r = zip(l1, l2, l3)

>>> print(list(r)) #依次取出每个数组的元素进行组合;如果元素长度不一致会被砍到一样长

[(‘Your‘, ‘are‘, ‘beautiful‘), (11, 22, 33), (22, 33, 44)]

>>> print(list(r)) #为啥第二此打印会变成空列表??

[]

>>> a, b, c = zip(*[(‘Your‘, ‘are‘, ‘beautiful‘), (11, 22, 33), (22, 33, 44)])

>>> print(a, b, c) # zip(*list)也就是列表前面带个星号,是上述操作的逆操作

(‘Your‘, 11, 22) (‘are‘, 22, 33) (‘beautiful‘, 33, 44)

>>>

反射:(以后补充)

    delattr(), getattr(), setattr(), hasattr()

迭代器:

    iter(), next()

python_day4内置函数补充

标签:python

原文地址:http://cuzihate.blog.51cto.com/6089351/1847125

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!