Python字典及基本操作
如果单纯使用两个列表来保存某组数据,则无法记录两组数据之间的关联关系,为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 1 所示:
由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

字典包含多个 key-value 对,而 key 是字典的关键数据,因此程序对字典的操作都是基于 key 的。基本操作如下:
字典的常用用法
get()方法
get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。例如如下代码:

update()方法
update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。例如如下代码:

items()用于获取字典中的所有 key-value 对、所有 key、所有 value。返回 dict_items对象,Python 不希望用户直接操作这几个方法,但可通过 list() 函数把它们转换成列表。如下代码示范了这个方法的用法:

python中元祖的用法
元组(tuple):小括号定义元祖,存储任意类型数据,但其内数据不可变。元组不可变,其内的列表中的元素可以变。元祖只有一个值时,要加逗号,代码不想被人修改,就定义元祖。
1、元祖数据不能被修改

2、遍历循环
可以使用for循环实现元组的遍历
pytnon 中字符串的常用方法
count:字符出现次数

index、find:下标,可以指定位置找,find 可以找字符串下标

去空格的 3 种用法:
strip()方法:去除字符串前后(左右侧)的空格或特殊字符
lstrip()方法:去除字符串前面(左侧)的空格或特殊字符
rstrip()方法:去除字符串前面(右侧)的空格或特殊字符 
s.split()分割字符串,默认每个词之间换行符或者空格分割、\n,也可以指定字符串进行分割,如果指定分割的元素不存在,分隔符不会报错,会不进行分割直接当成一个字符串

a.join():用来连接 list 里面的每个元素的

切片:list范围取值的一种方式,切片时顾头不顾尾

如果为负数的,取值的时候从右往左开始取值,同时步长应为负数print(l[-1:-3:-1])
下面了解
# format:字符串格式化
# upper:所有变成大写
# lower:所有变小写
# zfill:补 0 的,如 12 补 4 位就是 0012
# isdigie:判断字符串是否是纯数字
# endswith:判断是以什么结尾的
# stratswith:判断已什么开头的
# center:字符串居中,位数不够还可以用指定字符串补齐,如 100 个居中用==补齐
# 就是字符换放中间已指定字符串补齐:==100 个==
# title:检查标题是否大写
# isspace:校验传入字符串是否全部都是字符串
# islowe:是判断否全部都是小写
# isupper:判断否全部都是大写
深拷贝、浅拷贝
数字和字符串中的内存都指向同一个地址,所以深拷贝和浅拷贝对于他们而言都是无意义的,对于字典 元组 和列表来说,进行浅拷贝和深拷贝时,内存的地址是不同的,
浅拷贝只会拷贝内存中的第一层数据

而对于深拷贝来说将会把所有数据重新创建,当不想改变被拷贝的值时 应该使用深拷贝

非空即真,非 0 即真
1,非空即真(只要有内容就是true)
例:
name=input('请输入名称').strip()
if name=='':
print('name不能为空')
#输入的name去掉空格,如果为空,提示'name不能为空'。
#把这个例子改成非空格式。名字非空,提示正确。名字是空,提示错误。
方式一:
name=input('请输入名称').strip()
if name!='':
print('输入正确')
else:
print('name不能为空')
方式二:
name=input('请输入名称').strip()
if name: #效果和方式一一样。非空即真,所以只要输入非空的内容就是真,就打印输入正确。
print('输入正确')
else:
print('name不能为空')
空,包括以下类型的空:
a='' 空字符串
l=[] 空list
t=() 空元组
d={} 空字典
b=None 例如函数的返回值none
2,非零即真(只要不是0就是true)
name=input('请输入名称').strip()
name=int(name) #例如输入1,可以转成整型,非零,为真,提示正确。输入0,转成整型为0,为假提示错误
if name:
print('输入正确')
else:
print('name不能为空')
操作文件
# 遇到路径打开时,前面要加'r'防止其他字符转义
# open('a.txt')三种模式:w(写) r(读) a(追加)
# 如果文件有中文的话要加 encoding='utf-8'
# f=open('上课练习','r',encoding='utf-8')
# result=f.read()
# 1、可读全部
# 2、不可写
# 3、只读全部以 list 列表形式
# 4、只读一行
#
# 课练习','r',encoding='utf-8')
# result=f.write()
# 1、不可读
# 2、可写
# 3、写了以后,会把之前的内容覆盖掉
# 4、用writelines:不会覆盖掉内容,但必须是 str 格式的
# a (追加)模式
# 1、不能读,只能写
# 2、文件不存在,可以创建新的文件
# 3、文件存在,直接在文件末尾添加
文件指针seek的使用
python中可以使用seek()移动文件指针到指定位置,然后读/写。通常配合 r+ 、w+、a+ 模式,在此三种模式下,seek指针移动只能从头开始移动,即seek(x,0) 。

seek(x,0):表示指针从开头位置移动到x位置
seek(x,1):表示指针从当前位置向后移动x个位置
seek(-x,2):表示指针从文件结尾向前移动x个位置
例:file.seek(-1,2),文件指针从文件末尾向前移动一个字符,配合read相关方法/函数可读取该字符。
1,非空即真(只要有内容就是true)
例:
name=input('请输入名称').strip()
if name=='':
print('name不能为空')
#输入的name去掉空格,如果为空,提示'name不能为空'。
#把这个例子改成非空格式。名字非空,提示正确。名字是空,提示错误。
方式一:
name=input('请输入名称').strip()
if name!='':
print('输入正确')
else:
print('name不能为空')
方式二:
name=input('请输入名称').strip()
if name: #效果和方式一一样。非空即真,所以只要输入非空的内容就是真,就打印输入正确。
print('输入正确')
else:
print('name不能为空')
空,包括以下类型的空:
a='' 空字符串
l=[] 空list
t=() 空元组
d={} 空字典
b=None 例如函数的返回值none
2,非零即真(只要不是0就是true)
name=input('请输入名称').strip()
name=int(name) #例如输入1,可以转成整型,非零,为真,提示正确。输入0,转成整型为0,为假提示错误
if name:
print('输入正确')
else:
print('name不能为空')
操作文件
# 遇到路径打开时,前面要加'r'防止其他字符转义
# open('a.txt')三种模式:w(写) r(读) a(追加)
# 如果文件有中文的话要加 encoding='utf-8'
# f=open('上课练习','r',encoding='utf-8')
# result=f.read()
# 1、可读全部
# 2、不可写
# 3、只读全部以 list 列表形式
# 4、只读一行
#
# 课练习','r',encoding='utf-8')
# result=f.write()
# 1、不可读
# 2、可写
# 3、写了以后,会把之前的内容覆盖掉
# 4、用writelines:不会覆盖掉内容,但必须是 str 格式的
# a (追加)模式
# 1、不能读,只能写
# 2、文件不存在,可以创建新的文件
# 3、文件存在,直接在文件末尾添加