目录
上节课回顾
变量
什么是变量
描述事件万物变化的状态
变量的组成
变量名(描述;接收变量值) = 变量值(一个具体的值)
变量名的命名规范
1.具有描述意义
2.只能由数字/字母/下划线组成,不能以数字开头
3.不能用python关键字命名
常量
常量只是约定俗成的不能变化,其实是可以变化的
python变量内存管理
引用计数(变量值)
变量值的引用计数为0的时候,自动触发垃圾回收机制,释放变量值的内存占用
c-->free()
小整数池
为避免定义整型变量重复申请内存空间,python在启动时会对[-5,256]范围内的整数自动分配固定地址,该范围内的整数受垃圾回收机制影响
变量打印的三种形式
1.打印值
2.打印id
3.打印数据类型
数据类型
数字类型
整型int
使用方法: %(取余) //(取整) **(求幂)
其他数学符号 improt cmath 使用
浮点型float
使用方法同整型
字符串str
定义方式:单(双)引号内的一串字符,三单引号内的字符可以换行
使用方法 + / *
强制类型转换-->动态语言
str(10)-->字符串的10
int('10')-->整型的10
float('10')-->浮点型的10
不可以强制类型转换-->静态语言
花式赋值
链式赋值
a = b = c = 10
交叉赋值
方式一
x = 10
y= 20
x, y = y, x
方式二
不能让原来的10和20倍垃圾回收机制回收,设一个中间变量
z = x
x=y
y = z
列表
什么是列表--> list
列(序列)表(表格),一列(存储存多个元素)表格
存不是目的,取才是目的
作用
存储多个(任意数据类型)元素
定义方式
[]内用逗号隔开的多个元素(任意数据类型)
lt = [] #空列表
s_lt = list('abcdefg')
print(s_lt) #强制类型转换, 输出结果['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(num_list = list(18)) #报错,整型不可迭代
print(num_list = list('18') #输出结果 ['1', '8']
使用方法
存不是目的,取才是目的
索(搜索)引(引路)
lt2 = ['sing','read','run']
print(lt[-1])
print(lt[-2])
字典
字典
作用
存储多个值,但是每个值都有描述信息
定义方式
{}内用逗号隔开多个键(描述信息,用字符串):值(具体的值,可以为任意数据类型)对
使用方法
存不是目的,取才是目的
字典没有索引,按key取值
student = [{'name':'nick','age':19},{'name':'egon','age':19}]
print(student[0]['name']),student[0]['age']
#增加代码的复用性
info = student[0]
print(info['name'],info['age'])
布尔类型
布尔bool-->布尔是个人名
布尔值
作用
True 真 / False 假
布尔类型只有两个值,一个为True,一个为False,布尔类型不直接打印,而是在特定条件下触发
条件成立为True,条件不成立为False
定义(触发)方式
print(1>2)
print(bool(2>1))
使用方法
所有数据类型都自带布尔值,除了 0/None/空(空字符/空列表/空字典)/False 之外所有的数据类型自带布尔值为True
print(bool(''))
print(bool([]))
print(bool({}))
print(bool(None))
解压缩
解(解开)压缩(容器类数据类型):一般而言只针对2-3元素容器类型的解压
lt = [1,2,3,4,5]
print(lt[1],lt[2],lt[3])
s1,s2,s3,s4,s5 = lt
print(s1,s2,s3,s4,s5)
s1,s2,s3,s4,s5,s6= lt #报错
s1,s2,s3,s4=lt #报错
#容器内有多少个值就必须拿多少个值接收
s1,s2,s3,s4,_=lt #单个下划线表示这个东西不需要
print(s1)
print(_) #下划线表示的内容可以打印,但是不要去打印,约定俗成
# *_ *把后面的元素全部合成放到列表里去了
s1,*_ = lt
print(s1)
print(_)
s1,*_,s5 = lt #输出[2,3,4]
由解压缩原理引申出的多变量赋值
10,20,30=(10,20,30)=[10,20,30]
x, y, z = 10, 20, 30 #默认看成元组,为容器类数据类型,多变量赋值即相当于解压缩
print(x,y,z)
python与用户交互
与用户交互(用户说一句,计算机(python程序)答一句)
input()函数
print('*'*50)
s = input()
#1.让程序暂停
#2.接收的永远是字符串
print(s,type(s)) #s接收了用户输入的内容
print('*'*50)
格式化输出的三种方式
f-string格式化输出
s1 = 'nick'
s2 = 'handsome'
print(f'{s1}{s2}')
# f让{}变得有特殊意义,让{}内的普通字符变成了变量名
x = 10
print(f'{x:.5f}')
#小数点后数字保留5位
print(f'{s1:*<100}{s2:+^10}')
# *为填充符号,<表示原字符串居左,^表示原字符串居中,数字表示填充符号和字符串一共占用的长度
占位符格式化输出
s1 = 'nick'
s2 = 'handsome'
print('%s %s'%(s1,s2))
format格式化输出
s1 = 'nick'
s2 = 'handsome'
print('{} {}'.format(s1,s2)') #s1-->0,
#s2-->1
print('{0} {1}'.format(s1,s2)')
干货
# 产品总监/老板(架构师)
# 产品经理/项目经理
# 架构师(所有东西不说会,要了解(各个框架的优缺点--》tornado))
# 前端/后端/爬虫/算法/python开发/java开发/运维/ig(系统资源的)/ui/测试 c/交换机(咸鱼工程师)
# 市场/销售
# 3个项目
# 学习能力(习惯)
# flask/django/tornoda
# 老板说:用户的权限管理
# 挑出3-5个模块(每一个模块都是做权限管理的),去百度各个模块的优缺点
# 老板挑(你和老板坐在会议室分析,一个一个demo测试)
# 最少一周
# 你再写(再一次和组长,一起确认) 半天
# 每周一开会,列出当天/当周的任务,结束上周的任务清单
# 每周四或周五,所有人开会演示当周完成进度(完成就行了,不要去管为什么/怎样更好)
# it公司3-4天开会,1-2天敲代码 --》 只写代码的话,写好的东西会重做 --》 做事一定要留证据(确定一件事一定要通过发邮件/微信确认)
# 不是会不会,而是想不想