热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

000620180422自动化第七章python基础学习笔记

内容回顾:-bytes-str和bytes-int-str-list-tuple-深拷贝和浅拷贝今日内容:数据类型-bytes-int-str-b

内容回顾:
- bytes
- str 和bytes
- int
- str
- list
- tuple

- 深拷贝和浅拷贝



今日内容:
数据类型
- bytes
- int
- str
- bool
- list
- tuple
- dict (字典)
dic = {'k1':'v1'}
- values
- keys
- items
- get
- setdefault
- fromkeys dict.fromkeys
- update
- pop
- popitem
- copy
- clear

#dict.fromkeys 的3个示例原理:

val = dict.fromkeys(['k1','k2','k3'],666) #列表内容为键值对的key,后面数值为所有键值对的值
print(val)
val['k1'] = 999
print(val)


#fromkeys 指向的是同一个列表---value,所以3个可以vlaue相同都为追加后的列表
val = dict.fromkeys(['k1','k2','k3'],[])
val['k1'].append(678)
val['k2'].append(999)
print(val)


val = dict.fromkeys(['k1','k2','k3'],[])
val['k1'].append(666) #修改内部值
val['k1'] = [1,2,3] #将原k1的vlaue由666,修改为[1,2,3]---重新赋值
print(val)



- set (集合)
di = {"k1","k2"}#set

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
names.add('龙哥') #集合添加元素,如果已经存在,则不再重复添加
print(names)
"""

#difference ---差集
"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = names.difference(boys) #names 中存在,boys中不存在的数据---name必须是集合,boys可以是列表或元组
print(val)
"""

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = boys.difference(names) #boys 中存在,names中不存在的数据
print(val) #创建了一个新就集合---差集部分
"""


#difference_update
"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
boys.difference_update(names) #先找到差集,然后再重新将差集赋值给boys
print(boys)
"""

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
names.difference_update(boys) #先找到差集,然后再重新将差集赋值给names
print(names)
"""

"""
#symmetric_difference ----对称差集
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = names.symmetric_difference(boys) #将两个集合分别求差集后,将这些差集和在一起,形成一个新的集合
print(val)
"""

"""
#symmetric_difference_update----对称差集重新赋值个某个集合
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
names.symmetric_difference_update(boys) #将两个集合分别求差集后,再将这些差集和在一起,重新赋值个names
print(names)
"""

"""
#discard 集合中删除指定的值
names = {'龙哥','海角','老狗','成绩','小江','小高'}
names.discard('龙哥')
print(names)
"""

"""
#intersection ---求交集
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = names.intersection(boys) #将names和boys求交集
print(val)
"""

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
names.intersection_update(boys) #将names和boys求交集,并将交集重新赋值个names
print(names)
"""

"""
#union --求并集
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = names.union(boys)
print(val)
"""

"""
#isdisjoint 判断是否无交集
#有交集:False
#无交集:True
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'小高','海娇','小狗'}
val = names.isdisjoint(boys)
print(val)

"""

#issubset 判断是否是子集

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'海娇','王老师'}
val = names.issubset(boys) #names集合不包含在boys集合里,为False
print(val)
"""
"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'龙哥','老狗'}
val = names.issubset(boys) #names集合不包含在boys集合里,为False
print(val)
"""

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'龙哥','老狗'}
val = boys.issubset(names) #boys 子集包含在names集合里,为True
print(val)
"""

"""
#issuperset 判断是否是父集
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'龙哥','老狗'}
val = names.issuperset(boys) #names是boys的父集,结果为True
print(val)
"""

"""
#pop --随机删除集合的一个元素
names = {'龙哥','海角','老狗','成绩','小江','小高'}
v = names.pop()
print(v)
"""

"""
#remove - 删除集合里指定的元素,当指定的元素不存在时,会报错
names = {'龙哥','海角','老狗','成绩','小江','小高'}
#names.remove('老狗')
names.remove('老狗1') #删除指定的元素不存在时,会报错
print(names)
"""

#update --更新
"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = ['龙哥1','老狗1']
names.update(boys) #names必须是个集合,而boys可以是集合或列表等
print(names)
"""

"""
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'龙哥1','老狗1'}
names.update(boys) #names必须是个集合,而boys可以是集合或列表、元组
print(names)
"""

"""
#集合可以通过for循环,也可以取长度
names = {'龙哥','海角','老狗','成绩','小江','小高'}
for item in names:
print(item)
print(len(names))
"""

#集合的应用:
#列表元素去掉重复项
names = ['龙哥','老狗','海角','老狗','成绩','小江','小高','小江']
val = set(names)
print(val)

names2 = list(val)
names = names2
print(names2)
print(names)



#集合:
- 元素,不可变






文件操作
美女模特空姐护士联系方式.txt

1. 路径:D:\美女模特空姐护士联系方式.txt
2. 编码:utf-8
3. 模式:只读 r, 只写,读写...
- rb
- r
- r+ #常用,能读也能写 *****
- r+b
- wb
- w
- w+ #写读,先清空,再写了之后才能读,读的是新写的数据
- w+b
- ab
- a #追加,尾部写入
- a+ #读写,只能在最后面追加写入,通过指针指定也无效
- a+b

功能:
obj = open (文件路径,mode='r+')
obj.read()
obj.write()
obj.seek()
obj.tell()
obj.close()
obj.flush()
#obj.readline() #等价与py2的obj.xreadlines()
for line in obj:
print(line)

obj.readlines() #不好,逐行读取,放在内容,分割成列表
obj.xreadlines() #py2中存在


PS :打开文件后,记得关闭文件
obj = open(文件路径,mode='r+')
xxxx
obj.close()

自动关闭:

with open(文件路径,mode='r+') as obj:
obj.read()
#代码执行完毕后,自动关闭文件

只读:
#读取文件
#读取utf-8编码的数据,【转换】成unicode(str)编码的数据
obj = open('D:\美女模特空姐护士联系方式.txt',encoding='utf-8',mode='r')
cOntent= obj.read()
obj.close()
print(content) #打印出来的conten为str类型-----unicode编码

打印出来的conten为str类型




window--cli示例:
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\ZH>python D:\Install-File\python-work\auto-chapter7\4-file-operate.py
test---1500

C:\Users\ZH>

 

#读文件rb模式
obj = open('D:\美女模特空姐护士联系方式.txt', mode='rb') #rb模式读取的数据为原始编码,不做转换
cOntent= obj.read()
obj.close()
print(content)
print(content,type(content))

# b'\xba\xa3\xbd\xbf--test---1500'
# b'\xba\xa3\xbd\xbf--test---1500'

只写:
- obj = open('美女',mode='wb')
- obj = open('美女',mode='w',encoding='utf-8')


示例:
obj = open('美女',mode='w',encoding='utf-8')
obj.write("海娇-贾敏")
obj.close()
print(data)


obj = open('美女',mode='wb')
obj.write("海娇-贾敏22222".encode('utf-8'))
obj.close()


只追加: a

- obj = open('美女',mode='ab')
- obj = open('美女',mode='a',encoding='utf-8')


示例:
obj = open('美女',mode='a',encoding='utf-8')
obj.write("小红")
obj.close()
print(obj)


obj = open('美女',mode='ab')
obj.write("龙哥22".encode('utf-8'))
obj.close()


r+ 能读写 示例:
obj = open('美女',mode='r+',encoding='utf-8')
data = obj.read()
obj.write("66666")
obj.close()
print(data)


推荐阅读
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
XL
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有