• python全栈-Day 9


    整体课程安排

    1、Python基础

    • 基础数据类型
    • 流程控制:条件判断和各种循环
    • 函数
    • 面向对象和模块
    • 网络编程
    • 并发编程

    2、什么叫文件处理:从内存——硬盘的过程叫文件处理的过程

    3、什么叫数据库:存储数据和信息,本质上和文件没有区别,增删改查相对文件更加方便了

    4、前端:html、css

    5、框架:django

    6、操作系统,Linux基础

    复习文件处理

    1、打开文件

    • open(‘文件路径’,‘操作方式’,‘编码方式’):

    2、操作文件

    • 读 read
    • 写write
    • 光标seek、tell、truncate(截取文件)

    3、关闭文件

    • close

    4、修改文件:文件是不能修改的,可以将操作后的文件写到另一个文件,再重命名到原文件名

    with open('wj_txt',encoding='utf-8',mode='r') as f1,
            open('wj_txt.bak',encoding='utf-8',mode='w') as f2:
        for line in f1:
            if '王静' in line:
                line = line.replace('王静','王静修改后')
            f2.write(line)
    #删除文件 和重命名文件
    import os
    os.remove('wj_txt')  #删除文件
    os.rename('wj_txt.bak','wj_txt')  #重命名文件
    

    一、初始函数、返回值、参数

    1、函数定义了之后,可以在任何需要它的地方调用。函数的作用:可读性强,复用性强

    调用函数之前,需要先定义函数。因此,必须将函数写到上方,再将调用函数的代码写在下方

    • 内置函数:len等,自定义函数:自己定义的函数
    • 自定义函数

    2、自定义函数的结构(遇到return就结束函数,return可以返回多个值,return可有可无,参数可有可无)

    • def 函数名(参数):    #定义函数
    •      函数体
    •      return 返回值

    3、返回值个数

    • 没有返回值:不写return/只写return/return None
    • 一个返回值:return一个变量。接收返回值:接收变量名 = 函数名(参数)
    • 多个返回值:接收函数返回值,可以用一个变量接收多个返回值,此时得到一个元组,也可以用相同个数的变量接收多个返回值,原因是因为元组可以解包,即a,d,c = (1,2,3)----元组、列表、字典均可以解包

    4、形式参数(形参)--暂时不知道需要的参数类型,在函数定义的时候用到

    • 位置参数:对应实参必须传的参数。定义函数的时候,则直接写参数名
    • 默认参数:对应实参可以不传实参的参数,又叫关键字参数,如果不传实参,就使用默认值。定义函数的时候,则写:参数名 = 默认值
      def classmate(name,sex = '男'):
          print('{}:{}'.format(name,sex))
      
      classmate('王静','女')
      classmate('汪晓')
    • 动态参数:
      • *参数名(习惯为:*args),可以接收任意多个按照位置传参的参数,对应的参数是 元组的类型
      • **参数名(习惯为:**kwargs),可以接收任意多个按照关键字传参的参数,对应的参数是 字典的类型
      • 动态参数的传参方式1----
        def func(*args,**kwargs):
            print(args,kwargs)
        
        func(1,2,3,l = [1,2,3],a = (1,2,3))
      • 动态参数的传参方式2----
        def func(*args,**kwargs):  #站在形参的角度上,给参数加*就是将传过来的所有值组合成元组,加**就是将传过来的键值组合成字典
            print(args,kwargs)
        
        l = [1,2,3,4,5]
        dic = {'wangjing':18,'wangxiao':20}
        func(*l,**dic)  #站在实参的角度上,给序列加*就是将序列按照顺序打散,加**就是将字典按照关键字的顺序打散
    • 定义函数的时候,必须先定义 位置参数,再定义 关键字参数。总体顺序为:位置参数--*args--关键字参数--**kwargs

    5、实际参数(实参)--已知参数,在函数调用的时候用到

    • 调用函数的时候,如果按照位置传参,则直接写参数的值
    • 调用函数的时候,如果按照关键字传参,则写:关键字 = 值
    • 在调用的时候,不管对应的形参是位置参数还是默认参数,都可以 按照位置传参 或者 按照 关键字传参

    6、参数个数

    • 没有参数:定义参数和调用参数的括号中均为空
    • 一个参数:形参的类型需要和实参类型一致
    • 多个参数:在形参参数的角度上,位置参数必须有对应的实参,对应形参和实参的类型需要一致
      • 在实参的角度上,按照位置传参,调用的时候 第n个参数传给第n个形参,此时叫 位置参数
      • 在实参的角度上,按照关键字传参,调用的时候 按照形参=实参的形式传参
      • 以上二者可以混用,但是要注意先按照位置传参,在按照关键字传参
      • 不能给同一个变量传多个值
      • 在形参的角度上,位置参数必须传

    7、函数的注释

    • def fuc():
    •     '''
    •     这个函数实现了什么功能
    •     参数1、2、3、4.。。是什么作用和数据类型
    •     返回值是什么
    •     '''
    •     pass

    8、默认参数的陷阱

    • 如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值,就共用这个数据类型的资源
      def qqxing(k,l = {}):
          # l.append(1)
          l[k] = 'v'
          print(l)
      
      qqxing(1)     #{1: 'v'}
      qqxing(2)     #{1: 'v', 2: 'v'}
      qqxing(3)     #{1: 'v', 2: 'v', 3: 'v'}
      qqxing(1)     #{1: 'v', 2: 'v', 3: 'v'}
      qqxing(1)     #{1: 'v', 2: 'v', 3: 'v'}

    二、考试试题讲解

    1、这个以后有空的时候再看吧~~~

  • 相关阅读:
    西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)
    2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules) D. Firecrackers (贪心,二分)
    2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules) C. Berpizza (STL)
    2020 ICPC Asia Taipei-Hsinchu Regional Problem H Optimization for UltraNet (二分,最小生成树,dsu计数)
    2020 ICPC Asia Taipei-Hsinchu Regional Problem B Make Numbers (dfs搜索)
    Codeforces Round #689 (Div. 2, based on Zed Code Competition) E. Water Level (贪心好题)
    Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3) C. Peaceful Rooks (思维,dsu找环)
    PAT五一线上模拟测试赛
    【PAT五一线上模拟测试赛】7-3 垃圾分类 (20分) Java和Python
    【PAT五一线上模拟测试赛】7-2 三阶幸福数 (20分) Pyton+Java
  • 原文地址:https://www.cnblogs.com/txbbkk/p/9399484.html
Copyright © 2020-2023  润新知