7.30 day4

1.数字类型

整型和浮点型统称为数字类型。

一、整型(int)

1.1 作用

表示人的年龄、各种号码、级别

1.2 定义

age = 18  # age=int(18)

print(id(age))
print(type(age))
print(age)
4530100848
<class 'int'>
18

1.3 如何用

加减乘除、逻辑判断(大于、小于)

二、浮点型(float)

2.1 作用

表示身高、体重、薪资

2.2 定义

salary = 2.1  # salary=float(2.1)

print(id(salary))
print(type(salary))
print(salary)
4569240656
<class 'float'>
2.1

2.3 如何用

加减乘除、逻辑判断(大于、小于)

2.字符串类型

2.1作用
表示名字、爱好

2.2 定义

字符串相当于一根羊肉串。而字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行。

name1 = 'nick'
name2 = "egon"
print(id(name1))
print(type(name1))
print(name1)
4418849624
<class 'str'>
nick
name3 = """nick
egon"""

print(name3)
nick
egon

2.3如何用

字符串只能+、*和逻辑比较

字符串的拼接,即重新申请一个小空间把两个字符串都拷贝一份后再拼接。

3.列表

如果现在有一个需求,我们需要存储一个人的爱好,如果我们使用我们之前学过的数据类型存储,那么毫无疑问,我么只能使用字符串存储,并且一个人的爱好可能是多个的,因此我们用空格作为爱好与爱好之间的分隔符。

hobbies = "read run girl"
print(hobbies)
read run girl

但是我们一直在强调,存不是目的,取才是目的。如果现在给我们一个需求,需要我们取出这个人的某个爱好,貌似以我们现在的知识无从下手。这个时候就得改变我们的策略,我们可以换种方法存储一个人的爱好——列表。

3.1 作用

存放多个值,如多个女朋友、多个爱好。

3.2 定义

在[]内用逗号分隔开任意类型的值。

hobby = 'read'
hobby_list = [hobby, 'run', 'girl']
print(id(hobby_list))
print(type(hobby_list))
print(hobby_list)
4558605960
<class 'list'>
['read', 'run', 'girl']

3.3 如何用

存不是目的,取才是目的,我们介绍列表索引取值的方法,牢记索引序号从0开始。

hobby_list = ['read', 'run', 'girl']
# 索引序号      0       1      2
# 取出第二个爱好
print(hobby_list[1])
run
hobby_list = ['read', 'run', ['girl_name', 18, 'shanghai']]
# 取出girl的年龄
print(hobby_list[2][1])
18

4.字典

如果现在有个需求需要存我的信息,通过我们之前学习的数据类型,只有列表能够存储我们的信息。

user_info = ['nick', 'male', '19', ['oldboy', 'shanghai', 50]]

print(user_info[1])  # 'male'
print(user_info[0])  # 'nick'
print(user_info[3][1])  # 'shanghai'
male
nick
shanghai

使用列表虽然达到了我们的目的,但是我们能通过列表取值的时候,是基于我们已经知道了列表内部所有的元素。因此我们是不是可以给列表内的每一个元素都添加一个描述信息呢?否则如果不是存我的信息,而是用列表存取了成千上万个值,那么我们怎么通过索引精准取值呢?这样看起来好像是不可能的,因此可以使用新的数据类型——字典。

4.1 作用

用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。

4.2 定义

在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。

user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
             'company_info': ['oldboy', 'shanghai', 50]}

print(id(user_info))
print(type(user_info))
print(user_info)
4396183344
<class 'dict'>
{'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': ['oldboy', 'shanghai', 50]}

4.3 如何用

字典取值方式不再依赖于索引,而是依赖于key,通过[key]即可获取key对应的value值。

# 字典套列表
user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
             'company_info': ['oldboy', 'shanghai', 50]}
print(user_info['name'])
print(user_info['company_info'][0])
nick
oldboy

5.布尔型

5.1作用
用于判断条件结果

5.2 定义

True、False通常情况不会直接引用,需要使用逻辑运算得到结果。

5.3 如何用

print(type(True))
print(True)
<class 'bool'>
True
print(bool(0))
print(bool('nick'))
print(bool(1 > 2))
print(bool(1 == 1))
False
True
False
True

注意:Python中所有数据类型的值自带布尔值。如此多的数据类型中只需要记住只有0、None、空、False的布尔值为False,其余的为True。

解压缩

如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?

name_list = ['nick', 'egon', 'jason']
x = name_list[0]
y = name_list[1]
z = name_list[2]
print(f'x:{x}, y:{y}, z:{z}')
x:nick, y:egon, z:jason

讲真,上面的方法真的是谁用谁知道,我们可以试一试解压缩。

解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。

name_list = ['nick', 'egon', 'jason', ]
x, y, z = name_list
print(f'x:{x}, y:{y}, z:{z}')
x:nick, y:egon, z:jason

有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线。

name_list = ['nick', 'egon', 'jason', 'tank']
x, y, z, a = name_list
x, _, z, _ = name_list  # _相当于告诉计算机不要了,不能以_开头和结尾

还能有一个更骚的操作,只可意会不可言传。

name_list = ['nick', 'egon', 'jason', 'tank', 'kevin', 'jerry']
x, y, _, _, _, z = name_list
x, y, *_, z = name_list

写程序不是用来装逼的,关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典解压缩的是key。

info = {'name': 'nick', 'age': 18}
x, y = info
print(x, y)
name age