Python实战之路-day2

时间:2021-08-12 10:02:03

我们始终都要远行,最终都要与稚嫩的自己告别,告别是通向成长的苦行之路。 Hello Python - week2!

 

  • Python中的五种内建数据结构:
  1. 变量     name = "guanqing"
  2. 列表     name = ['user1','user2','user3']
  3. 字典       name = {'name':'guanqing','age':28}
  4. 文件       file.txt
  5. 数据库    mysql

     

  • 列表:
  1. list.append('aa')  #增加。 列表尾部添加一个项目
    1 >>> list = ['guanqing','wukun','lizhe','hongbing']
    2 >>> list.append('qihui')
    3 >>> list
    4 ['guanqing', 'wukun', 'lizhe', 'hongbing', 'qihui']
  2. list.insert(2,'aa')  #增加。在列表某个位置插入元素,位置从0开始计数

    1 >>> list
    2 ['guanqing', 'wukun', 'lizhe', 'hongbing', 'qihui']
    3 >>> list.insert(2,'eric')
    4 >>> list
    5 ['guanqing', 'wukun', 'eric', 'lizhe', 'hongbing', 'qihui']         
  3. list.extend()  
    1 >>> list = [1,2,4]
    2 >>> list.extend([5,6,7])     #extend是把list或者元组中的元素逐个加入到list中 3 >>> list
    4 [1, 2, 4, 5, 6, 7]
    5 >>> list.append([8,9,0])     #append是把对象作为一个整体追加到list后面 6 >>> list
    7 [1, 2, 4, 5, 6, 7, [8, 9, 0]]
  4. python中的max/min/len函数,顾名思义
    1 >>> list2 = [5,3,78,5,89,1]
    2 >>> max(list2)
    3 89
    4 >>> min(list2)
    5 1
    6 >>> len(list2)
    7 6
  5. 列表中for循环
     1 >>> list = ['3','6','7','9','1','22']
     2 >>> for line in list:
     3 ...     print 'Hello %s' % line
     4 ... 
     5 Hello 3
     6 Hello 6
     7 Hello 7
     8 Hello 9
     9 Hello 1
    10 Hello 22
  6. 列表的基本操作
     1 >>> list2 = ['zhangsan','lisi','wangwu','zhaoba','lisi','wangwu','lisi']
     2 >>> list2.count('lisi')    #count计数
     3 3
     4 >>> list2.index('zhaoba')  #index位置索引
     5 3
     6 >>> list2[0:2]             #切片查询0到2的位置
     7 ['zhangsan', 'lisi']
     8 >>> list2[:]               #打印当前列表的所有
     9 ['zhangsan', 'lisi', 'wangwu', 'zhaoba', 'lisi', 'wangwu', 'lisi']
    10 >>> list2[1:]              #打印列表位置从1到最后
    11 ['lisi', 'wangwu', 'zhaoba', 'lisi', 'wangwu', 'lisi']
    12 >>> list2[0:-1]            #打印位置从0到-1,不包含-1位置
    13 ['zhangsan', 'lisi', 'wangwu', 'zhaoba', 'lisi', 'wangwu']
    >>> list2
    ['zhangsan', 'lisi', 'wangwu', 'zhaoba', 'lisi', 'wangwu', 'lisi']
    >>> del list2[1]              #删除列表中位置为1的元素
    >>> list2
    ['zhangsan', 'wangwu', 'zhaoba', 'lisi', 'wangwu', 'lisi']
    >>> list2.remove('zhangsan')  #删除列表中元素为‘zhangsan’
    >>> list2
    ['wangwu', 'zhaoba', 'lisi', 'wangwu', 'lisi']
    >>> list2.pop()               #删除最后一位元素,并显示出所删除的
    'lisi'
    >>> list2
    ['wangwu', 'zhaoba', 'lisi', 'wangwu']
    >>> list2[0] = 'zhangsan'     #更换列表中的0位置的元素,将‘wangwu’换成‘zhangsan’
    >>> list2
    ['zhangsan', 'zhaoba', 'lisi', 'wangwu']
  7. set集合(去重)
    1 >>> list = [11,22,33,44,33,22,11,55,33]
    2 >>> for ip in set(i for i in list):      #通过set集合进行去重list得出ip
    3 ...     print ip
    4 ... 
    5 33
    6 11
    7 44
    8 22
    9 55
  8. 字符串和列表之间的转换
    字符串.split('分隔符')                         #将字符串转换为列表
     1 >>> str = 'Jul 31 03:43:07 vwbjvutipa0882 server: 15:43:07,193  INFO'
     2 >>> str2 = str.split(" ")  #以空格的方式将字符串转换为列表
     3 >>> str2
     4 ['Jul', '31', '03:43:07', 'vwbjvutipa0882', 'server:', '15:43:07,193', '', 'INFO']
     5 >>> list = []               #定义一个新的列表
     6 >>> list.append(str2[0])    #将以位置的形式将所需要的元素追加到新的列表中
     7 >>> list.append(str2[3])
     8 >>> list.append(str2[4])
     9 >>> list.append(str2[5])
    10 >>> list
    11 ['Jul', 'vwbjvutipa0882', 'server:', '15:43:07,193']
  9.  “分隔符”.join(列表)                     #将列表转换成字符串
    1 >>> list
    2 ['Jul', 'vwbjvutipa0882', 'server:', '15:43:07,193']
    3 >>> str03 = ",".join(list)
    4 >>> str03
    5 'Jul,vwbjvutipa0882,server:,15:43:07,193'      
  10. python中的enumerate函数   
    1 >>> list
    2 ['Jul', 'vwbjvutipa0882', 'server:', '15:43:07,193']
    3 >>> for i,element in enumerate(list):    #即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标
    4 ...     print "%s --> %s" %(i,element)
    5 ... 
    6 0 --> Jul
    7 1 --> vwbjvutipa0882
    8 2 --> server:
    9 3 --> 15:43:07,193  
  • 字典
  1. python中字典的增删改查操作
     1 >>> dict = {'username': 'guanqing', 'age': 28, 'where': 'anhui', 'job': 'engineer'}
     2 >>> dict['xingqu'] = 'zuqiu'      #字典的添加
     3 >>> dict
     4 {'username': 'guanqing', 'xingqu': 'zuqiu', 'age': 28, 'where': 'anhui', 'job': 'engineer'}
     5 >>> del(dict['xingqu'])           #字典中直接删除
     6 >>> dict
     7 {'username': 'guanqing', 'age': 28, 'where': 'anhui', 'job': 'engineer'}
     8 >>> dict['age'] = 38              #字典的修改
     9 >>> dict
    10 {'username': 'guanqing', 'age': 38, 'where': 'anhui', 'job': 'engineer'}
    11 >>> dict.pop('where')             #字典的删除并显示所删除的values
    12 'anhui'
    13 >>> dict
    14 {'username': 'guanqing', 'age': 38, 'job': 'engineer'}
    15 >>> dict.clear()                  #字典清空操作
    16 >>> dict
    17 {}
    1 >>> dict = {'username': 'guanqing', 'age': 28, 'where': 'anhui', 'job': 'engineer'}
    2 >>> dict.keys()                    #字典的keys查询
    3 ['username', 'age', 'where', 'job']
    4 >>> dict.values()                  #字典的values查询
    5 ['guanqing', 28, 'anhui', 'engineer']
  2. 字典中调用items()实现字典的遍历
     1 >>> dict
     2 {'job': 'sa', 'where': 'hangzhou', 'age': '28', 'name': 'guanqing'}
     3 >>> print dict.items()
     4 [('job', 'sa'), ('where', 'hangzhou'), ('age', '28'), ('name', 'guanqing')]
     5 >>> for k,v in dict.items():
     6 ...     print "%s -->%s" %(k,v)
     7 ... 
     8 job -->sa
     9 where -->hangzhou
    10 age -->28
    11 name -->guanqing
  3. dict.get('name')  and dict.get('name','false')  #如果name不存在字典中,则返回默认值false,这里可以避免为空或者报错,这里的get为得到字典中的某个键值
    1 >>> dict
    2 {'job': 'sa', 'where': 'hangzhou', 'age': '28', 'name': 'guanqing'}
    3 >>> dict.get('name')
    4 'guanqing'
    5 >>> dict.get('names')
    6 >>> dict.get('names','false')
    7 'false'
    8 >>> dict.has_key('name') #判断字典中是否有某一个键值
    9 'True
  4. dict.update(dict2)     #把字典dict2的值加入到字典dict中
    1 >>> dict
    2 {'job': 'sa', 'where': 'hangzhou', 'age': '28', 'name': 'luck'}
    3 >>> dict
    4 {'job': 'sa', 'where': 'hangzhou', 'age': '28', 'name': 'luck'}
    5 >>> dict2 = {'wukun':'boy','jinjin':'girl'}
    6 >>> dict.update(dict2)
    7 >>> dict
    8 {'jinjin': 'girl', 'job': 'sa', 'name': 'luck', 'wukun': 'boy', 'age': '28', 'where': 'hangzhou'}
  • 文件
  1. 不同模式打开文件的完全列表:
    模式 描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
  2. open-write-close 针对文件操作的方法:
    1 # 打开一个文件
    2 fo = open("foo.txt", "wb")
    3 fo.write( "www.google.com!\nVery good site!\n")
    4  
    5 # 关闭打开的文件
    6 fo.close()
  3. with open('文件') 方法    #这个时候不需要进行open() and close()
    1 >>> with open('foo.txt') as f:
    2 ...     data = f.read()
    3 ...     print data
    4 ... 
    5 www.google.com!
    6 very good site!
  4. python file几种常用的方法:
    1

    file.next()

    返回文件下一行。

    2

    file.read([size])

    从文件读取指定的字节数,如果未给定或为负则读取所有。

    3

    file.readline([size])

    读取整行,包括 "\n" 字符。

    4

    file.readlines([sizehint])

    读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。

  • 列表中套字典,实际环境中经常使用
     1 users = [{'age': 18, 'job': 'coo', 'name': 'wd', 'passwd': '12323'},
     2          {'age': 19, 'job': 'cto', 'name': 'kk', 'passwd': 'abcdef'},
     3          {'age': 20, 'job': 'cio', 'name': 'pc', 'passwd': 'ABC'}]
     4 
     5 name = raw_input("please input your name: ").strip()
     8 for i in users:
     9     if name in i['name']:
    10         paswd = raw_input("please input your password: ").strip()
    11         if paswd in i['passwd']:
    12             print 'welcome'
    13             break
    14     else:
    15         print 'the user does not exist.'
    16         break
  • 元组
  1. 元组运算符,与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
    Python 表达式 结果 描述
    len((1, 2, 3)) 3 计算元素个数
    (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
    ('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
    3 in (1, 2, 3) True 元素是否存在
    for x in (1, 2, 3): print x, 1 2 3 迭代
  2. 元组内置函数
    序号 方法及描述
    1 cmp(tuple1, tuple2)
    比较两个元组元素。
    2 len(tuple)
    计算元组元素个数。
    3 max(tuple)
    返回元组中元素最大值。
    4 min(tuple)
    返回元组中元素最小值。
    5 tuple(seq)
    将列表转换为元组。
  • 在线工具分享
  1. 在线画思维导图ProcessOn:https://www.processon.com/

  2. 贴图库:http://www.tietuku.com/

  3. mahua在线文档编辑器:http://mahua.jser.me/
  4. mahua用法总结:http://531d2d13.wiz03.com/share/s/1j7iQj2pF4PP2VhPBO1FRNwA0MS8Yz009ARg2G6F7U0XfBq5

  5. “看板”可用来管理工作中的流程:https://trello.com/