Python中主要的数据
- 字符串
- 数字
- 列表
- 元组
- 集合
- 字典
- 布尔类型: True, False
- None类型:如果没有值,使用None 来表示。
Python中变量命名规则
变量名中 一般使用英文字母来命名。如果有多个英文字符,中间可以使用下划线隔开。
name = "张三"
first_name = "张"
last_name = "三"
命令规则:
可以使用
_
开头。_name = "张三"
print(_name)
不能使用数字开头来命名。 下面命名是错误的。
1name = "张三"
变量名中如果有数字,数字放在后面是可以的。下面的变量命名都是正确的。 ```python
name1 = “zhangsan” n1ame = “lisi” 1name = “wangwu” name = “tom”
print(name1,n1ame,1name,name)
3. 变量名中不能包含除了`_` 之外的其他特殊字符。下面命名会报错。
```python
last-name = "xiaohong" # 报错, 横线不支持
last!name = "xiaowang"
$a = "xiaoming"
- 可以中文,或者拼音作为变量名。但是不推荐大家这样做。下面的命名不会报错,但是不推荐。 ```python
姓名 = “王小川”
print(姓名)
xingming = “wangxiaoer” print(xingming)
推荐大家使用英文来命名,如果有多个英文,中间使用 下划线`_`隔开。
<a name="HnuMV"></a>
## 命名规范参考
<a name="pk8Uo"></a>
# 可变对象和不可变对象
<a name="j2fpW"></a>
## 基本代码
<a name="r9Mac"></a>
### 列表类型
先看一段代码。
```python
nums1 = [1,2,3]
nums2 = nums1
nums2.append(4)
print(nums1)
运行结果结果
nums1 = [1,2,3]
nums2 = nums1
# nums2 发生了改变
nums2.append(4)
print(nums1) # [1, 2, 3, 4] [1, 2, 3, 4] nums 跟着改变
# nums1 发生改变
nums1.append(5)
print(nums2) # [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
# id查看内存地址
print(id(nums1),id(nums2)) # 2198245454208 2198245454208
上面的代码 结果一致 主要是因为 nums2 = nums1
再看下面这段代码
n1 = [1,2,3]
n2 = [1,2,3]
n1.append(4)
print(n2)
两个变量 结果互不干扰。
再看一个代码
字典结构
如果我定义个字典格式的数据。
ob1 = {
"name":"小明",
"nums":[1,2,3]
}
ob2 = ob1
ob1["name"] = "小王"
print(ob1,ob2)
集合类型
s1 = {0,-1,-2}
s2 = s1
s2.add(1)
print(s1,s2) # {0, 1, -1, -2} {0, 1, -1, -2}
print(id(s1),id(s2)) # 2479149376544 2479149376544
内存地址也是一样的。
字符串类型
a = "xiaoming"
b = a
print(id(a),id(b))
a = "tom"
print(a,b) # tom xiaoming
print(id(a),id(b))
字符串是不可变对象。
更改a的值,b的值不变。
思考
- 元组,数字,布尔,None 是可变类型还是不可变?