python基础之五种常用数据类型
数据类型基础
一、什么是数据类型
其实可以明白数据类型指的就是变量值的不同类型,姓名可能是一种数据类型、年龄可能是一种数据类型、爱好可能又是另一种数据类型
二、为何对数据分类
变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。
三、不同数据类型
[数字类型]
[字符串类型]
[列表类型]
[字典类型]
[布尔类型]
数字类型
整型(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 如何用
加减乘除、逻辑判断(大于、小于)
字符串类型
1.1 作用
表示名字、爱好
**1.2定义方式 **
字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行。如:
name1 = 'nick'
name2 = "egon"或
name3 = """nick
egon"""
1.3使用方法:
字符串只能+、*和逻辑比较
字符串的拼接,即重新申请一个小空间把两个字符串都拷贝一份后再拼接。而不是你YY的把一个小空间内的变量值复制到另一个变量的小空间内,然后拼接
注意:
1、如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同。
2、字符串的乘法只能乘以数字。
3、字符串比较大小,按照ASCII码比较,以后会细讲。
4、字符串的比较是字母的顺序。
列表类型(list)
1.1作用
存放多个值,如多个女朋友、多个爱好。
1.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']
1.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
字典(dict)
1.1作用
用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。
1.2 定义
在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。
1.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
# 字典套字典
user_info = {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': {
'c_name': 'oldboy', 'c_addr': 'shanghai', 'c_num_of_employee': 50}}
print(user_info['name'])
print(user_info['company_info']['c_name'])
nick
oldboy
布尔类型
1.1作用
用于判断条件结果
1.2定义
True、False通常情况不会直接引用,需要使用逻辑运算得到结果。
1.3 如何用
print(bool(0))
print(bool('nick'))
print(bool(1 > 2))
print(bool(1 == 1))
False
True
False
True
$\color{red}{注意}$:Python中所有数据类型的值自带布尔值。如此多的数据类型中只需要记住只有0、None、空、False的布尔值为False,其余的为True。
print(bool(0))
print(bool(None))
print(bool(''))
print(bool([]))
print(bool({}))
print(bool(False))
False
False
False
False
False
False
解压缩
如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?
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
Python与用户的交互
一、为什么交互
让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互。现在让我们了解下Python是怎么实现交互的。
二、如何交互
name = input('请输入你的姓名:')
pwd = input('请输入你的密码:')
print(type(name))
print(type(pwd))
请输入你的姓名:nick
请输入你的密码:123
<class 'str'>
<class 'str'>
通过上面的打印结果,我们可以发现input()方法的作用只是接收值。由于我们目前基础知识不够,我们暂时使用input()交互,之后会使用Web/可视化界面的形式交互。
$\color{red}{注意:无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。}$