Python的基本数据类型

blog 285

0x01 引入

我们需要使用变量去记录一些事物的状态以及变化。而变量的值类型就显得格外重要了,例如要存储人的身高、体重、年龄、游戏任务的等级等等。他们都需要着不同的数据类型。

0x02 Number类型

在Python中是没有Number类型这个概念的。我们所说的Number类型,其实为int类型、float类型、complex类型的统称。

0x02.1 int(整数)类型

int类型的表现形式为纯数字整数。并且该数字不被任何(单双三)引号包裹。那么它就是int类型。

age = 18   # 使用整型去记录年龄
print(type(age))     #  <class 'int'>

0x02.2 float(浮点数)类型

float类型的表现形式为带有小数点的数。并且该小数不被任何(单双三)引号包裹。那么它就是float类型。

salary = 3.3     #  使用浮点数记录薪资(k)
height = 1.7     #  使用浮点数记录身高(m)
weight = 70.2    #  使用浮点数记录体重(kg)
demo = 10.0      
print(demo)     #  <class 'float'>
print(type(height))  #  <class 'float'> 

#  数字类型的其他使用(可用于数学运算以及比较大小 之后运算符会讲到)
#  int类型是可以和float类型之间做运算的。
level = 1 
new_level = level + 1 
print(new_level)
print(10 * 3 )
print(2.10 + 10 )

0x02.2 complex(复数)类型

复数由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以j或者J作为后缀。

具体格式为: a + bj

以下为示例:

a = 6 + 0.2j
print(type(a))     #  <class 'complex'>

0x03 String(字符串)类型

0x03.1 作用

用来记录人的名字,家庭住址,性别等描述性质的状态

0x03.2 定义

name = 'x1ong'
love = 'computer'
gender = 'male'
print(type(name))     #   <class 'str'>

单引号或者双引号以及一对三个双引号或者一对三个单引号包裹起来的字符。我们称之为字符串。

name = "x1ong"
love = 'computer'
gender = """male"""
old_name = '''帅哥'''
print(type(name),type(love),type(gender),type(old_name))  

# 输出结果: <class 'str'> <class 'str'> <class 'str'> <class 'str'>
# 引号嵌套使用的问题

desc = "My Name is 'X1ong' "
print(desc)   #  My Name is 'X1ong'   

# 多引号可以换行写字符串。

text = """
        我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥
        我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥
        我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥我是帅哥
"""
print(text)


# 还可以使用转义字符\。将单引号转为为普通的单引号。(只需要在要转换字符的前方加入即可)
name = 'My name is \'x1ong\''
print(name)

PS: 一对三个单引号或者一对三个双引号在Python中,如果没有进行赋值操作。那么它就是一个多行注释。如果被进行了赋值操作,例如:name = """ x1ong """,那么此时它不再是多行注释了。而是一个字符串。

0x03.3 字符串的特殊使用

# 数字可以进行加减乘除等运算,字符串呢?也可以,但只能进行字符串之间"相加"以及字符串和数字之间"相乘"运算。

print("hello" + "world")   #  helloworld  字符串之间使用加法运算是字符串的连接。
print("=" * 10 )   #   ==========  相当于自身重复打印10次

0x04 list(列表)类型

0x04.1 作用

当我们需要使用一个变量去存储多个名称的话,我们使用字符串类型是不妥当的。因为我们存不是目的。重要的是如何去取。而name = "x1ong xiaoming xiaohong" 不利于取。因此我们就需要使用list类型。

0x04.2 定义

在Python中我们使用[]包裹起来的元素叫做列表。每个元素(值)之间使用逗号进行间隔。
name = ['x1ong','xiaoming','xiaohong']

0x04.3 使用

name = ['x1ong','xiaoming','xiaohong']
print(name[0])   #   x1ong
print(name[1])   #   xiaoming 
print(name[2])   #   xiaohong 



# 列表的嵌套取值
list =  [['x1ong',17,'xincai'],['fan',18,'xiping'],['li',18,'tanghe']]

print(list[0])  #  取出最外层列表中的第一个列表
print(list[0][0])  #  取出最外层列表中的第一个列表中的第一个值
print(list[1][1])   #  取出最外层列表中的第二个列表中的第二个值
print(list[2][2])   #  取出最外层列表中的第三个列表中的第三个值
print(list[-1][2])   # 取外层列表中最后一个列表的第三个值

我们可以通过下标(索引)去取列表中的某个元素。注意:下标(索引)是从0开始的。也就是我们要向取出第一个值。那么我们对应的下标就为[0]

0x05 dict(字典)类型

0x05.1 作用

如果我们需要一个变量记录多个值,但是如果值较多的话,我们使用列表取值是相对来说比较麻烦的。因为我们还要计算值的索引。但是如果我们将值与某个key进行绑定操作。我们调用key的时候,就可以找到对应的值了。而key的名称,通常为值的描述。key的作用类似变量,方便我们找到某个值。

0x05.2 定义

dict = {'name':'x1ong','age':17,'addr':'China'}

# 字典的语法格式:

# {key:value,key:value,key:value}    #  一般key名都为字符串类型。

0x05.3 使用

dict = {'name':'x1ong','age':17,'addr':'China'}
print(dict)  #  直接打印整个字典
print(dict['name'])  #   从字典中取key为name对应的值 即 x1ong
print(dict['age'])   #   从字典中取key为age对应的值 即 17
print(dict['addr'])  #   从字典中取key为addr对应的值 即 China
print(type(dict))  #  <class 'dict'>

#  字典中的嵌套取值
info = [
    {'name':'x1ong','age':17,'hobby':['music','read','writeBlog']},
    {'name':'fan','age':18,'hobby':['music','chat']},
    {'name':'li','age':18,'hobby':['love','study']}]
print(info[0]['name'])  # 取列表中第一个字典中key为name的值 即 x1ong
print(info[-1]['hobby'][0])  # 去列表中最后一个字典中key为hobby索引为0的值  即 love

我们可以通过对应的key名访问到对应的值。

0x06 boolean(布尔)类型

0x06.1 作用

用来表示真与假或者错与对两种状态。

0x06.2 定义

bool = True
bool = False    #  严格区分大小写

0x06.3 使用

通常在if判断中使用,比如我们需要判断条件是否满足。条件满足时(为True)执行某个代码块。条件不满足时(为False)执行某个代码块。

0x07 元组(tuple)类型

0x07.1 作用

它的作用和列表基本一致。也是通过下标(索引)取出值的。但是列表是动态数组,也就是说我们后面 可以通过某个函数,在原列表里面追加一些新的元素,但是元组就是静态的固定不变的。一旦被定义,就不能使用某个函数进行追加。(后续会讲到)

0x07.2 定义

tup =  (1,2,3,4,'x1ong','li','fan')
print(type(tup))   #   <class 'tuple'>

使用()括起来,并且每个元素(值)之间使用逗号进行间隔。

0x07.3 使用

tup =  (1,2,3,4,'x1ong','li','fan')
print(type(tup))
print(tup[4])

取值方法和列表基本一致。都是通过下标取值的。

声明:本文章所整理学习的知识全部由Egon老师传授

Egon老师知乎首页:https://www.zhihu.com/people/xiaoyuanqujing

分享