Python中主要的数据

  • 字符串
  • 数字
  • 列表
  • 元组
  • 集合
  • 字典
  • 布尔类型: True, False
  • None类型:如果没有值,使用None 来表示。

Python中变量命名规则

变量名中 一般使用英文字母来命名。如果有多个英文字符,中间可以使用下划线隔开。

  1. name = "张三"
  2. first_name = "张"
  3. last_name = "三"

命令规则:

  1. 可以使用_ 开头。

    1. _name = "张三"
    2. print(_name)
  2. 不能使用数字开头来命名。 下面命名是错误的。

    1. 1name = "张三"

    image.png
    变量名中如果有数字,数字放在后面是可以的。下面的变量命名都是正确的。 ```python

name1 = “zhangsan” n1ame = “lisi” 1name = “wangwu” name = “tom”

print(name1,n1ame,1name,name)

  1. 3. 变量名中不能包含除了`_` 之外的其他特殊字符。下面命名会报错。
  2. ```python
  3. last-name = "xiaohong" # 报错, 横线不支持
  4. last!name = "xiaowang"
  5. $a = "xiaoming"
  1. 可以中文,或者拼音作为变量名。但是不推荐大家这样做。下面的命名不会报错,但是不推荐。 ```python

姓名 = “王小川”

print(姓名)

xingming = “wangxiaoer” print(xingming)

  1. 推荐大家使用英文来命名,如果有多个英文,中间使用 下划线`_`隔开。
  2. <a name="HnuMV"></a>
  3. ## 命名规范参考
  4. <a name="pk8Uo"></a>
  5. # 可变对象和不可变对象
  6. <a name="j2fpW"></a>
  7. ## 基本代码
  8. <a name="r9Mac"></a>
  9. ### 列表类型
  10. 先看一段代码。
  11. ```python
  12. nums1 = [1,2,3]
  13. nums2 = nums1
  14. nums2.append(4)
  15. print(nums1)

运行结果结果
image.png
扩展 - 图3

  1. nums1 = [1,2,3]
  2. nums2 = nums1
  3. # nums2 发生了改变
  4. nums2.append(4)
  5. print(nums1) # [1, 2, 3, 4] [1, 2, 3, 4] nums 跟着改变
  6. # nums1 发生改变
  7. nums1.append(5)
  8. print(nums2) # [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
  9. # id查看内存地址
  10. print(id(nums1),id(nums2)) # 2198245454208 2198245454208

上面的代码 结果一致 主要是因为 nums2 = nums1


再看下面这段代码

  1. n1 = [1,2,3]
  2. n2 = [1,2,3]
  3. n1.append(4)
  4. print(n2)

扩展 - 图4
两个变量 结果互不干扰。
image.png


再看一个代码

字典结构

如果我定义个字典格式的数据。

  1. ob1 = {
  2. "name":"小明",
  3. "nums":[1,2,3]
  4. }
  5. ob2 = ob1
  6. ob1["name"] = "小王"
  7. print(ob1,ob2)

执行,查看结果。两个结果一样。
image.png
字典和列表一样,也是可变的。

集合类型

  1. s1 = {0,-1,-2}
  2. s2 = s1
  3. s2.add(1)
  4. print(s1,s2) # {0, 1, -1, -2} {0, 1, -1, -2}
  5. print(id(s1),id(s2)) # 2479149376544 2479149376544

内存地址也是一样的。

字符串类型

  1. a = "xiaoming"
  2. b = a
  3. print(id(a),id(b))
  4. a = "tom"
  5. print(a,b) # tom xiaoming
  6. print(id(a),id(b))

字符串是不可变对象。
扩展 - 图7
更改a的值,b的值不变。


扩展 - 图8

思考

  1. 元组,数字,布尔,None 是可变类型还是不可变?

深拷贝与浅拷贝