【Python数据分析基础-2】Python标量类型

0. 引入

既上篇文章介绍的二元操作符,这篇文章,我将介绍一下Python的标量!

1. Python标量类型表

Python标量表.png

2. 标量详解

1. None

$/qquad$None相当于特殊的常量,它表示的不是 0,而是没有值即空值,但是空值也不代表空对象。

   None is 0     # 不是 0
   结果为:False
   None is ""    # 不是空的字符串对象
   结果为:False
   None is {}    # 不是空的字典对象
   结果为:False

$/qquad$None的数据类型是NoneType 类型,需要注意的是:None只存在一个实例,即None 是 NoneType 数据类型的唯一值,也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。所以在上篇文章对"is"操作符进行讲解的时候,我们发现不管把None赋给哪个变量,这些变量都是同一个Python对象!你将None赋予给变量时,一直是将同一个Python对象赋予这些变量!

   a = None
   b = None
   c = None
   print(a is b)
   print(a is c)
   print(c is b)
   True
   True
   True

2. 字符串类型str

可以用单引号 ‘ 或双引号 " 写一个字符串字面值:

   a = 'TuDou'
   b = "TongXue"   # a、b均为字符串

对于含有换行的多行字符串,可以使用三个单引号 ”’ 或者 三个双引号 """,注意换行符也会被包含在内

   c = '''
   Hello! 
   I'm TuDou
   '''

   d = """
   Hello! 
   I'm TuDou

   """

可以用count的方法来计算多行字符串里的换行符,如下

   print(c.count('/n'))
   print(d.count('/n'))
   3
   4

python的字符串是不可变的,即字符串无法被修改,如下

   a = 'TuDou'
   a[2]   # 先通过切片,看看字符串变量a的第三个字符是啥
   'D'    # 结果为字符'D'

然后尝试进行修改:

   a[2] = 'B'

程序产生了报错,即字符串变量a不支持这种修改:

   ---------------------------------------------------------------------------
   TypeError                                 Traceback (most recent call last)
   <ipython-input-7-01b15c7a3ade> in <module>
   ----> 1 a[2] = 'B'

   TypeError: 'str' object does not support item assignment

对于字符串,我会在后面的文章中进行更详细的讲解。

3. 字节与Unicode

$/qquad$对于字节和Unicode的关系以及其他编码的知识,UTF-8 到底是什么意思?unicode编码简介 这篇博客我觉得解释得十分详细了!

4. float与int

$/qquad$Python中基础的数字类型就是int和float,其中int可以储存任意大小的数字,而float表示的是浮点数,并且每个浮点数都是双精度64位数值。注意,Python中的整数除法会把结果自动转型为浮点数,如下:

   5 / 2
   2.5

Python中并没有单独的double类型的标量,只有类似于double类型的float型。

5. 布尔值bool

很简单的标量类型,只有True或者False两个值,可以和and、or等关键字合用!

6. 类型转换

str、bool、int、float既是数据类型,同时也是可以将其他数据转换为这些类型的函数!具体操作如下:

   s = 1.23456
   print(type(s))
   print(int(s))
   print(str(s))
   print(bool(s))
   print(bool(0))

结果为:

   <class 'float'>
   1
   1.23456
   True
   False

下篇文章,我将详细介绍Python标准库中的datetime模块以及一些日期和时间信息处理的常用方法!