自我总结03
目录
1.花式赋值
链式赋值
# 定义变量就是拿来用的,
# 链式赋值
a = b = c = 10
print(a, b, c)
交叉赋值
# 交叉赋值
x = 10
y = 20
# x变成20,y变成10,不能让原来的10和20被垃圾回收机制回收,设一个中间变量
# z = y
# y = x
# x = z
# print(x,y)
x, y = y, x #python方法
print(x,y)
2.列表
什么是列表:列(序列)表(表格),一列(存储多个元素)表格.
描述一个人的爱好:read/run/music
存不是目的,取才是目的
1、作用:存储多个(任意数据类型)元素
2、定义方法
# 用[]存储,用逗号隔开多个元素(任意数据类型)
hobby_list = ['jiao', 'dapao', 'dsb', 'piao', ['666', '233']]
# hobby_list2 = ['jiao']
num = 0
s = '' # 空字符串
lt = [] # 空列表
lis = []
#字符串在列表中,将执行字符中每一个字母输出
s_list = list('abcdefg')
print(s_list) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
#数字不行
# num_list = list(18)
# print(num_list)
3、使用方法
#索引 索(搜索)引(引路)
索引取值
hobby_list1 = ['jiao', 'dapao', 'dsb', 'piao', ['666', '233']]# 0 1 2 3 4
print(hobby_list1[4][0]) # ['666', '233'][0] --> 666
索引切片
hobby_list1 = ['jiao', 'dapao', 'dsb', 'piao', ['666', '233']]
# 0 1 2 3 4
# -5 -4 -3 -2 -1
print(hobby_list1[0:4])
print(hobby_list1[:4]) # 如果没写,默认0
print(hobby_list1[0:-1]) # 如果没写,默认为最后一个
print(hobby_list1[:])
3.字典
1、作用:存储多个值,但是每个值都由描述信息
#为什么要有字典
# 0 1 2 3
jzm_info_list=['jiangzhimeng',175,130,['sing','dance ','swmming']]
print(jzm_info_list[1]) #175
2、定义方式
#字典 {}内有多个键(一般为字符串,具体描述意义)值(具体的值,值为任意数据类型)对
#什么是键值对:key:value
jzm_info_dict={'name':'jiangzhimeng','height':175,'weight':140,'hobby_list':['sing','dance ','swmming']} #key必须是字符串
print(jzm_info_dict)
3、使用方法
#使用方法
#字典没有索引
print(jzm_info_dict['name'])
print(jzm_info_dict['hobby_list'][-1])#按key取值
jzm_info_dict['height']=jzm_info_dict['height']+1 #176 按key修改值
print(jzm_info_dict)
#del删除值
jzm_info_dict['height']
print(jzm_info_dict)
students = [
{'name': 'nick', 'age': 19},
{'name': 'egon', 'age': 18}
]
# print(students[1]['name'],students[1]['age']) #过于复杂
# 代码的复用性,减少重复
info_dict = students[1]
print(info_dict['name'],info_dict['age'])
4.布尔类型
# 布尔bool --》 布尔是个人名
# 布尔值 --》 True 真 / False 假,布尔类型不直接打印,而是在特定条件下触发
# 条件成立为True,条件不成立为False
print(1 > 2) # False
print(2 > 1) # True
print(1 != 1) # False
# 所有数据类型都自带布尔值
print(1 > 2) # False
print(bool(1>2)) # False
# 所有数据类型自带布尔值,除了 0/None/空(空字符/空列表/空字典)/False 之外所有数据类型自带布尔值为True。
print(bool(1)) # True
print(bool(0)) # False
print(bool('')) # False
print(bool([])) # False
print(bool({})) # False
print(bool(None)) # False
5.解压缩
解(解开)压缩(容器类数据类型)
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)
# 下划线_ 代替不要的
# 单个下划线表示这个东西不需要(约定俗成)
lt=[1,2,3,4,5]
s1,_,_,_,_ = lt
print(s1) # 1
# print(_) # 可以打印,但是不要去打印
# *_ 代替好几个下划线_ 方便
# *_ *把后面的元素全部合成放到列表里去了
lt=[1,2,3,4,5]
s1,*_,s5 = lt
print(s1) # 1
# print(_) # [2,3,4]
# 10,20,30 = (10,20,30) = [10,20,30]
x, y, z = 10, 20, 30 #元组 #看成一个列表,用到了解压缩原理
# x, y, z = [10,20,30]
print(x, y, z)
6.python与用户交互
print('*' * 50)
s = input('请输入你的身高:') # 1. 让程序暂停 # 2. 接收的永远是字符串
print(s, type(s)) # s接收了用户输入的内容
print(int(s) + 1)
print('*' * 50)
# python2和python3中input的区别
# python2和python3多版本共存
# python.exe复制粘贴一份,然后重命名为python2.exe/python3.exe
# 更换python解释器
# file --> settings --> project --> project interpreter
# python2中input和raw_input的区别
#input()
#用户必须得知道python有哪些数据类型才能使用你这个程序,python2的input就被淘汰
print '*'*50
s = input('please enter your name: ') # 输入什么类型就是什么类型
print s,type(s)
print '*'*50
# raw_input()
print '*' * 50
s = raw_input('please enter your name: ') # 和python3的input一模一样
print s, type(s)
print '*' * 50
7.格式化输出的三种方式
第一种(主流)
#f-string格式化
# f让{}变得有特殊意义,让{}内的普通字符变成了变量名
s1 = 'nick '
s2 = 'handsome'
print(f'{s1}{s2}') # nick handsome
第二种(了解)
# %占位符 python3.0 兴许还看得到
s1 = 'nick'
s2 = 'handsome'
print('%s %s'%(s1,s2))
第三种(了解)
#format python3.3 --> 一点毛用都么用
s1 = 'nick'
s2 = 'handsome'
print('{} {}'.format(s1,s2)) # s1-->0 s2-->1
# print('{1} {1}'.format(s1,s2)) # handsome handsome
# 仅作了解
x = 10
print(f'{x:.5f}') #保留小数个数
s = 'nick'
print(f'{s:*<100}{s:^10}') # ^表示居中 # <居左 # >居右