1. 静态语言和动态语言中的变量表示

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下:

int a = 123; // a是整数类型变量
a = "mooc"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活。

2. 变量在计算机中的内存表示

最后,理解变量在计算机内存中的表示也非常重要。当我们写:a = ‘ABC’时,Python解释器干了两件事情:

  1. 在内存中创建了一个’ABC’的字符串;

  2. 在内存中创建了一个名为a的变量,并把它指向’ABC’。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = 'ABC'
b = a
a = 'XYZ'
print(b)

最后一行打印出变量b的内容到底是’ABC’呢还是’XYZ’?如果从数学意义上理解,就会错误地得出b和a相同,也应该是’XYZ’,但实际上b的值是’ABC’:
执行·a = ‘ABC’,解释器创建了字符串 ‘ABC’和变量 a,并把a指向 ‘ABC’:

执行a
执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串’ABC’:

执行a = ‘XYZ’,解释器创建了字符串’XYZ’,并把a的指向改为’XYZ’,但b并没有更改:

所以,最后打印变量b的结果自然是’ABC’了。

【廖雪峰python入门笔记】变量相关推荐

  1. 【廖雪峰python入门笔记】列表生成式

    1. 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, ...

  2. 【廖雪峰python入门笔记】函数

    1. 函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  3. 【廖雪峰python入门笔记】for循环

    list或tuple可以表示一个有序集合.如果我们想依次访问一个list中的每一个元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print(L[0]) print ...

  4. 【廖雪峰python入门笔记】list_创建

    1. list 列表:list 1. 是Python内置的一种数据类型 2. 是一种有序的集合 3. 可以随时添加和删除其中的元素 比如,列出班里所有同学的名字,就可以用一个list表示: ['Mic ...

  5. 【廖雪峰python入门笔记】迭代

    1. 迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过for ...

  6. 【廖雪峰python入门笔记】切片

    1. 对list进行切片 对list进行切片 取一个list的部分元素是非常常见的操作.比如,一个list如下: L = ['Adam', 'Lisa', 'Bart', 'Paul'] 取前3个元素 ...

  7. 【廖雪峰python入门笔记】dict

    1. dict 我们已经知道,list和tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是 ...

  8. 【廖雪峰python入门笔记】if语句

    1. if语句及缩进规则 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if ...

  9. 【廖雪峰python入门笔记】tuple_创建单元素

    tuple和list一样,可以包含 0 个.1个和任意多个元素. 包含多个元素的 tuple,前面我们已经创建过了. 包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示: t = ( ...

最新文章

  1. 你想要的自动驾驶汽车,为何迟迟不能出现?
  2. matlab函数画图创建gui,如何在MATLAB中的函数内创建GUI?
  3. 使用python写一个名片管理系统
  4. nhibernate set null to DateTime column
  5. 3socket编程:UDP编程
  6. 别问我跨域了,我想吐
  7. Kafka学习笔记-Java简单操作
  8. 快速地创建快顶尖的医学图像处理控件ImageGear Medical
  9. crontab实现每秒执行
  10. PHP字符串中的变量解析(+教你如何在PHP字符串中加入变量)
  11. pdf形式是什么意思
  12. 如何从派生类函数调用父类函数?
  13. Angular 在项目中使用fullcalendar 日程表
  14. 4.卷1(套接字联网API)---基本TCP套接字编程
  15. WebAPI Delete方法报错405 Method Not Allowed
  16. SendMessage 与 PostMessage
  17. mysql 全文索引 (N-gram parser)
  18. 有赞宣布收费,免费模式在移动电商时代真走不通?
  19. 【博文笔记】Attentive Reader\Impatient Reader:机器阅读理解之开山之作Teaching Machines to Read and Comprehend
  20. 周纪四 赧王中十八年(甲子、前297)——摘要

热门文章

  1. C#如何根据DataTable生成泛型List或者动态类型list
  2. nodejs安装、配置及开发工具
  3. CSS与HTML结合
  4. hdu 3664 1~n排列(aii ) 为k个数
  5. 技术图文:匿名方法是怎样演变为Lambda表达试的?
  6. 记录一次自己清理数据的过程
  7. 图像读取、转为灰度图像、均值平滑、显示保存操作
  8. IplImage 类型和 CvMat 类型转换为 Mat 类型
  9. 【Python】Scrapy爬虫实战(传智播客老师简介)
  10. iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术