三、基本数据类型

1、什么是数据?为什么要有多种类型的数据?

  1.1、数据即变量的值,例如 age=18,18是我们需要保存的数据。

  1.2、变量的是用来反映/保持,状态以及状态变化的,针对不同的状态应该用不同类型的数据去标识。

  1.3、了解Python是一门解释型的强类型动态语言

    概括来说编程语言的划分有以下三种模式:

1.3.1、编译型or解释型

1.3.2、强类型or弱类型

1.3.2.1、强类型语言:数据类型不可以被忽略的语言

    即变量的数据类型一旦被定义,那就不会再改变,除非进行强转。

    在Python中,例如: name = 'egon',这个变量name在被赋值的那一刻,数据类型就被确定死了,是字符型,值为'egon'。

1.3.2.2、弱类型语言:数据类型可以被忽略的语言。

    比如linux中的shell中的一个变量,是随着调用方式的不同,数据类型科随意切换的那种。

1.3.3、动态型or静态性

1.3.3.1、动态型语言:运行时才进行数据类型检查

    在变量赋值的时候,就确定了变量的数据类型,不用事先给变量指定的数据类型

1.3.3.2、静态型语言:需要事先给变量的数据类型,不用事先给变量制定可随意切换的那种。

1.3.4、所以综上所述,Python是一门解释型的强类型动态语言。

    

2、数字

2.1、int整型

    定义:例如:age=10   #age=int(10)

用于标识:年龄,等级,身份证号,qq号,个数

2.2、float浮点型

    定义:salary=3.1   #salary=float(3.1)

用于标识:工资,身高,体重。

2.3、其他类型(了解)

2.3.1、int整型

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647;
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807。

2.3.2、long长整型

    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    注意:在Python3里不再有long类型了,全都是int
>>> a= 2**64
>>> type(a) #type()是查看数据类型的方法
<type 'long'>
>>> b = 2**60
>>> type(b)
<type 'int'>

2.3.3、complex复数型

>>> x=1-2j
>>> x.imag  #复值
-2.0
>>> x.real    #真值
1.0

 

2.4、字符串

    在Python中,加了引号的字符就是字符串类型,Python并没有字符类型。

    定义:name='egon'   #name=str('egon')

用于标识:描述性的内容,比如名字,性别,国籍,种族。

2.4.1、单引号,双引号,三引号的区别

在Python中,单引号,双引号,三引号并没有任何的区别,需要注意不同引号间的配合。2.4.2、字符串拼接

2.4..2.1只能在字符串之间进行,且只能相加或者是相乘。例如:

>>> name='egon'
>>> age='18'
>>> name+age #相加其实就是简单拼接
'egon18'
>>> name*5
'egonegonegonegonegon'

2.4.2.2、注意1:字符串相加的效率不高;

    字符串1+字符串2,并不会在字符串1的基础上加入字符串2,而是申请一个全新的内存空间存入字符串1和字符串2的和。

2.4.2.3、注意2只能字符串加字符串,不能字符串加其他类型。

2.5、列表

    在[]内用逗号分隔,可以存放n个任意类型的值

    定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',])

    用于标识:存储多个值得情况,比如一个人有多个爱好

    例如:存放多个学生的信息:姓名,年龄,爱好

>>> students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]

>>> students_info[0][2][0] #取出第一个学生的第一个爱好 'play'

 2.6、字典

2.6.1、什么要用字典

    存放一个人的信息:姓名,性别,年龄,很明显是多个值,在基于知道对应位置的情况下,可以使用列表去存放。在不知道对应关系的情况下,需要需求一种可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典。

    在{}中用逗号分隔,可以存放多个key:value的值,value可以是任意类型。

    定义:info={'name':'egon','age:18','sex:18'}   #info=dict({'name':'egon','age:18','sex:18'})

    用于标识:储存多个值的情况,每个值都有唯一对应的key,可以更为方便高效的取值。

    例如:

info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
print(info['company_info']['name']) #取公司名

students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
print(students[1]['hobbies'][1]) #取第二个学生的第二个爱好

2.7、布尔类型

2.7.1、布尔值,一个Ture,一个False

    我们在编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说,人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运算与逻辑运算,此处的布尔类型九模拟人的逻辑运算,即判断一个条件成立时,用Ture标识,不成立则用Flase标识。

>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True 

    接下来就可以根据条件结果来干不同的事情了:
if a > b
print(a is bigger than b )

else
print(a is smaller than b )
上面是伪代码,但意味着, 计算机已经可以像人脑一样根据判断结果不同,来执行不同的动作。

2.7.2、注意:所有的数据类型都自带布尔值

                      None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False

                      其余皆为True

2.8、重点:

2.8.1、可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典。

2.8.2、不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)

猜你喜欢

转载自www.cnblogs.com/jingpeng/p/12373537.html
今日推荐