zoukankan      html  css  js  c++  java
  • (2)P_PY(草稿)

    目录:

    一、列表操作

    二、元祖

    三、字符串

    四、字典

    五、集合操作

    六、文件操作

    七、

    一、列表操作

    
    
     # 定义一个列表
    names = ["laiang","gf","renj","chz","yif"]

    1 >>> names = ['zhangsan','lisi','wangmazi',]
    2 >>>
    3 >>> names[0]     #通过索引取值
    4 'zhangsan'
    5 >>> names[2]
    6 'wangmazi'
    7 >>>
    8 >>> names[-1]
    9 'wangmazi
    
    

    一次取多个元素

    
    
    >>> names = ['zhangsan','lisi','wangmazi','1','2','3','4']
    >>>
    >>> names[1:3]
    ['lisi', 'wangmazi']
    >>>
    >>> names[:3]
    ['zhangsan', 'lisi', 'wangmazi']
    >>> names[3:]
    ['1', '2', '3', '4']
    >>>
    >>> names[0::2]
    ['zhangsan', 'wangmazi', '2', '4']
    >>>
    >>>
    
    
    

    追加

    1 >>> names.append('99')
    2 >>> print(names)
    3 ['zhangsan', 'lisi', 'wangmazi', '1', '2', '3', '4', '99']

    插入

    1 >>> names.insert(3,'88')
    2 >>> print(names)
    3 ['zhangsan', 'lisi', 'wangmazi', '88', '1', '2', '3', '4', '99']
    View Code

    删除

    1 >>> names.remove('99')
    2 >>> print(names)
    3 ['lisi', 'wangmazi', '88', '1', '2', '3', '4']
    4 >>>
    View Code

     弹出

     1 >>> print(names)
     2 ['lisi', 'wangmazi', '88', '1', '2', '3', '4']
     3 >>>
     4 >>>
     5 >>>
     6 >>>
     7 >>> names.pop()
     8 '4'
     9 >>> names.pop()
    10 '3'
    11 >>> names.pop()
    12 '2'
    13 >>>
    View Code

    修改

    1 >>> names[0] = 'lisan'
    2 >>>
    3 >>> print(names)
    4 ['lisan', 'lisi', 'wangmazi', '88', '1', '2', '3', '4', '99']
    5 >>>
    6 >>>
    View Code

    扩展

    1 >>> names.extend(b)
    2 >>> print(names)
    3 ['lisi', 'wangmazi', '88', '1', 11, 22, 33, 44]
    4 >>>
    5 >>>
    View Code

    浅copy与深copy

     1 import copy
     2 names = ["laiang","gf","renj",["chz","yif"]]
     3 #names2 = names.copy()
     4 names2 = copy.deepcopy(names)   #导入copy 模块
     5 print(names)
     6 print(names2)
     7 names[0] = "llx"
     8 print(names)
     9 print(names2)
    10 names[3][0] = "陈总"     #深copy 与浅copy  第二个列表相当于只是copy了内存地址
    11                          # 当修改的时候names2也会修改,相当于是共享
    12 print(names)
    13 print(names2)
    14 
    15 
    16 # import copy
    17 # names3 = copy.deepcopy(names)
    18 # print(names3)
    19 '''
    20 
    21 import copy
    22 person = ['name',['a',100]]
    23 
    24 p1 = copy.copy(person)
    25 p2 = person[:]        #实现浅copy的第二种方式
    26 p3 = list(person)        # 工厂函数
    View Code

    统计

    1 >>> names
    2 ['lisi', 'wangmazi', '88', '1', 11, 22, 33, 44]
    3 >>>
    4 >>> names.count(1)
    5 0
    6 >>> names.count(11)
    7 1
    8 >>> names.count(22)
    9 1
    View Code

    排序与翻转

    1 >>> names.sort()
    2 >>> names
    3 [11, 22, 33, 44, '1', '88', 'lisi', 'wangmazi']
    4 >>>
    5 >>> names.reverse()
    6 >>> names
    7 ['wangmazi', 'lisi', '88', '1', 44, 33, 22, 11]
    8 >>>
    View Code

    获取下表

    1 >>> names
    2 ['wangmazi', 'lisi', '88', '1', 44, 33, 22, 11]
    3 >>>
    4 >>> names.index('88')
    5 2
    6 >>>
    7 >>> names.index(22)
    8 6
    9 >>>
    View Code

    二、元祖

    也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表,它只有2个方法,一个是count,一个是index

    1 >>> names2 = ('1','2','3','4')
    2 >>> names2.count('1')
    3 1
    4 >>> names2.index('1')
    5 0
    6 >>>
    View Code

    三、字符串操作

    >>> name3 = 'laiangnadei'
    >>> name3
    'laiangnadei'
    >>> name3.capitalize()         #首字母大写
    'Laiangnadei'
    >>> name3.center(20,"-")
    '----laiangnadei-----'                #以这样的格式输出
    >>>
    >>> name3.count('a')           #统计字符串里有几个a
    3
    >>>
    >>> name3.endswith('ei')     # 判断字符串是否已“ei”结尾
    True
    >>>

    name = "my name is laiang"

    print(name.capitalize()) # 首字母大写
    print(name.count('a'))
    print(name.center(50,'-')) # name 放到中心,前后各50-
    print(name.endswith("al"))


    print(name.isalnum())
    print(name.ljust(50,'*'))
    print(name.rjust(50,'-'))

    print('laiang'.lower()) #小写转换
    print('laiang'.upper()) #大写转换

    四、字典
    字典一种key - value 的数据类型

    字典的特性:

      1、dict是无序的

      2、key必须是唯一的,天生去重

    修改
    1 >>> info
    2 {'k3': '3', 'k2': '2', 'k1': 'a', 'k4': '4'}
    3 >>>
    4 >>> info['k2'] = '22'
    5 >>>
    6 >>> info
    7 {'k3': '3', 'k2': '22', 'k1': 'a', 'k4': '4'}
    8 >>>
    9 >>>
    View Code
    
    

    删除

     1 >>> info
     2 {'k3': '3', 'k2': '22', 'k1': 'a', 'k4': '4'}
     3 >>>
     4 >>> info.pop('k4')
     5 '4'
     6 
     7 
     8 >>> del info['k3']
     9 >>>
    10 >>>
    11 >>> info
    12 {'k2': '22', 'k1': 'a'}
    13 >>>
    View Code

    >>> info
    {'k2': '22', 'k1': 'a'}
    >>>
    >>> info.popitem()    #随机删除
    ('k2', '22')
    >>>

    查找

     1 >>> info
     2 {'k3': '3', 'k1': 'a', 'k5': '5', 'k4': '4'}
     3 >>>
     4 >>>
     5 >>>
     6 >>>
     7 >>> info
     8 {'k3': '3', 'k1': 'a', 'k5': '5', 'k4': '4'}
     9 >>>
    10 >>> "k3" in info
    11 True
    12 >>>
    13 >>> info.get('k3')
    14 '3'
    15 >>>
    16 >>> info['k3']
    17 '3'
    18 >>> info['k9']
    19 Traceback (most recent call last):
    20   File "<stdin>", line 1, in <module>
    21 KeyError: 'k9'
    22 >>>
    View Code

    循环dict

    1 #方法1
    2 for key in info:
    3     print(key,info[key])
    4 
    5 #方法2
    6 for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    7     print(k,v)
    View Code

     购物车练习:

     1 #实现打印商品详细信息,用户输入商品名和购买个数,
     2 #则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
     3 # Author:land
     4 
     5 shopping=[] #定义一个购物车的控列表,等待添加商品
     6 #定义商品列表
     7 shopping_msg={
     8 'apple':20,
     9 'baoma':200000,
    10 'mac':1000,
    11 'lenovo':300,
    12 'chicken':900,
    13 }
    14 
    15 while True:
    16     for item in shopping_msg: #对商品列表循环取值
    17         print(item,shopping_msg[item])  #打印key 及 value
    18     choice=input('Inpute name of commodity>>:').strip()   #让用户输入商品选择
    19     if len(choice) == 0 or choice not in shopping_msg:   #对用户的输入进行判断
    20         print('Name of commdity is error>>:')
    21         continue   #如果输入非法  让其一直从新输入
    22 
    23     while True:  #本次循环是在商品名输入正确的情况下,购买数量输入非法,然后只对购买数量进行从新输入
    24         num = input('The num of purchase>>:').strip()
    25         if num.isdigit():  #对购买数量进行判断是否为数字
    26             break
    27 
    28     shopping.append((choice,shopping_msg[choice],int(num)))  #将信息append到购物车列表中
    29     print(shopping)   #打印购物车信息
     1 #字典练习
     2 #有如下值集合 [11,22,33,44,55,66,77,88,99,90...],
     3 #将所有大于 66 的值保存至字典的第一个key中,
     4 #将小于 66 的值保存至第二个key的值中
     5 sets=[11,22,33,44,55,66,77,88,99,90,]
     6 dic1={'key1':[],'key2':[]}
     7 for num in sets:
     8     if num > 66:
     9         dic1['key1'].append(num)
    10     else:
    11         dic1['key2'].append(num)
    12 print(dic1)
     1 '''
     2 #统计s='hello alex alex say hello sb sb'中每个单词的个数
     3 #结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
     4 
     5 s='hello alex alex say hello sb sb'
     6 words=s.split()  #s.split()得到一个单词的列表
     7 d={} #定义一个空字典
     8 
     9 for word in  words:  #循环这个单词列表
    10     d.setdefault(word,s.count(word))  #对循环到的每一个单词在列表里进行判断次数
    11                 #然后增加到d 字典里,如果遇到重复的单词不做任何修改
    12 print(d)
    13 
    14 #{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2} #最后得到的结果
    15 '''

    五、集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    >>> s = set([1,2,3,4,5,6,])
    >>> s
    set([1, 2, 3, 4, 5, 6])
    >>>
    >>>
    >>> t = set('love')
    >>>
    >>> t
    set(['e', 'l', 'o', 'v'])
    >>>

    >>> a = t | s      #求并集
    >>> a
    set([1, 2, 3, 'e', 5, 6, 'l', 'o', 'v', 4])
    >>>
    >>> b = t & s       #求交集
    >>> b
    set([])
    >>>
    >>> c = t - s          #求差集
    >>> c
    set(['e', 'l', 'o', 'v'])
    >>>
    >>> d = t ^ s                   # 对称差集
    >>> d
    set([1, 2, 3, 4, 5, 6, 'v', 'e', 'l', 'o'])
    >>>

    六、文件操作

    对文件操作流程

    
    
    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄对文件进行操作
    3. 关闭文件
    
    

    打开文件的模式有:

    
    
    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】
    
    

    "+" 表示可以同时读写某个文件

    
    
    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读
    • a+,同a
    
    

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    
    
    • rU
    • r+U
    
    

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    
    
    • rb
    • wb
    • ab
     
  • 相关阅读:
    模板实参演绎
    模板实例化
    模板中的名称
    友元函数在类中的声明在外围是不可见的
    C++ 宽字符(wchar_t)与窄字符(char)的转换
    ImageButton如何让图片按比例缩放不被拉伸
    C++模板实例化(1)
    android开发之GenyMotion与intelliJ的配置
    jacoco报告表头注释
    Spring源码工具类之StringUtils
  • 原文地址:https://www.cnblogs.com/lxqr/p/8559692.html
Copyright © 2011-2022 走看看