• python-day3


    #!/usr/bin/env python
    #集合操作,无序的
    list_1 = [1,4,5,7,3,6,7,9]
    list_1 = set(list_1)

    list_2 = set([2,6,0,66,22,8])
    #print(list_1,type(list_1))
    print(list_1,list_2)
    print(list_1.intersection(list_2))#查出重复的


    #并集
    print(list_1.union(list_2))#两个列表并在一起,去重

    #差集
    print(list_1.difference(list_2))#打印1,把list_2 里有的去掉
    print(list_2.difference(list_1))#相反

    #子集
    print(list_1.issubset(list_2))#查看list_1是不是2的子集,打印true和false
    print(list_2.difference(list_1))#是不是父集

    #对称差集
    print(list_1.symmetric_difference(list_2))#两个相互都没有的取出


    print("--------------------------------------------------")
    '''list_3 = [1,3,7]
    list_4 = set([5,6,8,1])
    print(list_3.isdisjoint(list_4))

    print(list_3 & list_4)
    '''

    print(1 & 2) #交集
    print(1 | 2) #并集
    print(1 - 2) #求差集(项在t中,但不在s中)
    print(1 ^ 2) #对称差集(项在t或s中,但不会同时出现在二者中)


    '''list_1.add(999)#添加
    list_1.update([111,222,333])#批量添加
    print(list_1)
    '''

    '''list_1(list_1.pop())#删除随机
    list_1(list_1.remove('dd'))#不在报错
    print(list_1.discard(dd))#不存在,不会报错
    '''

    #基本操作:

    #t.add('x') # 添加一项

    #s.update([10,37,42]) # 在s中添加多项



    #使用remove()可以删除一项:

    #t.remove('H')


    #len(s) set 的长度

    #x in s
    #测试 x 是否是 s 的成员

    #x not in s
    #测试 x 是否不是 s 的成员

    #s.issubset(t)

    #s <= t
    #测试是否 s 中的每一个元素都在 t 中

    #s.issuperset(t)
    #s >= t
    #测试是否 t 中的每一个元素都在 s 中

    #s.union(t)
    #s | t
    #返回一个新的 set 包含 s 和 t 中的每一个元素

    #s.intersection(t)
    #s & t
    #返回一个新的 set 包含 s 和 t 中的公共元素

    #s.difference(t)
    #s - t
    #返回一个新的 set 包含 s 中有但是 t 中没有的元素

    #s.symmetric_difference(t)
    #s ^ t
    #返回一个新的 set 包含 s 和 t 中不重复的元素

    #s.copy()
    #返回 set “s”的一个浅复制

    #文件操作
    #data = open("文件",encoding="utf-8").read()#utf-8把文件打开
    #print(data)

    '''f = open("文件",'r',encoding="utf-8")#文件句柄 ,'w'会创建一个新文件 之前重名的文件会被清空
    data = f.read()
    data2 = f.read()
    print(data)
    print('----------data2-----------',data2)
    f.close()
    #读文件

    f = open("文件",'w',encoding="utf-8")#文件句柄
    f.write("呵呵, ")
    f.write("嘻嘻")
    f.close()
    #写,不可读

    f = open("文件",'a',encoding="utf-8")
    #文件句柄,'a'追加,不可读
    '''
    #low 循环
    '''f = open("文件",'a',encoding="utf-8")

    for index,line in f.readlines():#.readlines()适合读小文件
    if index == 9:#打印到第九行
    continue
    print(line.strip())#.strip去掉换行符
    '''

    #for i in range(5):
    # print(f.readlines())#打印5行

    '''f = open("文件",'a',encoding="utf-8")
    count = 0
    for line in f:
    if count == 9:
    print('-----------分割线---------')
    count += 1
    continue
    print(line)
    count += 1
    '''#好循环

    '''f = open("文件",'a',encoding="utf-8")
    print(f.tell())#打印当前的位置(光标)
    print(f.seek(10))#调到指定位置
    print(f.readline())#
    print(f.encoding)#打印文件编码
    print(f.errors)#做异常处理用的
    print(f.fileno())#返回一个编号
    print(f.name)#打印文件名字
    print(f.seekable())#判断文件是否能移动到指定位置
    print(f.flush())#强制刷新
    '''
    #进度条
    '''import sys,time
    for i in range(50):
        sys.stdout.write("###")
        sys.stdout.flush()
        time.sleep(0.1)
    '''#“#”进度条
    View Code

    '''f = open("文件",'a',encoding="utf-8")
    #f.truncate()#不写就是清空
    f.seek(10)#先调到10,再开截断,但是还是重头开始截断,移动不好使。
    f.truncate(20)#从文件开头开始截断
    '''

    f = open("文件",'a',encoding="utf-8")
    #r+ 可读可写,w+ 写读,先创建一个文件在写,a+ 追加、写、读,rb 以二进制文件读,但不能加utf-8参数。
    #python3.0,在网络传输中只能用二进制文件传送,wb 是写,写时得加.encoding(utf-8)
    #print(f.readline())
    #print(f.readline())
    #print(f.readline())#打印前三行
    #f.write("--------------ssss-----------")#从最后开始写

    '''f = open("abc",'r',encoding="utf-8")
    f_new = open("abc.bak",'w',encoding="utf-8")
    for line in f:
    if "刘东" in line:
    line = line.replace("刘东","刘演生")
    f_new.write(line)
    f.close()
    f_new.close()
    '''#文件修改方法,先写到一个新文件里

    #字符编码与转码
    import sys
    #print(sys.getdefaultencoding())#默认编码
    '''s = "你好"
    s_to_unicode = s.decode("utf-8")
    print(s_to_unicode)
    s_to_gbk = s_to_unicode.encode("gbk")
    print(s_to_gbk)
    '''#python2.0版本
    #unicode和utf-8是可以相互的,Unicode和gdk必须转换

    #函数
    #优势:利于扩展 减少单码 --
    #1、面向对象
    #2、面向过程
    #3、函数式编程
    #函数定义方法:
    '''
    #函数
    def liu ():
        """hai_shu_miao_shu"""
        print('abcdefg')
        return 0
    View Code

    #过程(就是没有返回值的函数!)
    def dong ():
        """miao_shu"""
        print('1234567')
    x = liu()
    y = dong()
    print('----is %s' %x)#返回值为’0‘
    print('----is %s' %y)
    View Code

    #函数式编程
    #例一、
    import time
    def log():
        time_format = '%Y-%m-%d %X'
        time_current = time.strftime(time_format)
        with open('abc.bak','a') as f:
            f.write('%s log-log-log
    ' % time_current)
    def test_1 ():
        print('in the test_1')
        log()
    def test_2 ():
        print('in the test_2')
        log()
    def test_3 ():
        print('in the test_3')
        log()
    test_1()
    test_2()
    test_3()
    '''#调用函数
    View Code


    #例二、
    '''def test(x,y):#x,y表示形式参数
        print(x)
        print(y)
    test(1,2)#实际真实参数,和形参一一对应
    #test(y=2,x=1) 关键字调用,与形参顺序无关
    '''
    View Code

    #默认参数
    '''def test (x,y=2):#def test (host,port=3306):
    print(x)
    print(y)
    test(1,3) #1 复制给了x,y也可以手动复制,默认复制权限低。
    #默认参数特点:调用函数的时候,默认参数非必须传递
    '''
    #参数组(实参不固定的情况下,怎么设置形参)
    '''def test(*args):
    print(args)
    test(1,2,3,4,5,6,) #打印出是元祖的形式
    #test(*[1,2,3,4,5,6])#args=tuple([1,2,3,4,5,6])

    def test(x,*args):
    print(x)
    print(args)
    test(1,2,3,4,5,6)
    '''

    #**kwargs:把n个关键字参数,转换成字典的方式
    ''' test(**kwargs):
    print(kwargs)
    # print(kwargs['name'])
    # print(kwargs['age'])
    test(name='liudong',age='23')

    def test1 (name,**kwargs):
    print(name)
    print(kwargs)
    test1('liudong',age='23',)
    def test(name,age=18,*args,**kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)
    test('liudong',age=100,sex='m',aa='aa') #*args会是个空值
    '''

    #局部变量
    '''school = "Oldboy edu." #全局
    def change_name(name):
    global school #,外面有全局变量,改全局,最好不用此操作,如果外面没有全局变量,此操作会被开除的
    school ="mage Linux"
    print("before change",name,school)
    name = 'liudong' #局部
    print("school")
    change_name(name='liu')
    print(school)
    '''
    #递归
    '''def calc(n):
    print(n)
    if int(n/2) >0:
    return calc(int(n/2))
    print("->",n)
    calc(10)
    '''

    #函数式编程

    #高阶函数
    #一个函数传递给另一个函数,成为高阶函数
    '''def add(a,b,f):
    return f(a)+f(b)
    res=add(3,-6,abs)
    print(res)
    '''
    #字符串转字典:a = {ddfdfdfsdfs} eval(a) a['?']

    作者: 东邪西毒
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,负责保留追究法律责任的权利。

  • 相关阅读:
    asp.net(C#)页面事件顺序
    C#多线程学习 之 线程池[ThreadPool]
    JS 获取浏览器窗口大小
    关于Json的那点事
    jquery 动态滚动
    Null,DBNull,String.Empty 区别 C# 转载
    js图片大小限制,设置
    mysql 自定义函数获取两点间距离
    KindleConverter:Word批量转换为6寸PDF
    在 Asp.NET MVC 中使用 SignalR 实现推送功能
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/5749962.html
Copyright © 2020-2023  润新知