《Python学习之路 -- Python基础之数据类型》

  计算机是处理数值运算和逻辑运算的高级电子设备,因此,计算机程序理所当然会处理各种各样的数据,不同的数据需要定义不同的数据类型。而在Python中,能够直接处理的数据类型有以下几种:

①整型(int)

  Python可以处理任意大小的整数,当然也包括负整数。在程序中的表示方法和数学上的写法基本一致,例如:1,200,-8080等等。整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数池,避免为整数频繁申请和销毁内存空间。Python对小整数的定义是 [-5,257) 这些整数对象是提前建立好的,不会被垃圾回收,也就是说,在一个Python程序中,所有位于这个范围的整数使用的都是同一个对象,例如:

由上图可见,5000不在整数池范围内,所以使用的两个对象,而数值5则都是同一个对象。(注:id()方法用于返回变量的内存地址)

②浮点型(float)

   浮点数也就是小数,之所以成为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23 * 109 就是1.23e9,或者12.3e8,浮点数也可以用数学的写法,比如:1.23 ,3.14 , -9.07等等。但是对于很大或者很小的浮点数,就必须使用科学计数法表示。注意:整数和浮点数在计算机内部的储存方式是不同的,整数运算永远是精确的(包括除法),而浮点数的运算则有可能会有四舍五入的误差。

③字符类型(str)

  字符串是以单引号或双引号括起来的任意文本,比如'abc' , "xyz"等,请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。与JS一样,在Python中可以使用\表示转义字符,但是在Python中,如果字符串中包含有歧义的转义字符,但是又不需要转义的时候可以使用r''来表达:

print('hello\tworld')  # 输出: hello world
print(r'hello\tworld') # 输出: hello\tworld

所以,如果字符串里面含有转义字符但是又不期望转义的,只需要在字符串前加上 r 即可实现。

另外,字符串有很多操作的方法,详见《Python学习之路 -- 字符串的方法》 

④布尔值(bool)

  与其他编程语言一样,Python也只有两种:True和False,注意首字母大写(在某些编程语言为小写,比如JavaScript),而且在Python中也同样提供了布尔值的或与非运算:

与运算:使用 and 关键字

True and True
>>>True
True and False
>>>False
False and False
>>>False
5 > 3 and 3 > 1
>>>True
1 and 2
>>>2

或运算:使用 or 关键字

True or True
>>>True
True or False
>>>True
False or False
>>>False
5 > 3 or 1 > 3
>>>True
1 or 2
>>>1

非运算:使用 not 关键字

not True
>>>False
not False
>>>True
not 1 > 2
>>>True

与JavaScript相似的是,在或与运算中,如果运算的两者不是布尔类型,则结果也不会返回一个布尔值,而是返回对应的值(上面标红部分)

⑤空值(None)

  空值是Python里一个特殊的值,用None表示(相当于JavaScript中的null)。

⑥列表(list)(相当于JavaScript中的数组)

  列表是Python中内置的一种数据类型list,是一种有序的集合,就像JavaScript中的数组一样,都使用方括号 [  ] 来表示,里面存放的被称为元素,一个列表可以存储多个元素(定义一个列表不需要像Java一样定义它的长度,Python中的列表也没有长度限制),也可以随时添加或删除元素;也可以通过下标索引的方式来读取或修改元素。

# 定义一个列表储存人的名字
names = ['Jack','Jonas','Tom','Bob']
# 通过下标索引(从0开始的自然数)读取列表中的元素
print(names[0])  # 输出 Jack
# 通过下标索引修改第三个元素Tom为Jerry
names[2] = 'Jerry'
# 打印整个列表
print(names)  # 输出 ['Jack', 'Jonas', 'Jerry', 'Bob']

除了通过索引的方式操作元素以外,列表还提供了很多操作元素的方法,详见《Python学习之路 -- 列表的方法》。 

⑦元组(tuple)

   元组也是Python内置的一种数据类型,访问元组内的元素与列表也一致,但是与列表不同的是,元组一旦初始化就不能修改,列表使用方括号 [   ] 来表示,而元组使用小括号 (   )  来表示,使用元组需要注意以下事项:

1、元组一旦初始化,则不能修改,但是如果元组内的元素是可变类型(比如说列表),则可以对元组内的可变类型的数据进行修改:

# 创建一个元组,里面包含了一个列表和两个数字
num_tuple = ([1,2,3],5,6)
# 修改列表(append()方法是列表的内置方法,用于向列表的末尾添加元素)
num_tuple[0].append(4)
# 打印元组观察  
print(num_tuple)  # 输出:([1,2,3,4],5,6)

 2、当元组只储存一个元素时,该元素后必须加上逗号,用于告知解释器该变量储存的数据类型是元组而不是一个小括号

# 如果只有一个元素时,不加逗号
num_tuple = (1)
# 打印结果,type()方法用于检查变量的类型
print(num_tuple,type(num_tuple))  # 输出 1 类型为int
# 加上逗号才是一个元组,这就是逗号的魅力
num_tuple = (1,)
print(num_tuple,type(num_tuple))  # 输出 (1,) 类型为tuple

 3、元组内的元素一旦声明则不能修改,但是可以通过del关键字将保存该元组的引用变量删除

 ⑧字典(dict) (相当于JavaScript中的普通对象)

   同样的,字典也是一种内置数据类型,使用键-值(key-value)的方式存储数据,字典以大括号{   }的形式来表示,一个字典可以存储多个键值对,键与值之间使用冒号:来分隔,而键值对与键值对之间使用逗号来分隔。字典具有极快的查找速度,通过dict['key]的方式来访问对应的value值,但是通过这种方式找不到对应的value则会报错,如果使用字典的内置方法dict.get('key')方法来访问,如果找不到则不会报错,而是返回None

# 创建一个字典表示一个人的信息
person = {'name':'jonas','age':18,'gender':'male','address':'China'}
# 访问字典的某个value
print(person['name'])  # 输出 jonas
print(person['salary'])  #该属性不存在,程序报错

除了这种操作以外,字典还有很多方法,详见《Python学习之路 -- 字典的方法》

⑨集合(set)

  集合也是Python的一种数据类型,集合使用大括号{   }来表示,可以将集合理解为削弱版的字典,因为集合只保存key,没有value,而且保存的key是不可变类型,也不能出现重复,如果出现重复的数据,解释器则会直接将重复的过滤掉。

# 创建一个集合
num_set = {1,2,3,3}
# 若出现重复的数据,则会直接过滤重复的部分
print(num_set)  # 输出{1,2,3}
# 向集合中添加元素
num_set.add(4)
print(num_set)  # 输出{1, 2, 3, 4}
# 删除集合中的元素
num_set.remove(2)
print(num_set)  # 输出{1, 3, 4}

猜你喜欢

转载自www.cnblogs.com/jonas-von/p/8920660.html