zoukankan      html  css  js  c++  java
  • python学习day-4 集合与函数

    ---恢复内容开始---

    一、数据类型及变量总结

    1、可变与不可变 修改变量的值,id可不可变

         可变:id不变   列表,字典

         不可变:id变了  字符串,数字,元祖

    2、访问顺序

          直接访问:数字

          顺序访问(索引):字符串 列表 元祖

          映射访问:字典

    字典比列表速度快,但是占内存大

    3、存放元素个数

         容器类型:列表 元祖  字典

         原子类型:数字  字符串

    二、集合定义基本操作方法set

    定义:不同元素组成的集合,是一组无序的,元素类型是不可变类型(数据字符串元祖)

    s={1,2,3,33,8,9}

    s=set{'hello'}                     输出s    {'o','e','l','h'}

    1.集合的内置方法

    s={1,2,3,4,5,6}

    1.添加 add
    s.add('s')
    s.add('3')
    s.add(3)
    print(s)

    3.清空clear
    s.clear()
    print(s)

    4.复制
    s1=s.copy()


    5.随机删pop
    s.pop()

    6.指定删除remove discard
    s.remove('sb')
    s.remove('hellol') #删除元素不存在会报错
    s.discard('sbbbb')#删除元素不存在不会报错
    print(s)

    2.集合的关系运算交叉并集

    有一个笨方法

    python_l=['lcg','szw','zjw']
    linux_l=['lcg','szw']

    python_and_linux_l=[]
    for p_name in python_l:
    if p_name in linux_l:
    python_and_linux_l.append(p_name)

    print(python_and_linux_l)



    python_l=['lcg','szw','zjw','lcg']
    linux_l=['lcg','szw','sb']
    p_s=set(python_l)
    l_s=set(linux_l
    1.求交集&
    print(p_s,l_s)
    print(p_s.intersection(l_s))
    print(p_s&l_s)

    2.求并集
    |
    print(p_s.union(l_s))
    print(p_s|l_s)

    3.差集
    print('差集',p_s-l_s)
    print(p_s.difference(l_s))
    print('差集',l_s-p_s)
    print(l_s.difference(p_s))


    4.交叉补集^
    print('交叉补集',p_s.symmetric_difference(l_s))
    print('交叉补集',p_s^l_s)

    python_l=['lcg','szw','zjw','lcg']
    linux_l=['lcg','szw','sb']
    p_s=set(python_l)
    l_s=set(linux_l)
    print(p_s,l_s)
    print('差集',p_s-l_s)
    p_s=p_s-l_s
    p_s.difference_update(l_s)
    print(p_s)


    5.isdisjoint:如果s1与s2做交集运算,如果没有交集,就返回True
    s1={1,2}
    s2={2,3,5}
    print(s1.isdisjoint(s2))


    6.判断子集父级issubset issuperset
    issubset:s1<=s2
    s1={1,2}
    s2={1,2,3}
    print(s1.issubset(s2))#s1 是s2 的子集
    print(s2.issubset(s1))#False

    issuperset:s1>=s2
    print(s2.issuperset(s1))#s1 是s2 的父集

    7.更新update
    s1={1,2}
    s2={1,2,3}
    s1.update(s2) #更新多个值

    s1.add(1,2,3,4) #更新一个值
    s1.union(s2) #不更新

    print(s1)


    8.frozenset 定义不可集合
    s=frozenset('hello')
    print(s)

    不考虑顺序进行列表去重
    names=['alex','alex','wupeiqi']
    names=list(set(names))
    print(names)

    三、百分号字符串拼接

       1.%s  万能   %d 数字

      msg='i am %s my hobby is %s' % ('lhf','alex')

      print(msg)


    msg='i am %s my hobby is %s' % ('lhf',1)
    msg='i am %s my hobby is %s' % ('lhf',[1,2])
    print(msg)
    name='lhf'
    age=19
    msg='i am %s my hobby is %s' % (name,age)

    2.打印浮点数 percent &.f .后边的保留几位数字 默认保留六位数字
    tpl = "percent %.2f" % 99.976234444444444444


    3.打印百分比 %%
    tpl = 'percent %.2f %%' % 99.976234444444444444


    4.传字典
    tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}
    print(tpl)

    5.%(names)[+-空格0]占有位数 s
    +右对齐,正数前加正好,负数前加负号
    —左对齐,正数前无符号,负数前加负号
    空格右对齐,正数前加空格,负数前无符号
    0左对齐,正数前无符号,负数前加负号,0填空白处

    msg='i am %(name)+60s my hobby is alex' %{'name':'lhf'}

    6.加颜色
    msg='i am 33[43;1m%(name)+60s33[0m my hobby is alex' %{'name':'lhf'}

    四、format字符串格式化


    tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)

    tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})

    tpl = "i am {:s}, age {:d}".format(*["seven", 18])
    tpl = "i am {:s}, age {:d}".format("seven", 18) #["seven", 18]

    l=["seven", 18]
    tpl = "i am {:s}, age {:d}".format('seven',18)
    print(tpl)

    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{}".format(15, 15, 15, 15, 15, 15.87623, 2)
    print(tpl)

     

    
    

     b二进制  o八进制  d 整型 x小写十六进制 X大写十六进制   %百分号

    
    

     五、函数

    def test(x):
    '''
    2*x+1
    :param x:整形数字
    :return: 返回计算结果
    '''
    y=2*x+1
    return y

    def test():
    '''
    2*x+1
    :param x:整形数字
    :return: 返回计算结果
    '''
    x=3
    y=2*x+1
    return y
    a=test()
    print(a)

    过程:就是没有返回值的函数


    def test01():
    msg = 'test01'
    print(msg)







    def test(x,y,z):#x=1,y=2,z=3
    print(x)
    print(y)
    print(z)

    位置参数,必须一一对应,缺一不行多一也不行
    test(1,2,3)

    关键字参数,无须一一对应,缺一不行多一也不行
    test(y=1,x=3,z=4)

    混合使用的话:位置参数必须在关键字参数左边
    test(1,y=2,3)#报错
    test(1,3,y=2)#报错
    test(1,3,z=2)
    test(1,3,z=2,y=4)#报错
    test(z=2,1,3)#报错

    默认参数:
    def handle(x,type='mysql'):
    print(x)
    print(type)
    handle('hello')
    handle('hello',type='sqlite')
    handle('hello','sqlite')

    def install(func1=False,func2=True,func3=True):
    pass

    参数组:**字典 *列表
    def test(x,*args):
    print(x)
    print(args)

    test(1,2,3,4,5) 输出args=(2,3,4,5) 当做元祖的方式来处理
    test(1,{'name':'alex'})
    test(1,['x','y','z']) 整个列表变成了一个整体放入args里
    test(1,*['x','y','z']) 元祖方式处理
    test(1,*('x','y','z'))

    def test(x,**kwargs):
    print(x)
    print(kwargs)
    test(1,y=2,z=3)
    test(1,1,2,2,2,2,2,y=2,z=3) 报错
    test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值

    def test(x,*args,**kwargs):
    print(x)
    print(args,args[-1])
    print(kwargs,kwargs.get('y'))
    test(1,1,2,1,1,11,1,x=1,y=2,z=3) #报错


    test(1,*[1,2,3],**{'y':1})
    
    
    
     
    
    
    


        

         

  • 相关阅读:
    C# 汉字转拼音(转)
    检测Sql Server服务器SQL语句执行情况
    查看sql执行的情况
    Sql Server简单加密与解密 【转】
    细说SQL Server中的加密【转】
    asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    HTTPS那些事(三)攻击实例与防御
    HTTPS那些事(二)SSL证书
    HTTPS那些事(一)HTTPS原理
    achartengine(Google给android提供的画图工具包)的介绍和使用
  • 原文地址:https://www.cnblogs.com/wangxiaoyienough/p/9255776.html
Copyright © 2011-2022 走看看