zoukankan      html  css  js  c++  java
  • python进阶

    python进阶

    异常

    捕捉异常

    s1 = 'hello'
    try:
        int(s1)
    except IndexError as e:
        print(e)
    except KeyError as e:
        print(e)
    except ValueError as e:
        print(e)
    #except Exception as e:
    #    print(e)
    else:
        print('try内代码块没有异常则执行我')
    finally:
        print('无论异常与否,都会执行该模块,通常是进行清理工作')
    

    抛出异常raise

    try:
        a = 10
        b = 0
        # print(a/b)
    except Exception as e:
        print(e)
        raise e
    else:
        print("ok")
    finally:
        print("end")
    

    当raise异常,程序中断

    str容易遗忘,重点内置方法

    1.按索引取值

    2.切片(顾头不顾尾,步长)

    # 索引切片
    msg = 'hello nick'
    # 0123456789  # 索引序号
    print(f'切片: {msg[0:9:1]}')
    print(f'切片: {msg[0:9:2]}')
    print(f'切片: {msg[0:9:-1]}')
    print(f'切片: {msg[-1:-10:1]}')
    print(f'切片: {msg[-1:-10:-1]}')
    print(f'切片: {msg[-1:-10:-2]}')
    # 了解,步长为正从左到右;步长为负从右到左
    print('
    **了解知识点**')
    print(f'切片所有: {msg[:]}')
    print(f'反转所有: {msg[::-1]}')
    print(f'切片-5--2: {msg[-5:-2:1]}')
    print(f'切片-2--5: {msg[-2:-5:-1]}')
    

    3.长度len(str)

    4.成员运算in和not in

    5.移出空白strip(str)

    6.切分.split

    7.遍历

    msg = 'hello nick'
    for i in msg:
        print(i)
    

    h
    e
    l
    l
    o
    n
    i
    c
    k

    lstrip&rstrip 去除左右两边指定字符

    # str之lstrip()和rstrip()
    name = '&&nick&&'
    
    print(f"nick.lstrip('&'): {name.lstrip('&')}")
    print(f"nick.rstrip('&'): {name.rstrip('&')}")
    
    

    nick.lstrip('&'): nick&&
    nick.rstrip('&'): &&nick

    lower&upper

    startswith&endswith 是否又指定字符开头或者结尾,区分大小写

    rsplit 从右开始切割

    join 字符串拼接,数字不能与字符串拼接

    replace

    isdigit 是否可以转化成整数

    列表的内置方法(list)[]

    1.按索引取值(正向取值+反向取值),即可存也可以取

    2.切片

    3.长度len

    4.成员运算in和not in

    5.追加append

    6.删除del

    7.循环

    需要掌握

    1.insert

    根据索引插入,在之前插入

    2.pop

    list之pop(),pop()默认删除最后一个元素,可按索引删除,并返回删除字符的值

    name_list.remove('nick'): None
    name_list: ['jason', 'tank', 'sean']

    3.remove

    根据值删除,删除返回none

    name_list.remove('nick'): None
    name_list: ['jason', 'tank', 'sean']

    4.count

    name_list.count('nick'): 1

    5.index

    name_list.index('nick'): 0

    6.clear

    清空list

    7.copy

    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    list3=list1
    list2 = list1.copy()
    print ("list2 列表: ", list2)
    print(id(list1))
    print(id(list2))
    print(id(list3))
    

    list2 列表: ['Google', 'Runoob', 'Taobao', 'Baidu']
    2099324874376
    2099324896456
    2099324874376

    8.extend

    name_list = ['nick', 'jason', 'tank', 'sean']
    print(id(name_list))
    name_list2 = ['nick handsome']
    name_list.extend(name_list2)
    print(name_list)
    print(id(name_list))
    

    2246807243080
    ['nick', 'jason', 'tank', 'sean', 'nick handsome']
    2246807243080

    9.reverse

    list反一下

    10sort

    元组(tuple)()

    元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。也因此元组可以被列表取代掉,所以元组相比较列表使用的很少。元组相比较列表的优点为:列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。但是目前工业上内存已经不是问题了,所以工业上元组一般不会使用。

    字典的内置方法(dict){}

    按key存取值:可存可取

    长度len

    成员运算in和not in

    只能判断有没有key

    删除del

    del dic['a']

    dic.pop('a') # 指定元素删除

    键keys()、值values()、键值对items()

    dic = {'a': 1, 'b': 2}
    
    print(f"dic.keys(): {dic.keys()}")
    print(f"dic.values(): {dic.values()}")
    print(f"dic.items(): {dic.items()}")
    

    dic.keys(): dict_keys(['a', 'b'])
    dic.values(): dict_values([1, 2])
    dic.items(): dict_items([('a', 1), ('b', 2)])

    循环

    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    list=[[1,2,5,6],[3,4,6,0]]
    for k,*_,c in list:
        print(k,*_,c)
    for k, v in dic.items():  # items可以换成keys()、values()
        print(k, v)
    

    循环原理就是解压缩

    get

    dic.get('a'): 1
    dic.get('c'): None

    update

    可以用于添加

    fromkeys

    dic = dict.fromkeys(['name', 'age', 'sex'], None)
    
    print(f"dic: {dic}")
    

    dic: {'name': None, 'age': None, 'sex': None}

    setdefault

    有指定key不会改变值;无指定key则改变值

    set{}

    长度len

    成员运算in和not in

    |并集、union

    &交集、intersection

    -差集、difference

    ^对称差集、symmetric_difference

    ==

    父集:>、>= 、issuperset

    子集:<、<= 、issubse

    add

    remove

    difference_update

    discard

    isdisjoin

    Python深浅拷贝

    拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

  • 相关阅读:
    按不同国家语言进行字符串排序
    ASP.net的客户端脚本
    MSN photo upload tool
    Cool SMIL
    asp.net 2.0 中无刷新机制
    EF Code First 学习笔记:约定配置
    EF Code First学习笔记 初识Code First
    Silverlight、XAML实现滚动文字
    使用Nlog记录日志到数据库
    WCF:如何将net.tcp协议寄宿到IIS
  • 原文地址:https://www.cnblogs.com/zx125/p/11283322.html
Copyright © 2011-2022 走看看