1.Python基本认识
2.Python的注释及变量&常量
3.六大标准数据类型
4.数据类型转换
5.变量的缓存机制
一、Python基本认识
1.Python简介
1.拥有非常多且强大的第三方库,使得程序开发起来得心应手
2.开发方向:机器学习人工智能、自动化运维、数据分析&爬虫、全栈开发
2.编译型与解释型语言的区别
编译型:一次性,把所有代码编译成机器能识别的二进制码,再运行
代表语言:C、C++
优点:执行速度快
缺点:开发速度慢,调试周期长
解释型:代码从上到下逐行进行解释运行
代表语言:Python、PHP
优点:开发速度快,调试周期短
缺点:执行速度相对较慢
二、Python的注释及变量&常量
1.注释
(1).注释的作用
对代码进行解释,方便阅读代码
(2).注释的分类
单行注释
#
多行注释
''' 或者 """
快捷键:
ctrl + q(NodePad++)
ctrl + \ (Python)
(3).可以利用注释进行代码的排错
2.变量 & 常量
(1).含义:
变量:可以改变的量,具体指代的是内存的一块空间,映射是:多对一
常量:约定俗成的概念,不可改变的量,通常用大写的字母表示
(2).变量的声明
# 赋值:右--->左
a = 1
b = 2
a,b = 3,4
a = b =100
#输出两个变量时,中间用逗号隔开
print(a,b)
(3).变量的命名
- 字母、数字、下划线,数字不能开头
- 严格区分大小写,且不能为关键字
- 命名要有意义,且不能使用中文
(4).变量的交换
a = 1
b = 2
#常规:
tmp = a
a = b
b = tmp
#python中:
a,b = b,a
三、六大标准数据类型
1.属于Number的
(1). int 整型 —— 正、负、0
intvar = 66
type(intvar) #一个函数,数据类型
id(intvar) #一个函数,数据所在地址
①二进制 0、1
intvar = 0b1010
②八进制 0~7
intvar = 0o7
③十六进制 0~9 , a-f
intvar = 0xff
255(十),11111111(二)
(2). float 浮点型 —— 小数
floatvar = 5.7
floatvar = 3.14e3 #小数点后移三位
floatvar = 3.14e-2 #小数点前移两位
(3). bool 布尔型 —— True、False
boolvar = True
(4). complex 复数型 —— 3 + 4j
复数 = 实数 + 虚数
complexvar = 3 + 4j
complexvar = -40j
res = complex(3,4)
3 + 4j
j:如果有一个数,它的平方等于-1,那么这个数就是j,科学家认为有,表达高精度的概念
2.属于容器的
(1). str 字符串类型
有序、可获取、不可修改
①引号引起来的就是字符串类型
单引号
strvar = '今天天气真好'
双引号
strvar = "今天天气真好"
三引号(支持跨行)
strvar = '''
本来无一物,
何处惹尘埃。
'''
②转义字符:\
1.将无意义的字符变为有意义
\n 换行
\t 缩进
\r\n 换行
\r 把其后面的内容拉到行首,覆盖一行
2.将有意义的字符变为无意义
strvar = "今天\"天气\"真好"
③元字符串
防止发生转义,在字符串前面加上r
strvar = r"E:\运维linux70\nay1\tabssets"
④格式化字符串
占位符 | 含义 |
---|---|
%d | 整数占位符,%2d 占两位(默认靠右),%-2d占两位,靠左 |
%f | 浮点数占位符,%.2f 保留小数点后两位,遵循四舍五入 |
%s | 字符串占位符,万能的,写什么是什么 |
语法:
"字符串" % (要传入的值)
(2). list 列表
有序、能获取、能修改
# 空列表
listvar = []
# 定义一个不通列表
listvar = [1,3.14,3+4j,True,"abc"]
正向下标 0 1 2 3 4 ...
逆向下标 ... -3 -2 -1
# 获取列表元素 3+4j
res = listvar[2]
# 修改列表元素 1,改为4
listvar[0] = 4
通用-获取最后一个元素
# 获取容器类型元素的个数
res = len(listvar)
print(listvar[res-1]) # 打印最后一个元素
#简写
print(listvar[len(listvar)-1])
(3). tuple 元组
①有序、可获取、不可修改
②逗号(5,)是区分是否是元组的标识符
# 空元组
tuplevar = ()
# 定义一个不同元组
tuplevar = (1,3.14,3+4j,True,"abc")
# 获取元组元素 True
res = tuplevar[3] # 或者 res = tuplevar[-2]
(4). set 集合
无序、不可获取、不可修改、自动去重
# 空集合
setvar = set()
# 定义一个不同集合
setvar = {1,3.14,3+4j,True,"abc",(1,2,3)}
(5). dict 字典
无序、可获取、可修改、键值对方式存储数据
# 空字典
dictvar = {}
# 定义一个普通字典
dictvar = {"a":1,"b":2,"c":3}
# 获取字典键值 3
res = dictvar["b"]
# 修改字典键值 1 为 10
dictvar["a"] = 10
注意事项:
字典的键和集合的值只能是如下类型:
①Number(int , bool , float , complex)
②容器(str , tuple)
四、数据类型转换
1.Number 类型强制转换
(1). 强制转换成 int类型
res = int(var1)
# 可以转换的数据类型
int
float # 遵循四舍五入,去掉小数部分
bool # True=1,False=0
纯数字字符串 # 去掉引号
(2).强制转换成 float类型
res = float(var1)
# 可以转换的数据类型
int # 后面加 .0
float
bool # True=1.0,False=0.0
纯数字字符串 # 去掉引号,变为浮点型
(3).强制转换成 complex类型
res = complex(var1)
# 可以转换的数据类型
int # 后面加 +0j
float # 后面加 +0j
bool # True=1+0j,False=0j
complex
纯数字字符串 # 去表引号,加+0j
(4).强制转换成 bool类型
# 所有类型都可以转换成bool类型
res = bool(var1)
# 结果为False的10种情况
0 , 0.0 , 0j , False
'' , [] , () , set() ,{}
None
2.Number 类型自动转换
①精度由低到高为:
bool-->int-->float-->complex
.
②会按照数据类型精度的高低,自动向精度高的数据类型转换
3.容器 类型强制转换
(1).强制转换成 str类型
一切数据类型都可转换成 str 类型
单纯的在原来的数据类型的两边套上引号
res = str(var1)
print(repr(res)) #原型化输出字符串
(2).强制转换成 list、tuple、set类型(遵循相同规则)
以list为例:
①如果是字符串,把里面的字符一个一个拿出来,作为列表的新元素。
②如果是字典,获取字典中的所有键,形成新的列表。
③如果是其他容器数据,则单纯的把两边的符号换成[]号。
(3).强制转换成 dict类型
可以转换的条件:
①等长的二级容器,并且里面的元素是两个。
②外面是列表、元组时,里面的容器可以是列表或元组。
③外面是集合,里面的容器只能是元组。
1.二级容器
# 二级列表
lst = [1,2,3,[4,5,6]]
# 二级元组
tup = (1,2,(3,4))
# 二级集合
setvar = {1,2,(3,4)}
# 二级字典
dic = {"a1":1,"b1":{"c1":3,"d1":4}}
2.怎样获取多级容器的元素
# 以四级容器为例
container = [1,2,3,4,("a","b","c","d",{"a1":1,"a2":[10,11,"bingo"]})
#获取bingo
res = container[-1][-1]["a2"][-1]
print(res)
3.等长的二级容器
lst = [("a",10),("b",20)]
五、变量的缓存机制
节省内存空间,提升代码效率
1.在同一文件(模块)里,变量存储的缓存机制
数据类型 | id地址的情况 |
---|---|
int | (≥ - 5)的范围相同的值,id相同 |
float | 非负数的相同值,id相同 |
bool | 相同的值,id相同 |
complex | 只有虚数 nj 的情况下,相同值,id相同 |
str & tuple | 值相同,id相同 |
list & set & dict | id都不同 |
注意:只针对Python3.6这一系列版本有效