花式赋值, 列表, 字典, 布尔类型, 解压缩 复习 花式赋值 列表 字典 布尔类型 解压缩 python与用户交互 格式化输出的三种方式 干货

变量

什么是变量

描述事件万物变化的状态

变量的组成

变量名(描述;接收变量值) = 变量值(一个具体的值)

变量名的命名规范

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天敲代码  --》 只写代码的话,写好的东西会重做  --》 做事一定要留证据(确定一件事一定要通过发邮件/微信确认)

# 不是会不会,而是想不想