首页 > 编程语言 >编程路-基础提升-第六周-02

编程路-基础提升-第六周-02

时间:2022-12-10 22:55:05浏览次数:29  
标签:02 函数 编程 第六周 参数 类型 报错 全局变量 变量

函数进阶

编程真正常用的是基于简单函数的复杂函数,需要对其真正理解和熟悉后,并经常应用才能牢记并会使用。

  • 变量作用域

 

  1. 概括
    1. 可变数据类型使用方法或者全局声明可以对外部造成影响。
    2. 传参进来,可以修改,但是不会影响到外部的变量
    3. 当数据直接在函数使用是不可更改的,除了方法对可变参数除外,例如:变量.操作(): 方法 例如:a.sum()
  2. 变量分类
    1. 全局变量
      1. 全局变量可以在函数中被调用
      2. 类型
        1. 全局变量是不可变类型时,在函数不能被直接操作会报错,但被其他变量调用时不会报错
        2. 全局变量是可变类型时,在函数被直接操作会不报错
      3. global 声明变量为全局变量
        1. 声明一个变量为全局变量,进行操作会影响到外面的变量
        2. 不可变类型参数传入函数,进行的操作不会影响到外面的变量
          局部变量
    2. 局部变量:函数中的局部变量只能对函数起作用,作用效果优于全局变量
  3. 变量类型
    1. 变量是不可变数据类型 -可读不可写
    2. 变量是可变数据类型-可读可写的
  • 多函数执行流程

多函数执行时如果中间涉及到了全局变量的更改,会影响到后面函数执行中的变量的情况

  • 函数的返回值
  1. 返回值是一个参数,则返回类型根据实际情况来决定返回值类型
  2. 如果返回多个参数,会被按顺序存放到元组中
    1. 如果返回值是一个 接收参数为一个
    2. 如果返回值是多个 接收参数为一个或者是返回的个数
  3. 取值
    1. 可以用索引一个一个取出
    2. 可以用拆包的方式分别取出变量
  • 函数的参数

使用函数要变量与定义函数的变量个数一致,否则报错

  1. 参数类型
    1. 实参--实际参数
    2. 形参--函数中的定义参数
  2. 关键字传参
    1. 关键字传参可以不按照顺序输入
    2. 关键字参数一定全部写在最后面
    3. 如果有一个关键传参没写,但是顺序没错,也能识别,不会报错
    4. 但如果一个关键传参没写,但是顺序错聊了,就会报错
  3. 默认参数
    1. 不写使用默认参数 写了使用传入参数
    2. 在定义函数是就已经为定值了
    3. 默认参数要定义的参数后面全部是默认参数,否则就报错
    4. 这样的好处是可以值输入一个变量,函数也能运行不报错
  4. 不定长传参
    1. *args  把没有形参的实参进行打包(*args是包本身 )
      1. 其实就是再不确定形参个数下进行打包在函数下执行函数
      2. 打印args,数据是元组类型
      3. 还可以对其中输出数值进行取值
      4. 当对含*的*args 的打印时,就不是元组,是数据本身
    2. **kwargs ,把没有形参的实参进行打包 只打包关键字参数
      1. 如果使用函数中关键字,不会报错
      2. 如果没有使用函数中关键字,会报错
      3. kwargs 是字典类型(取值也遵守字典的规则,取出Key,得到value)
    3. 拓展:不定长传参可以不光用\*args 和\**kwargs ,用别的字母也可以,这是目前默认用这个两个,方便大家阅读程序方便
  • 拆包和交换值的数据

用赋值的形式,进行交换值    a, b = b, a

  • 可变不可变类型
  1. 可变
    1. 列表
    2. 字典
    3. 集合
  2. 不可变
    1. 数字
    2. 字符串
    3. 元组
    4. 布尔
    5. .......
  • type类型显示类型
  1. 1个是常规的类型
  2. 3个是面向对象的(类名称,类继承对象,类的属性方法)
  3. type对其操作后发现整体已经是所属的类了,然后对其再取值,就相当于对另一种所属类的操作了

 

标签:02,函数,编程,第六周,参数,类型,报错,全局变量,变量
From: https://www.cnblogs.com/qipaxiaopao/p/16972479.html

相关文章

  • 编程路-基础提升-第六周-01
    函数入门函数时编程中重要的内容,是基础中的重点,也是高阶的基础,所以要掌握明白了解。函数基础变量.操作():方法例如:a.sum()变量.操作():属性例如:a.name操作():函数例如:s......
  • IDEA2022双击图标打不开,无反应?
    分析:Win10电脑以前安装过IDEA2019,并且是解决试用版本第三方jar包配置​​jetbrains-agent.jar​​,直接运行bin目录下idea.bat报错尝试将JDK1.8升级到11问题一样解决方法:打......
  • Blog3:nchu-software-oop-2022-6~8
    Blog3:nchu-software-oop-2022-6~8一、前言不知不觉,已到了本学期末尾,面向对象程序设计这门课也已经结课。课程虽然结束了,但需要学习和巩固的知识点还有很多。同时,这也......
  • 2022年浙大城市学院新生程序设计竞赛(同步赛)
    A.OP(Nowcoder48876A)题目大意输出fengqibisheng,yingyueerlai!解题思路python最快我错了,php直接打这个字符串就可以了神奇的代码print("fengqibisheng,yingy......
  • 2022-6.824-Lab2:Raft
    0.准备工作lab地址:https://pdos.csail.mit.edu/6.824/labs/lab-raft.htmlgithub地址:https://github.com/lawliet9712/MIT-6.824论文翻译地址:https://blog.csdn.net......
  • 小新学Java17-【网络编程】
    一、网络编程入门1.1软件结构  两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2网络通信协议......
  • BUUCTF之[BJDCTF2020]BJD hamburger competition (复现)
    一个老八把我整不会了,看其他师傅的wp才知道,这个是C#和unity开发的游戏,所以我们用dnspy进行反编译下面是复现过程看到是unity程序,上网查了相关参考,一般是用js或者c#进行......
  • 2022-6.824-Lab1:Map&Reduce
    lab地址:https://pdos.csail.mit.edu/6.824/labs/lab-mr.html1.介绍准备工作阅读MapReduce做什么实现一个分布式的Map-Reduce结构,在原先的代码结构中6.......
  • python操作数据编程
    支持数据库类型:Mysql,Oracle,SQLServerRedis,memcached连接Mysql数据库pipinstallpymysql流程:1、创建数据库连接2、基于数据库连接创建游标cursor  1)向数据库服务器......
  • nchu-software-oop-2022-6~8
    前言(作业分析)本次总结6-8次PTA题目集电信计费三次,三次电信计费题目,主要是考察正则表达式和ArrayList和集合,然后就是对类的封装、继承等知识,在写新的大作业需要认......