天天看点

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

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

0. 引入

\qquad 既上篇文章介绍的二元操作符: 【Python数据分析基础-1】二元操作符(又全又清晰!)

\qquad 这篇文章,我将介绍一下Python的标量!

1. Python标量类型表

Python标量类型表

类型 描述
None 空值,Python的"null"值(只存在一个实例)
str 字符串类型,包含Unicode(UTF-8编码)字符串
bytes 原生ASCII字节(或者Unicode编码字节)
float 双精度64位浮点数值(请注意并没有独立的double类型)
bool 布尔值,只有True或者False两个值
int 任意精度无符号整数

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的第三个字符是啥
           

然后尝试进行修改:

程序产生了报错,即字符串变量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

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

(4) float与int

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

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模块以及一些日期和时间信息处理的常用方法!