变量和引用

领取Python学习资料可以加小编的微信:tz2020jd

变量和数据都是保存在内存中的;
在python中函数的参数传递以及返回值都是引用传递的;
变量和数据是分开存储的;
变量中记录数据的地址,就叫做引用;
使用id()函数可以查看变量中保存的数据所在的内存地址;
注意: 如果变量已经被定义,当给一个变量复制的时候,本质上是修改了数据的引用。① 变量不再对之前的数据引用;②变量改为对新复制的数据引用;
可变类型和不可变类型
不可变类型: 内存中的数据不允许修改:

① 数字类型: int、bool、 float、complex、long
② 字符串 :str
③ 元组 :tuple

可变类型: 内存中的数据可以被修改

① 列表 list
② 字典 dict

可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a;
不可变类型: 变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
函数参数传递时注意:

不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响;
局部变量和全局变量
局部变量:函数内部定义的变量,只能在函数内部使用;
全局变量: 函数外部定义的变量,所有函数内部都可以使用这个变量;(不推荐使用)

注意: 在python中,不允许修改全局变量的值,如果修改,会在函数中定义一个局部变量;

num = 10

# python中,不允许修改全局变量

def method1():
    num = 99  # 这里没有修改全局变量num,而是自己又定义了一个局部变量,执行完这个函数,局部变量就会回收
    print(num)

def method2():
    print(num)  # 虽然在method1中修改了 num 但是却不会修改

method1()
method2()

# 输出
# 99
# 10

可以使用global关键字修改全局变量的值。
全局变量的命名规则: 前面加上g_ 或者gl_;

领取Python学习资料可以加小编的微信:tz2020jd

Python基础知识:变量和引用相关推荐

  1. Python基础知识——变量与运算符

    Python的基础知识一 文章目录 Python的基础知识一 变量的类型 变量--数据的载体 变量的命名 命名规则 变量的使用 总结 Python的运算符 赋值运算符 算术运算符 比较运算符和逻辑运算 ...

  2. python基础知识——变量 算术运算符

    人生苦短 我用Python 注释:CTRL+/ 养成写注释习惯 变量: #在控制台打印你好界面 print("hello word") #幼儿园 #小红  2 #小明  3 #小黄 ...

  3. python基本语法规则-python基础知识——基本语法

    在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括:基本语法 控制语句 内置数据结构 模块和函数 字符串 文件处理 面向对象 异常处理 以前写机器学习算法喜欢使用Mat ...

  4. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  5. python基础知识培训价格_Python基础知识的学习

    看到有人推荐Jupyter notebook中markdown另存为md文件的方法,可以将文档直接导入到知乎里.自己尝试了下,效果很好.文档中为Python基础知识的学习和练习内容. 数据类型:字符串 ...

  6. Python中的变量、引用、拷贝和作用域

    在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...

  7. python环境下数据操作_数据分析环境搭建和Python基础知识

    搭建数据分析环境主要包括使用anaconda管理包和环境:使用Jupyter notebook将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.Python基础知识包括关键点(数据 ...

  8. python基础知识及数据分析工具安装及简单使用(Numpy/Scipy/Matplotlib/Pandas/StatsModels/Scikit-Learn/Keras/Gensim))

    Python介绍. Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置 python基础知识及数据分 ...

  9. Python基础知识笔记

    文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...

  10. 1、Python 基础知识总结

    1.Python 简介 Python 是一门简单易学的,面向对象的,解释型的脚本语言,也是一种开源的.可移植性强的.可扩展性强的高级编程语言,常用于科学计算与人工智能.WEB 开发.金融.云计算等领域 ...

最新文章

  1. swing 圆角按钮_JFrame实现圆角窗体
  2. cognos学习轨迹
  3. python大量数据折线图-Python数据可视化练习:各种折线图的用法
  4. oracle中存在函数吗,Oracle中的函数
  5. OpenCASCADE:构建配置文件
  6. 开始复习下sql,常用SQL语句示例(一)
  7. luoguP4755 Beautiful Pair
  8. npm 依赖下载报错 Hostname/IP does not match certificate‘s 相关 解决方案
  9. 32位和64位操作系统,二者有何区别?是否64位更快?
  10. python画曲线图-python画蝴蝶曲线图的实例
  11. css3 下拉缩放显示定位导航
  12. java简单小项目_java入门简单小项目有哪些?适合java初学者项目
  13. manjaro(linux)安装网易云音乐
  14. python(三):时间窗口
  15. 台式电脑计算机怎么打不开怎么回事,为什么电脑自带的软件打不开怎么办
  16. hive优化:大表关联数据倾斜问题
  17. umi hooks里的mutate使用方法
  18. 指法练习软件需求说明书
  19. 清华大学周伯文老师课题组招聘助理教授/博士后/工程师
  20. Linux 基础实战(二)

热门文章

  1. 什么是死锁?死锁如何解决?
  2. FI:会计年度变式, 字段状态变式, 信贷控制范围
  3. Matlab:叠加阶梯图和线图
  4. java面向对象-巧用LOL讲解
  5. 珊瑚海 - 一站式跨端动态化布局框架原理
  6. vue手机端的调试神器eruda
  7. mysql密码策略设置
  8. 源码分析学习记录(5)——骨骼存储与建立
  9. Java之多线程锁的10点整理和建议
  10. matlab泊松回归程序,R - 泊松回归( Poisson Regression)