python 数据类型
什么是数据类型?
数据类型可以拆开理解,数据是用来记录状态的,而类型则表示的是针对不同状态用不同的数据类型去表示。
(比如人的年龄用整数去表示,而银行计算利息用小数去表示)
ps:数据类型都是靠python内部对应的数据类产生出来的。
int整型
作用:记录等级,电话号码,QQ号,年龄,人数等等
>>> age = 18 # 即 age = int(18) >>> print(age,type(age)) 18 <class 'int'>
float浮点型
作用:记录体重,银行利息,薪资等等
>>> salary = 8929.45 # 即 salary = float(8929.45) >>> print(salary,type(salary)) 8929.45 <class 'float'>
ps:整型和浮点型在加减乘除中运用较多
##:为方便记忆,可以将整型和浮点型统称为数字类型(非官方叫法)
补充知识1:复数
>>> n = 1+2j #这样表示复数,似乎只能用字母j来表示复数 >>> type(n) <class 'complex'>
>>> n.real 1.0 >>> n.imag 2.0
补充知识2:长整型
(只有python2中才有)
Python 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> n = 123 >>> type(n) <type 'int'> >>> n = 123123123123123123123123123 >>> type(n) <type 'long'> >>> n = 123123123123123123123123123L >>> type(n) <type 'long'> >>> n = 1L >>> type(n) <type 'long'>
str字符串
作用:记录描述性质的数据,比如人的名字、性别、家庭地址、公司简介
定义:在引号内按照从左到右的顺序依次包含一个个字符,引号可以是 'xxx' , "xxx" , 三引号
#单引号
>>> name = 'bitten' >>> type(name) <type 'str'>
#双引号
>>> name = "bitten" >>> type(name) <type 'str'>
#三引号
info = """ name:bitten age:18 """ print(info)
>>>
name:bitten age:18
#三引号可以存多行 #并且在没有被变量名接收的情况下可以 # 当注释
ps:之所以有三种方式,是为了防止字符串中的文本值也需要引号而带来不便。
# 字符串的拼接
>>> x = '1' >>> y = '2' >>> x + y '12' >>> msg1 = 'hello' >>> msg2 = 'world' >>> msg1 + msg2 'helloworld' # 1、字符串之间可以相加(不同数据类型之间不能相加) # 2、字符串相加是新申请内存空间然后拷贝相加的字符串到新的空间中,效率不高 >>> 'my name is' + " bitten " + 'my age is' + " 18 " 'my name is bitten my age is 18 ' # 3、字符串还可以做乘法运算 >>> 'hello' * 5 'hellohellohellohellohello'
list列表类型
作用:存储多个元素,可以方便地取出指定位置的值,比如从一堆个人信息中取出年龄等
定义:在[]内用逗号分隔开多个任意类型的值
#补充:list的内部是链表
l = [20,45.33,'bitten',['a','b']] print(l) #[20, 45.33, 'bitten', ['a', 'b']] print(l[0]) #20 print(l[2]) #bitten print(l[3]) #['a', 'b'] print(l[3][1]) #b
>>> l1=['a','b',['c',['d','e']]] >>> print(l1[2][1][0]) d
>>> hobbies=["read","music","sleep","eat","play"] >>> print(hobbies[2]) sleep
# 小练习 students_info=[ ['bitten',18,['play',]], ['JOJO',18,['kick','punch']] ] print(students_info[1][2][0])
kick
#思考🤔:列表虽然能够存储多个值,并且取也很方便。但是如果现在有个要求,要存大量的信息数据,还应该用列表吗?
dict字典类型
作用:以 key:value 的形式记录多个值,优势是每一个值value都有其对应关系/映射关系key,而key对value有描述性的功能 #注:key:value是一个值
定义:在{}内用逗号分隔开多个key:value元素,其中value可以是任意的数据类型,而key通常应该是字符串类型
info={ 'name':'bitten', 'sex':'male', 'age':18 } print(type(info)) print(info['name'])
<class 'dict'> bitten
#思考🤔:为什么要用字典?
>>>字典能够明确的表示数据指代的是哪方面的信息
>例如:name,sex,age,等等
>>>能表示详细信息
info={ 'name':'bitten', 'age':18, 'sex':'male', 'company_info':{ 'com_name':'baidu', 'area':200, 'addr':'GuangZhou' } } print(info['company_info']['com_name'])
baidu
#注意:一个字典可以表示很多,甚至世界上各个国家的各个城市等等
并且由于字典是无序的,因为它不需要顺序去存取数据而用的是key
#思考🤔:什么时候用列表,什么时候用字典?
>>>:当存取的是相同的一类数据时可以用列表,当存储的数据需要明确一一对应关系的时候用字典。
bool布尔类型
作用:用来作为判断条件来使用
>>> tag = True # tag = bool(True) >>> print(type(tag)) <type 'bool'>
#一般情况下我们不是直接操作的布尔值而是通过判断去得到布尔值
# ==比较的是值
# is:比较的是id是否相等
# 强调:id相等值一定相等,id不等但是值仍然可以相等
>>> res = 3>1 >>> print(id(res)) 140736154141472
>>> tag = True >>> print(id(tag)) 140736154141472 >>> tag2 = True >>> print(id(tag2)) 140736154141472 #id 地址相同
# 布尔值在内存中就两个值,不会反复的开辟新的内存空间存放
#补充:变量名用is开头的,一般存储的都是布尔值。
例如:is_exit, is_delete等等
#补充:布尔值位False的数据有:0,None,'' , [] , {}
布尔值可以直接用来判断
变量名也可以用来判断,因为变量名指向的值对应的就是True或False