• 【python学习笔记】复习知识点随机


        # zip() 将给定的数据中对应的元素打包成一个元组
        m1 = 'abc'
        m2 = [10, 20]
        m3 = ['red', 'yello']
        a = zip(m1, m2, m3)  # 将给定的数据中对应的元素打包成一个元组,不等长,以最短的序列为准,返回可迭代对象
        print(a) #<zip object at 0x000002759F40B400>
        b = list(a)  # 存储在列表中
        print(b) # [('a', 10, 'red'), ('b', 20, 'yello')]
    
        # zip解压
        print(list(zip(*b))) # [('a', 'b'), (10, 20), ('red', 'yello')]
    
        # zip与for配合使用
        for m1, m2, m3 in zip(m1, m2, m3):
            print(m1, m2, m3)
        '''
        a 10 red
        b 20 yello
        '''
        # enumerate() 用于一个可遍历对象(列表、字符串 元组)组合为一个带索引的元组,同时列出数据的索引和数据 返回可迭代对象
        fruits = ['apple', 'banana', 'peach']
        print(enumerate(fruits))  # <enumerate object at 0x0000014A48E8A540>
        print(list(enumerate(fruits))) # [(0, 'apple'), (1, 'banana'), (2, 'peach')]
        for index, fruits in enumerate(fruits):
            print(index, fruits)
        '''
        0 apple
        1 banana
        2 peach
        '''
    

    2、函数返回值:将信息存入到变量里面,可以返回任何类型的值,包括列表、字典等等,因为返回的是变量,变量的类型可以为任意类型;

    3、模块:一个.py文件就是一个模块,里面定义了一些函数和变量,需要使用时直接调用即可;

    4、包:是在模块之上,是很多模块的集合

    5、库:具有相关功能模块的集合

    6、局部变量和全局变量:

        '''函数内部的变量名如果第一次出现,并且出现在=前面,那么这个变量就会被当做局部变量'''
        num = 100
        def fun():
            num = 123  # 局部变量
            print(num)
        fun()   # 123
    
        num = 100
        def fun():
            num += 100  # num = num + 100
            print(num)
        fun()  # UnboundLocalError: local variable 'num' referenced before assignment
    
        '''函数内部的变量名如果第一次出现,并且出现在=后面,且该变量在全局中已定义,那么在函数内部就会引用该变量'''
        num = 100
        def fun():
            x = num + 100   # num出现在=后面 且在全局中已经定义
            print(num, x)
        fun()  # 100 200
    
        '''局部变量优先原则'''
        num = 100
        def fun():
            num = 200
            x = num + 100   # num出现在=后面 且在全局中已经定义
            print(num, x)
        fun()  # 200 300
        print(num) # 100
    
        '''将局部变量改为全局变量'''
        num = 100
        def fun():
            global num #将局部变量改为全局变量
            num = 200
            num += 200
            print(num)
        fun()  # 400
        print(num) # 400
    

     7、匿名函数和map函数

        '''
        map(function, iterable)
        函数, 一个或多个序列
        '''
        data = list(range(0,11)) 
        print(map(lambda x,y:x+y,data,data)) # <map object at 0x00000240DBEEC190>
        print(list(map(lambda x,y:x+y,data,data))) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
    

    8、random模块

        '''
        随机模块random
        '''
        print(dir(random))
        '''
        常用方法:randint', 'random', 'randrange', 'sample','choice' 'seed', 'shuffle'
        random() 方法返回随机生成的一个实数,它在[0,1)范围内。
        random.randint(a,b) 函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
        random.randrange ([start,] stop [,step]),从给定的范围返回随机项。
        seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数,本函数没有返回值。
        shuffle() 方法将序列的所有元素随机排序。参数lst--列表  返回值None
        '''
    
        print(random.random())  #生成0-1之间的随机小数 如:0.7721423968855717
    
        # seed(x)方法,改变随机数生成器的种子,x为任意数字,调用seed后,生成的随机数将会是同一个
        random.seed(10)
        print(random.random())  # 生成的随机数将会是同一个 0.5714025946899135
    
        print(random.randint(1, 100))  # 生成1-100之内的随机整数: 如 55
        print(random.randrange(0, 10, 2))  #生成0-10之内步长为2的随机整数:如 6
        print(random.randrange(10))  #生成0-9的随机整数:如 9
    
        print(random.sample('abcdefs' ,3))  # 在目标序列中随机挑选3个 ['e', 'a', 'b']
        print(random.choice('abcdefs'))  # 在目标序列中随机挑选1个  d
        print(random.choices([1,2,3,4,5]))  # 在目标序列中随机挑选1个  [5]
    
        list = [20, 16, 10, 5]
        print(random.shuffle(list))  # 返回None
        print(list)  # [16, 20, 5, 10]
    

    9、文件读操作:

        '''
        文件操作:
        1、复制为路径:按住shift键 + 选中文件点鼠标右键 选择复制为路径
        2、修改文件的编码方式:文件另存为 选取编码方式 一般为utf-8
        3、绝对路径:C:/Users/z00/Desktop/yrdy.txt
        4、相对路径(./当前目录下  ../上一层目录下)
        '''
    
        '''
        文件读取
        f.read() 一次读取
        flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
        一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
        '''
        f = open(r'Usersz00Desktopyrdy.txt', encoding='utf-8')  # 注意路径为/,可加r解决,或者直接修改为/
        context = f.read()
        print(context)
        '''
        测试
        test
        '''
        f.close()
    
        '''
        文件读取
        f.readline() 一行一行读取
        '''
        f = open(r'C:Usersz03Desktopyrdy.txt', encoding='utf-8')
        context = f.readline()
        context1 = f.readline()
        print(context.strip()) # 测试
        print(context1.strip()) # test
        f.flush() # 刷新缓冲区
        f.close()
    
        '''
        文件读取
        f.readlines() 将每一行形成一个元素,置于列表里面
        '''
        f = open(r'C:Usersz0Desktopyrdy.txt', encoding='utf-8')
        context = f.readlines()
        print(context)  # ['测试
    ', 'test']
        f.flush() # 刷新缓冲区
        f.close()
    
        '''
        文件读取 for循环实现逐行读取  用的比较多
        '''
        f = open(r'C:Usersz00Desktopyrdy.txt', encoding='utf-8')
        for line in f:
            print(line, end='')
        '''
        测试
        test
        '''
        f.flush() # 刷新缓冲区
        f.close()
    

    10、文件写操作

     # 读取pdf文件  rb模式读取pdf文件
        f = open(r'E:A工具书籍金字塔原理.pdf', mode='rb')
        context = f.read()
        print(context)
        f.flush()
        f.close()
    
        #  文件写
        f = open(r'C:Usersz003Desktopyrdy.txt', mode='w', encoding='utf-8')
        f.write("test")
        f.flush() # 刷新缓冲区
        f.close()
    
        # 批量创建文件
        def out(num):
            for i in range(num):
                path = r'C:Usersz00Desktop	est	est' + str(i) + '.txt'
                f = open(path, 'w')
                f.write("test")
                f.flush() # 刷新缓冲区
                f.close()
        out(10)
    
        mode = 'wb' 可以不用指定打开文件的编码,前提:写出文件的时候,指定字符串的编码 等价于下面的写法
        f = open(r'C:Usersz00Desktopyrdy.txt', mode='wb')
        f.write("静夜思".encode('utf-8'))
        f.flush() # 刷新缓冲区
        f.close()
    
        f = open(r'C:Usersz00Desktopyrdy.txt', mode='w',encoding='utf-8')
        f.write("静夜思")
        f.flush() # 刷新缓冲区
        f.close()
    
        # 读写模式 mode ="r+" 必须先读后写 且为追加的方式写
        f = open(r'C:Usersz00Desktopyrdy.txt', mode='r+',encoding='utf-8')
        content = f.read()
        print(content)
        f.write("李白")
        f.flush() # 刷新缓冲区
        f.close()
    
        # 推荐的文件操作方式
        with open(r'C:Usersz00Desktop	est.txt', mode='r+', encoding='utf-8') as f:  # 不需要关闭
            content = f.read()
            print(content)
            f.write("李白")
    

      

  • 相关阅读:
    SqlServer同义词
    Topshelf+Quartz3.0基于控制台应用程序快速开发可调度windows服务
    IdentityServer4实现.Net Core API接口权限认证(快速入门)
    记SqlSugar ORM框架之找不到主键问题
    Ocelot网关+IdentityServer4实现API权限认证
    Asp.Net Core入门之静态文件
    Asp.Net Core入门之自定义中间件
    Asp.Net Core入门之配置文件
    写在前面
    Web中间件常见漏洞总结
  • 原文地址:https://www.cnblogs.com/zhaoyujiao/p/15471317.html
Copyright © 2020-2023  润新知