zoukankan      html  css  js  c++  java
  • 函数基础

    一、控制指针的移动:
    只有在t模式下的read(n),n代表字符个数,除此之外都是以字节为单位的
    with open('a.txt',mode='rt',encoding='utf-8') as f:
      res=f.read(4)
      print(res)
        表示的是四个字符

    with open('a.txt',mode='rb') as f:
      res=f.read(3)
      print(res.decode('utf-8'))
        表示的是三个字节,相当于一个字符

    with open('a.txt',mode='at',encoding='utf-8') as f:
      f.truncate(3)
        表示的是截段

    f.seek():指针移动是以字节为单位的

    with open ('a',mode='rt',encoding='utf-8')as f:
      f.seek(3,0)

    三种模式:

      只有0模式既可以在t下用也可以在b下用,而1、2两种模式只能在b模式下使用
    0(默认的):参照文件开头
    with open('a.txt',mode='rt',encoding='utf-8') as f:
      f.seek(3,0)
      print(f.tell())
      print(f.read())

    1:参照指针当前所在的位置
    with open('a.txt',mode='rb') as f:
      f.read(2)
      f.seek(4,1)
      print(f.tell())
      print(f.read().decode('utf-8'))

    2: 参照文件末尾
    with open('a.txt',mode='rb') as f:
      f.seek(-5,2)
      print(f.tell())
      print(f.read().decode('utf-8'))


    二、函数的基本使用
    1. 什么是函数
      在程序具备某一功能的工具=》函数
      事先准备好工具=》函数的定义
      遇到应用场景、拿来就用=》函数的调用

    分为两大类:
      1. 内置函数
      2. 自定义函数


    2. 为何要用函数
      1. 代码冗余
      2. 程序的组织结构不清晰,可读性差
      3. 扩展性差

    3. 如何用函数
      函数的使用必须遵循先定义后调用原则:
      1. 先定义
        定义语法:
          def 函数名(参1,参2,参3,...):
            """
            文档注释
            """
            代码1
            代码2
            代码3
            ...
            return 值

      2. 后调用
        函数名()

    定义阶段:只检测语法,不执行代码
    调用阶段:开始执行函数体代码

    三、定义函数的三种形式:
    1.无参函数
      def func():
      print('from func')
    2.有参函数
      def max2(x,y):
        if x > y:
          print(x)
        else:
          print(y)

      max2(1,2)
      max2(3,4)

    3.空函数
      def register():
        pass

    调用函数的三种形式:
      1.语句形式
        def func():
          print('from func')

        func()
      2 表达式形式
        def max2(x,y):
          if x > y:
            return x
          else:
            return y

        res=max2(1000,2000) * 12
        print(res)

        res=len('hello')
        print(res)

      3 函数的调用可以当作另外一个函数的参数传入
        def max2(x,y):
          if x > y:
            return x
          else:
            return y

        res=max2(max2(1,2),3)
        print(res)


    四、函数返回值
    1. 什么是函数的返回值
      返回值是函数体代码的运行成果

    2. 为何要有返回值
      需要拿到函数的处理结果做进一步的处理,则函数必须有返回值

    3. 如何用返回值
      return 返回值的特点:
        1. 返回的值没有类型限制,也没有个数限制
          I: return或者函数没return:默认返回None
          II: return 值:返回的就是该值本身
          III: return 值1,值2,值3:返回元组(值1,值2,值3)

        2. return是函数结束运行的标志,函数内可以有多个return,但只要执行一次函数就立即结束,并且将return后的值当作本次调用的结果返回

    (一) 函数的参数分为两大类:
    1. 形参:

      在定义函数时括号内指定的参数(变量名),称之为形参
    2. 实参:

      在调用函数时括号内传入的值(变量值),称之为实参
    二者的关系:

      在调用函数时,实参值(变量值)会传给形参(变量名),这种绑定关系在调用函数时生效,调用结束后解除绑定

    (二):函数参数详解
    1. 形参:
      1.1 位置形参:
        在定义阶段,按照从左到右的顺序依次定义的形参
        特点:必须被传值

      1.2 默认参数:
        在定义阶段,就已经为某个形参赋值,该形参称之为默认形参
        特点:在定义阶段就已经有值,意味着调用阶段可以不用为其传值
        注意点:位置形参必须放在默认形参的前面

      1.3 形参中*与**的用法
        1. 形参中带*:*会将溢出的位置实参存成元组的形式然后赋值其后变量名

        2. 形参中带**:**会溢出的关键字实参存成字典的格式然后赋值其后变量名

    2. 实参
      2.1 位置实参:
        在调用阶段,按照从左到右的顺序依次传入的值
        特点:这种传值方式会与形参一一对应

      2.2 关键字实参:
        在调用阶段,按照key=value的格式传值
        特点:可以完全打乱位置,但仍然能为指定的形参传值

        注意:
          可以混用关键字实参与位置实参,但是
          1. 同一个形参只能被赋值一次
          2. 位置实参必须跟在关键字实参的前面

      2.3 实参中*与**的用法
        1. 实参中带*:先将实参打散成位置实参,然后再与形参做对应
        2. 实参中带**:先将实参打散成关键字实参,然后再与形参做对应

  • 相关阅读:
    C#概述
    作为一个程序员小小感悟!!
    c# 合并两个DataTable
    C# FastReport .NET打印
    c# System.Net.Sockets =》TcpListener用法
    开博第一章
    Vue 报错 Uncaught (in promise)
    ASP.NET MVC 中的过滤器
    SpringBoot 打包成war
    SprintBoot 实现上传下载
  • 原文地址:https://www.cnblogs.com/zhangxin-/p/10029142.html
Copyright © 2011-2022 走看看