python基础-变量和数字

1.对象类型

1.1变量

  1. 指向对象的一个引用,实质上是到对象内存空间的一个指针
  2. 总是连接到对象(而不是其他变量):
 >>> a = 12
 >>> b = a
(a相当于内存空间中的指针,指向的是对象数字12)
(b指向的是对象数字12,而不是变量a)
  1. 无需声明,在第一次赋值时被创建,在表达式中被替换为它们指向的值

a=12赋值过程:

  1. 创建变量a
  2. 创建一个对象(分配一块内存),来存储值12
  3. 将变量与对象,通过指针连接起来,从变量到对象的连接称之为引用(变量引用对象)
- 注:变量在表达式中使用前必须已经被赋值
  1. 赋值生成引用(而不是拷贝)
    • is测试:只有指向同一内存地址(严格意义上相等)的两个变量才会返回True

运行如下代码,查看返回结果,就能理解上面这段话:

a = 12
b = a
​a is b
  1. 变量命名规则
    1. 变量名必须是英文大小写、数字和的_组合
    2. 不能以数字开头
    3. 不能是关键字(内置函数名,如:print)

1.2动态类型

  • 类型的概念存在于对象中,而不是变量中
  • 多态:一个操作的意义取决于被操作的对象

1.3 自动内存管理

  • 最后一次引用对象后,该对象占用的内存空间会被自动回收
    • 1.小的整数和字符串会被缓存复用
    • 2.可以通过sys.getrefcount查询对象被引用的次


      python基础-变量和数字_第1张图片
      变量.png

      我们多次运行了两个不同的常量表达式,发现两个值相等并没有变换,证明python中有缓存机制。


2.数字(不可变对象)

2.1数字类型

  • 整型:一般的Python整数在内部以C语言的长整型来实现(32位)
  • 长整型:数值超过32位时,自动变为长整型,Python中以“l”或“L”结尾
    • Python3.0后,整型与长整型合并为整数类型int
  • 浮点数:以C语言的“双精度浮点型”来实现
  • 进制:八进制以0o开头,十六进制以0x开头
int_num = 20
float_num = 2.3
oct = 0o65
hex = 0x45
print(type(int_num), type(float_num),oct,hex)   # type():查看类型的方法。

返回
53 69

2.2 运算操作

  • 一般的数学运算:+、-、*、/、 **(乘方)
>>> 1+2
3
>>> 3-5
-2
>>> 2*2
4
>>> 9/6
1.5
>>> 2**2
4
  • 进制转换(转为字符串):oct(64), hex(64)
>>> oct(63)  # 63转化为8进制
'0o77'
>>> hex(63)  # 63转化为16进制
'0x3f'
  • 比较运算:==,!=,<, <=, >, >=
>>> 2==3     # 恒等于
False
>>> 2!=3     # 不等于
True
>>> 2<3
True
>>> 2>3
False
  • 常用运算:int、float、round、abs、sum、pow、max、min
>>> int(5.9)                           #将任意类型,转化为整型
5
>>> float('5')                          #将任意类型,转化为浮点型
5.0
>>> round(18.465546, 2)     #传入两个参数,保留小数位数
18.47
>>> abs(-99)                        #取绝对值
99
>>> sum([1,2,3],2)               # 列表计算总和后再加 2
8
>>> pow(2,3)                       # 返回x的y次方
8
  • 高级数学工具:通过导入Python内置库math,调用其中函数实现

你可能感兴趣的:(python基础-变量和数字)