• python学习笔记


     在pycharm中解决中文输入注释报错的问题,直接在文件的开头加入代码#encoding=utf-8

     Python 语言中的五种基本的对象类型   

      字符串(string)简记str使用“”或者‘’括起来的一系列字符

      整数简记int

      浮点数float

      布尔数简记bool

      复数

    字符type用来查看数据的类型

    元组不允许二次赋值

    一定要严格控制住缩进的格式

    Python的缩进代表着代码块

    Python的数据类型转换

    List 的倒叙访问,从-1开始

    对list中的元素替换直接对元素重新赋值

    Tuple(元组)其中的元素一旦赋值便不可更改,但是如果touple中包含了列表,则此时列表中的元素依然可以改变

    Python 的习惯写法,一般写代码块的时候缩进4个空格,退出代码块是要注意多敲一行回车

    Range函数的特点range(start,stop,step),注意range函数中的结束位stop不包含在内

    len 函数返回的是列表元素的个数

    循环使用else语句

      在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的,如果break跳出了for循环就不执行else)的情况下执行,while … else 也是一样。

      python 中的元字典(dictory)包括键(key),键值(value)

      花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略 dic = {key:value,key1:value1}

      访问dict,通过dict的键调用键值,如果键不存在就会报错,如何避免错误呢,通过if ‘xiaoli’in d :或者通过d.get('xiaoli')来判断

    注意dict内部的存储是无序的,不能用来存储有序的集合
    set中包含一系列的元素,元素是无序的并且是不重复的,set的定义 s  = set([1,2,3,4])

    set的遍历 利用for判断语句,for遍历set时是无序的。

    set的更新与删除:更新是用set.add(),删除时用set.remove(),注意删除是要先判断set中是否有删除的元素。

    编写函数:

    编写函数要用到def,依次写出函数名、括号、括号中的参数和冒号: 函数可以返回多值,其实就是返回一个元组,按照对应的位置赋予值。

    一个函数可以调用其他函数,如果函数在自己的内部调用自己,那这个函数就是递归函数

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

     定义默认的函数如int('123',8)

         >>>83

      定义可变的参数,根据需要可以定义一个参数的个数可以改变的函数如 def fn(*arg)。可变的参数之前要有*表示是可变的参数,其实就是将传入的几个参数看做了一个touple。

    迭代

      对于一个集合可以利用for in 语句进行迭代操作

        索引迭代:对于有序的集合,都是有索引的,可以通过

    使用 enumerate() 函数

    >>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
    >>> for index, name in enumerate(L):
    ...     print index, '-', name
    ... 
    0 - Adam
    1 - Lisa
    2 - Bart
    3 - Paul

    使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:

    ['Adam', 'Lisa', 'Bart', 'Paul']

    变成了类似:

    [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

    因此,迭代的每一个元素实际上是一个tuple:

    for t in enumerate(L):
        index = t[0]
        name = t[1]
        print index, '-', name

    如果我们知道每个tuple元素都包含两个元素,for循环又可以进一步简写为:

    for index, name in enumerate(L):
        print index, '-', name

    这样不但代码更简单,而且还少了两条赋值语句。

    可见,索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。

    迭代dict的key和value

    我们了解了如何迭代 dict 的keyvalue,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的。

    首先,我们看看 dict 对象的 items() 方法返回的值:

    >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    >>> print d.items()
    [('Lisa', 85), ('Adam', 95), ('Bart', 59)]

    可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

    >>> for key, value in d.items():
    ...     print key, ':', value
    ... 
    Lisa : 85
    Adam : 95
    Bart : 59

    和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

       

    生成列表

    要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):

    >>> range(1, 11)
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:

    >>> L = []
    >>> for x in range(1, 11):
    ...    L.append(x * x)
    ... 
    >>> L
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

    >>> [x * x for x in range(1, 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

    写列表生成式时,把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。

    腾飞前的蛰伏
  • 相关阅读:
    5555
    3333
    4444
    试验2
    Android之TextView灵活使用(转载)
    Android之使用Android-query框架进行开发(一)(转载)
    Android 之Html的解析(使用jsoup)
    Android之动画的学习(转载)
    Android之官方下拉刷新控件SwipeRefreshLayout
    Android之sqlite的使用 (转载)
  • 原文地址:https://www.cnblogs.com/xiaoli2018/p/4334289.html
Copyright © 2020-2023  润新知