这段时间一直没更新,有点小小的浮躁,已经更改,加油!
数据类型基础
一丶什么是数据类型
首先让我们回顾变量是什么:变量用来记录世界的状态。创建计算机的目的就是想要让计算机和人一样能够识别世间万物,既然计算机能够识别世间万物。那么我们来想想怎么让计算机来认识我呢?
我们不讲计算机怎么认识我,我们聊聊你是怎么认识我的?如果是你,你是不是会通过我的名字、年龄、身高、性别和爱好认识我。那么可想而知计算机也可以这样认识我。那么如果用计算机中的变量去记录我的这些状态,我的年龄可以用19去记录,但是我的姓名可以使用数字去记录吗?我的爱好可以用数字去记录吗?如果你说你年龄的时候,你又会用18.5岁去形容你的年龄吗?可想而知,你是不会这样做的。
通过上面一大段的陈述,其实可以明白数据类型指的就是变量值的不同类型,姓名可能是一种数据类型、年龄可能是一种数据类型、爱好可能又是另一种数据类型。
二丶如何对数据类型进行分类
变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。
三丶不同数据类型
数字类型
字符串类型
列表类型
字典类型
布尔类型
数字类型
数字类型
整形(int)
作用:表示人的年龄、各种号码、级别
定义:
age = 18 # age = int(18) print(age) print(id(age)) print(type(age)) 18 1921150976 <class 'int'>
使用方法:加减乘除、逻辑判断(大于、小于)
浮点型(float)
作用:表示身高、体重、薪资
定义:
salary = 2.1 # salary=float(2.1) print(id(salary)) print(type(salary)) print(salary) 1611865330144 <class 'float'> 2.1
使用方法:加减乘除、逻辑判断(大于、小于)
字符串类型
作用:表示名字、爱好
定义:
name1 = 'nick' name2 = "egon" print(id(name1)) print(type(name1)) print(name1) 2346984016336 <class 'str'> nick name3 = """nick egon""" print(name3) nick egon
使用方法:字符串只能+、*和逻辑比较
- 注意:如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同
- 注意:字符串的乘法只能乘以数字。
- 注意:字符串比较大小,按照ASCII码比较
- 注意:字符串的比较是字母的顺序。
列表
作用:存放多个值。
定义:
在[]内用逗号分隔开任意类型的值。
hobby = 'read' hobby_list = [hobby, 'run', 'girl'] print(id(hobby_list)) print(type(hobby_list)) print(hobby_list) 2050766486152 <class 'list'> ['read', 'run', 'girl']
如何使用:
存不是目的,取才是目的,我们介绍列表索引取值的方法,牢记索引序号从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
字典
作用:用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。
定义:在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。
ser_info = {'name': 'nick', 'gender': 'male', 'age': 19, # 字典套列表 'company_info': ['oldboy', 'shanghai', 50]} print(id(user_info)) print(type(user_info)) print(user_info) 2479795990672 <class 'dict'> {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': ['oldboy', 'shanghai', 50]}
使用方法:字典取值方式不再依赖于索引,而是依赖于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
布尔型
作用:用于判断条件结果
定义:True、False通常情况不会直接引用,需要使用逻辑运算得到结果。
使用方法:
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。 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,y,z = name_list
有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线。
name_list = ['nick','egon','jason','tank']
x,y,z,a = name_list
x,_,z,_ = name_list
还能有一个更骚的操作,只可意会不可言传。
name_list = {'shiqi','zz','zhangyi','jinx','2019'}
x,y,*_,z = name_list
字典也是可以的,但是字典解压缩的是key。
info = {'name':'shiqizz','age':17}x,y = infoprint(x,y)
Python与用户的交互
一丶为什么交互?
让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互。现在让我们了解下Python是怎么实现交互的。
二丶 如何交互?
input()
int(inpt())
str(888)
无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。
格式化输出的三种方式
一丶占位符
%s(针对所有数据类型)
如:
name = "十七zz"
height = 180
weight = 140
print('my name is %s,my height is %s,my weight is %s' %(name,height,weight))
my name is 十七zz,my height is 180,my weight is 140
二丶format 格式化
name = "十七zz"
height = 180
weight = 140
print('my name is {name},my height is {height},my weight is {weight}'. format(name=name, height=height, weight=weight))
my name is 十七zz,my height is 180,my weight is 140
三丶f -String格式
相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,这是目前我用的最多的方式,推荐使用这种方式。
name = "十七zz"
height = 180
weight = 140
print(f'my name is {name}, my height is {height},my weight is {weight}')
print(f'{name*2}')
my name is 十七zz,my height is 180,my weight is 140
十七zz十七zz
salary = 3.1415926
print(f'{salary:.3f}')
3.142
基本运算符
基本运算符
算术运算符
+-*/ // % **
逻辑运算符
and
or
not
比较运算符
> >= < <= == !=
赋值运算符
= += -= *= /= //= **= %=
身份运算符
is
is not
成员运算运算符
in
not in
运算符的优先级
需要优先的加上()