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
result

#思考🤔:列表虽然能够存储多个值,并且取也很方便。但是如果现在有个要求,要存大量的信息数据,还应该用列表吗?

 

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
result

#思考🤔:为什么要用字典?

  >>>字典能够明确的表示数据指代的是哪方面的信息

  >例如: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
result

#注意:一个字典可以表示很多,甚至世界上各个国家的各个城市等等

  并且由于字典是无序的,因为它不需要顺序去存取数据而用的是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

posted @ 2019-07-01 20:30  Bitten  阅读(179)  评论(0编辑  收藏  举报