day3 笔记

Python字典及基本操做

若是单纯使用两个列表来保存某组数据,则没法记录两组数据之间的关联关系,为了保存具备映射关系的数据,Python 提供了字典,字典至关于保存了两组数据,其中一组数据是关键数据,被称为 key;另外一组数据可经过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 1 所示:

 因为字典中的 key 是很是关键的数据,并且程序须要经过 key 来访问 value,所以字典中的 key 不容许重复。程序既可以使用花括号语法来建立字典,也可以使用 dict() 函数来建立字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。在使用花括号语法建立字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。python

 

 

 字典包含多个 key-value 对,而 key 是字典的关键数据,所以程序对字典的操做都是基于 key 的。基本操做以下:函数

  • 经过 key 访问 value 。

     

     

  • 经过 key 添加 key-value 对。
  •  

     

  • 经过 key 删除 key-value 对。
  • pop方法用来得到对应于给定键的值,而后将这个键值对从字典中移除post

  • 经过 key 修改 key-value 对。

字典的经常使用用法spa

get()方法

get() 方法其实就是根据 key 来获取 value,它至关于方括号语法的加强版,当使用方括号语法访问并不存在的 key 时,字典会引起 KeyError 错误;但若是使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会致使错误。例如以下代码:3d

 

 

 

update()方法

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

 

 

 items()用于获取字典中的全部 key-value 对、全部 key、全部 value。返回 dict_items对象,Python 不但愿用户直接操做这几个方法,但可经过 list() 函数把它们转换成列表。以下代码示范了这个方法的用法:orm

 

 

 python中元祖的用法对象

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

一、元祖数据不能被修改ip

 

 二、遍历循环

可使用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()
# 一、可读所有
# 二、不可写
# 三、只读所有以 list 列表形式
# 四、只读一行
#
# 课练习','r',encoding='utf-8')
# result=f.write()
# 一、不可读
# 二、可写
# 三、写了之后,会把以前的内容覆盖掉
# 四、用writelines:不会覆盖掉内容,但必须是 str 格式的
# a (追加)模式
# 一、不能读,只能写
# 二、文件不存在,能够建立新的文件
# 三、文件存在,直接在文件末尾添加

 

文件指针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相关方法/函数可读取该字符。

相关文章
相关标签/搜索