美文网首页
Python学习--慕课笔记

Python学习--慕课笔记

作者: 文刀晓大人 | 来源:发表于2015-03-22 11:38 被阅读0次

    Day One

    Python特点:优雅 明确 简单

    Python适合领域:Web 脚本 “胶水工具”

    Python不适合领域:硬件开发 游戏开发 移动应用

    Python特点:解释性语言 不用编译 代码量少 速度慢 源码不能加密

    版本:2.7 第三方库支持; 

              3.3 较新


    Day Two

    16进制转10进制:int('0x12fd45', 16)

    print语句可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出,逗号表现为空格

    注释:开头加“#”

    转义:“\”,常用转义字符:\n 表示换行,\t 表示一个制表符 ,\\ 表示 \ 字符本身

    多行字符串表示:用'''...'''表示

    忽略转义:raw字符串,用“r+字符串”表示

    Unicode:把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

    以Unicode表示的字符串用u'...'表示,如:print u'中文'

    注意:如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

    # -*- coding: utf-8 -*-

    整数和浮点数混合运算的结果就变成浮点数

    整数运算的结果永远是精确的,而浮点数运算的结果不一定精确

    11 / 4    # ==> 2,整数除法得到整数

    11 % 4    # ==> 3,求余

    11.0 / 4    # ==> 2.75,浮点数除法,结果为浮点数

    短路计算:Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

    list:Python内置的数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。

    Day Three

    按照索引访问list:索引从 0 开始;使用索引时,千万注意不要越界

    倒序访问list:用 -1 这个索引来表示最后一个元素,-2表示倒数第二,以此类推

    list添加新元素:

    append(),把新的元素添加到 list 的尾部;用法:L.append(新元素)

    insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素。

    从list删除元素:

    pop()方法总是删掉list的最后一个元素,并且它还返回这个元素;

    pop(2)将第三位删除掉

    tuple:有序列表,tuple一旦创建完毕,就不能修改了。

    创建tuple和创建list唯一不同之处是用( )替代了[ ]。

    创建单元素tuple:需要注意在元素的后面加上“,”;多元素 tuple 加不加这个额外的“,”效果是一样的。

    tuple中可以包含可变的list

    Day Four

    Python代码的缩进规则:具有相同缩进的代码被视为代码块;4个空格,不要使用Tab,更不要混合Tab和空格

    注意:Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车

    if:if 语句后接表达式,然后用:表示代码块开始

    if ... else ... 语句:非此即彼;注意: else 后面有个“:”

    if ... elif ... else ... 语句:这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了

    for循环:for name in L:name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体,可以遍历list或者tuple

    Day Five

    用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。

    在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。

    Day Six

    dict:建立对应关系

    dict访问:使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key;print d.get('Bart')也可以用

    注意:一起打印不同类型数据时,用“,”分开

    dict内部是无序的,不能用dict存储有序的集合。

    dict的特点是作为 key 的元素必须不可变

    dict是可变的,也就是说,我们可以随时往dict中添加新的 key-value。如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value

    遍历dict:for key in d:

    set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。set不能包含重复的元素

    如果传入有重复,set会自动去掉重复的元素.

    访问set:由于set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中:'Bill' in s

    重要:大小写很重要,'Bart' 和 'bart'被认为是两个不同的元素。

    set的特点适合的应用:遍历速度快,可表示星期

    遍历set:for 循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同。

    set添加元素时,用set的add()方法;删除set中的元素时,用set的remove()方法

    Day Seven

    Python官方网站:http://docs.python.org

    可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息

    int()函数可以把其他数据类型转换为整数;str()函数把其他类型转换成 str

    高级程序用法:L = xrange(1, 101); print sum([i*i for i in L])

    定义一个函数要使用 def 语句:依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

    return None可以简写为return

    返回多值:a的平方:a**2

    递归:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

    递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰,递归要有块的思想

    使用递归函数需要注意防止栈溢出

    函数的默认参数的作用是简化调用

    由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面

    定义可变参数:如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

    def fn(*args):%注意带星号

    print args

    可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

    要使用浮点数进行运算:使用“*1.0”

    切片:L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素

    如果第一个索引是0,还可以省略;只用一个 : ,表示从头到尾;切片操作还可以指定第三个参数:第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个,注意这是第三个参数

    range()函数可以创建一个数列:

    >>> range(1, 101)

    [1, 2, 3, ..., 100]

    Day Eight

    倒序切片:L[-3:-1]:从倒数第三个开始到最后一个(不包含),记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。

    Python 的 for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上

    注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:

    1. 有序集合:list,tuple,str和unicode;

    2. 无序集合:set

    3. 无序集合并且具有 key-value 对:dict

    迭代是一个动词,它指的是一种操作,在Python中,就是 for 循环。

    Python中,迭代永远是取出元素本身,而非元素的索引。

    索引迭代:for index, name in enumerate(L): print index, '-', name

    zip()函数可以把两个 list 变成一个 list:

    >>> zip([10, 20, 30], ['A', 'B', 'C'])

    [(10, 'A'), (20, 'B'), (30, 'C')]

    迭代dict的value:dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list:用法:d.values();itervalues() 方法也是类似功能,但占用内存少

    如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。

    Day Nine

    列表生成式: >>> [x * x for x in range(1, 11)]

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    注意:range(1, 100, 2) 可以生成list [1, 3, 5, 7, 9,...]

    列表生成式的 for 循环后面还可以加上 if 判断

    注意:仔细区分数字和字符串

    相关文章

      网友评论

          本文标题:Python学习--慕课笔记

          本文链接:https://www.haomeiwen.com/subject/mcawxttx.html