码迷,mamicode.com
首页 > 其他好文 > 详细

基础数据类型

时间:2021-05-24 04:33:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:垃圾回收   ret   yield   object   raise   命名   try   geo   efi   

1.变量

1. 什么是变量

  1. 变量就是可以变化的量,量指的是事物的状态,比如人的性别年龄游戏角色

2.为什么要有变量

  1. 为了让计算机能够像人一样的去记忆事物的某种状态,并且这种状态是可以发生变化的
  2. 详细的说:
    1. 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。

3.如何用变量

1. 变量的基本使用

原则:先定义,后调用

>>> name = ‘李四‘  # 定义
# PEP8规范:等号两边要有空格
>>> print(name)  # 引用
李四  # 输出结果
>>>
>>> age = 18
>>> print(age)
18
>>>

2.变量的内存管理

  1. 垃圾回收机制
    1. 垃圾指的是当变量值被绑定的变量名的个数为零时,该变量值无法被访问到,称之为垃圾
  2. 引用计数增加
>>> x = 10 # x指向10的内存地址 10的引用计数为1
>>> y = x  # 10的引用计数为2
>>> z = x  # 10的引用计数为3
>>> print(x,y,z)
10 10 10
>>>
  1. 引用计数减少
>>> x = 10 # x指向10的内存地址
>>> y = x
>>> z = x
>>> print(x,y,z)
10 10 10
>>> del x # 解除变量名x与值10的绑定关系,10的引用计数变为2
>>> print(y)
10
>>> print(z)
10
>>> print(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘x‘ is not defined
>>> # 10的引用计数变为2
>>> del y
>>> print(y)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘y‘ is not defined
>>> # 10的引用计数变为1
>>> z = 12345  # 后面定义的变量会把前面定义的覆盖
>>> # 10的引用计数变为0
>>> print(z)
12345
>>> # 10的引用计数变为0

3.变量的命名

  1. 变量有三大组成部分
    1. 变量名====》指向等号右侧值的内存地址,用来访问右侧的值
    2. 赋值符号===》将变量值的内存地址绑定给变量名
    3. 变量值====》代表记录的事物的状态
  2. 变量名
    1. 原则:见名知意
    2. 原则:不能以数字开头
    3. 原则:不能用python内置的关键字来命名
    4. 命名规则:
      1. 变量名只能是 字母、数字或下划线的任意组合
      2. 变量名的第一个字符不能是数字
      3. 关键字不能声明为变量名[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
    5. ps:尽量不要用拼音,不要用中文(虽然不报错),在见名知意的前提下尽可能短
    6. 变量名的命名风格
      1. 纯小写加下划线的方式(在python中,变量名的命名推荐按使用这种方式)
      2. 驼峰体
# 见名知意
>>> age = 18
>>> name = ‘alxe‘

# 不能以数字开头
>>> 1 = ‘alex‘
  File "<stdin>", line 1
SyntaxError: cannot assign to literal
>>>

# 不能用pytho内置的关键字来命名
>>> print = 666
>>> print(print)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ‘int‘ object is not callable
>>>

# 不要用中文,它不报错
>>> 名字 = ‘李四‘
>>> print(名字)
李四
>>>

# 纯小写加下划线的命名方式
>>> age_of_alex = 23
>>> print(age_of_alex)
23
>>>

# 驼峰体的命名方法
>>> AgeOfAlex = 23
>>> print(AgeOfAlex)
23
>>>

4.变量值的三个重要特征

1.id

  1. 反映的是变量值的内存地址,变量的内存地址不同则ID不同

2.type

  1. 不同类型的值用来表示记录不同的状态

3.value

  1. 值本身
# 查看id
>>> name = ‘alex‘
>>> print(id(name))
2844864947632

# 查看类型
>>> print(type(name))
<class ‘str‘>

# 查看值
>>> print(name)
alex
>>>

5.is与==

1.is

  1. 比较左右两个值的身份id是否一样

2.==

  1. 比较左右两个值是否相等
>>> name1 = ‘张三‘
>>> name2 = ‘张三‘

>>> print(name1, name2)
张三 张三

>>> print(id(name1), id(name2))
2844864881744 2844864881840
>>># 值相等的情况下,id可能不同,即两个完全不同的内存空间里可以存放两个完全相同的值
# id相同的情况下,值一定相同
>>>
>>> print(name1 is name2)
False
>>> print(name1 == name2)
True
>>>

3.小整数池(了解)

  1. 从python解释器启动开始,解释器会事先在内存中申请一系列的内存空间存放好常用的整数
# int
>>> m = 10
>>> n = 10
>>>
>>> id(m)
140725410912192
>>>
>>> id(n)
140725410912192
>>>
>>> res = 4 + 6
>>> res
10
>>>
>>> id(res)
140725410912192
>>>

# 字符串

>>> x = ‘aaa‘
>>> y = ‘aaa‘
>>>
>>> id(x)
2844864948784
>>> id(y)
2844864948784
>>>
>>> x is y
True
>>>

2.常量

不变的量

  1. python语法中没有常量的概念,但是在程序开发中会涉及到常量的概念
  2. 变量名全为大写代表常量,    这只是一种约定,规范
>>> AGE_OF_ALEX = 23
>>> AGE_OF_ALEX = 18
>>> print(AGE_OF_ALEX)
18
>>>

基础数据类型

标签:垃圾回收   ret   yield   object   raise   命名   try   geo   efi   

原文地址:https://www.cnblogs.com/linxi321/p/14751912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!