Python学习日记-数据类型和变量

本章目录

  • Part One:Python数字
  • Part Two:变量

在Python中,一切皆对象,包括数字等,也就是说没有基本数据类型的概念。Python的对象分为可变(mutable)和不可变对象(immutable)两大类,元组、数值、字符串属于不可变对象;字典和列表属于可变对象。
上述的几个也组成了Python的五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

Python数字

数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
Python中数字主要由三种:整数,浮点数和复数。

  1. 整数
    在Python中的2.x中,整数有两种:整数(int)和长整数(long)。它会自动将超过整型长度的数字转换为长整型(数字最后加上L字母表示长整形)。但是Python3中已经没有long类型了,int和long都叫整型(int)。
    整数也包括负整数,和数学中所理解的整数一致,写法也一样,例如:100, -200, 0等。
    计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0x69, 0xff00等。
    在Python中,还有一个整型常量池的概念。就是说,在实际开发过程中,对于频繁出现的整型,缓存到对象池中,这样可以减少对象的创建。在Python交互模式中,整数常量池是[-5, 257)之间的数,而在统一代码块中,下限-5是正确的,上限无。


    Python学习日记-数据类型和变量_第1张图片
    整型对象池.png
  2. 浮点数
    浮点数也就是数学上的小数,写法类似于3.14, 2.58等。对于很大或者很小的浮点数,可以用科学计算法表述,例如1.23x10的9次方就是1.23e9,0.000012可以写成1.2e-5等等。
    跟Java一样,整数是精确的,浮点数可能会存在四舍五入的误差。
    浮点数没有常量池的概念,不过作为同一代码组的时候,结果又是另一种情况,详情参考下列链接:https://www.zhihu.com/question/53536750。

    Python学习日记-数据类型和变量_第2张图片
    浮点数.png

  3. 复数
    复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
    另外,经测试,负数没有对象池这个概念。

  4. 布尔值
    Python文档中bool(布尔值)不属于数字类型,但是这里也把bool类型放在这里来说,因为bool是int的子类。
    布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写)。

变量

  1. 变量
    变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
    比如,我们把先前说的四个对象类型分别打印出来:


    Python学习日记-数据类型和变量_第3张图片
    对象类型.png

    等号左边是变量, 等号是赋值语句,等号右边是变量的值。
    这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,和静态语言相比,动态语言更灵活,就是这个原因。
    注意,等号是赋值的意思,并不是数学意义上的等于的意思。

  2. 空值
    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
  3. 常量
    所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法。

你可能感兴趣的:(Python学习日记-数据类型和变量)