变量
基本概念:
1、 变量,名字,数据的唯一标识
2、变量命名:
- 字母、数字、下划线;
- 不能以数字开头;
- 区分大小写;
- 不能使用保留字和关键字;
- 命名要有意义;(多个单词时,推荐使用下划线连接)
3、变量本身没有类型,也没有类型限制,数据类型是根据赋值的类型
加深对变量的认识:
a = 1 b = a a = 2 print(a) 结果:2 print(b) 结果: 1
分析:
a = [1, 2, 3] b = a a[0] = ‘1’ print(a) 结果: [‘1’, 2, 3] print(b) 结果: [‘1’, 2, 3]
分析:
变量两个维度:
- 值类型 不可变 int 、string、tuple
- 引用类型 可变 list、set、dict
举栗
举栗子前,先介绍一个 Python 内置函数
id()
, 用于获取内存存储数据的地址。
# 栗子1 print(id('hello')) // 结果:4364624200 a = 'hello' b = 'hello' print(id(a)) // 结果: 4364624200 print(id(b)) // 结果: 4364624200 a = a + 'world' print(id(a)) // 结果:4364610096 # 栗子2 'Python'[0] 'Python'[0] = 'p' // 结果就会报以下错误了 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
通过两个栗子,从而证明值类型的不可变,变量重新的赋值只是指向了一个新的地址。
不可变的元组与可变的列表
a = [1, 2, 3] id(a) // 结果: 4636166088 内存地址(转换为16进制,比较合适) a.append(4) // 末尾追加一个数值,使用点运算符的链式方式 id(a) // 结果:4636166088
得出结论:改变内部的值并不会改变存储在内存的地址
b = (1, 2, 3)
元组定义好后是不可改变的,也没有上面列表的追加参数的函数方法;在程序上能用元组解决问题的尽量使用元组,少使用列表,团队合作开发互相调用下避免修改。
多维元组,列表
a = (1, 2, 3, (1, 2, 3)) 访问: a[3][2] b = (1, 2, 3, [1, 2, 3]) b[3][1] = '1' print(b) // 结果:(1, 2, 3, [1, '1', 3]) 修改元组里的列表里的值是可以,因为修改的是列表
运算符
运算符这里就把画的一个思维导图放上,只要知道有几种运算符种类和每个种类运算符可以干嘛就行了,具体到各个符号用的时候看看思维导图 就好~
887934385 交流群 分享资料,分享技术