zoukankan      html  css  js  c++  java
  • 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['?']

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

  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/5749962.html
Copyright © 2011-2022 走看看