? 异常有分为语法错误和逻辑错误
如果错误发生的条件是不可预知的,则需要用到try...except:在错误发生之后进行处理
#基本语法为
try:
被检测的代码块
except 异常类型:
try中一旦检测到异常,就执行这个位置的逻辑
# 举例
try:
f = [
'a',
'a',
'a',
'a',
'a',
'a',
'a',
]
g = (line.strip() for line in f)
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
except StopIteration:
f.close()
别的基本用不到,Exception是万能的
s1 = 'hello'
try:
int(s1)
except Exception as e:
print(e)
存值个数 | 数据类型 |
---|---|
单个值 | 整型、浮点型、字符串 |
多个值 | 列表、字典、元组、集合 |
可变or不可变 | 数据类型 |
---|---|
可变 | 列表、字典、集合 |
不可变 | 整型、浮点型、字符串、元组 |
有序or无序 | 数据类型 |
---|---|
有序 | 字符串、列表、元组 |
无序 | 字典、集合 |
访问类型 | 数据类型 |
---|---|
直接访问 | 整型、浮点型 |
顺序访问(序列类型) | 字符串、列表、元组 |
key值访问(映射类型) | 字典 |
list2是list1的拷贝对象,list1内的任何数据类型的元素变化,list2都会跟着变化,因为列表是可变类型
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = l1
l1.append('g')
print(l1) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
需导入一个包:import copy,list2=copy.copy(list1),list2是list1的浅拷贝对象,list1内的不可变数据类型元素发生改变,list2不变;list1内的可变数据类型元素发生改变,list2会跟着改变
import copy
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.copy(l1)
l1.append('g')
print(l1) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f']]
l1[3].append('g')
print(l1) # ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f', 'g']]
需导入一个包:import copy,list2=copy.deepcopy(list1),list2是list1的深拷贝对象,list1内的不可变数据类型元素发生改变,list2不变;list1内的可变数据类型元素发生改变,list2也不会改变。即list2永远不会因为list1的改变而改变
import copy
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.deepcopy(l1)
l1.append('g')
print(l1) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f']]
l1[3].append('g')
print(l1) # ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
print(l2) # ['a', 'b', 'c', ['d', 'e', 'f']]
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt')
print(f)
打开文件需要注意编码格式,我的电脑打开文件必须在open里加入encoding=‘UTF-8‘
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt',encoding='UTF-8')
print(f)
打开文件之后,文件不仅占用了内存,他还对应了操作系统打开的以文件,相当于使用文本编辑器打开了一个文件。并且我们说了我们操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的,接下来我们尝试如何读写文件。
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='r') # read模式打开文件
data = f.read()
print(data) # 读取文件内容,向操作系统发起读请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存
f.close() # 关闭文件 # 由于Python的垃圾回收机制只回收引用计数为0的变量,但是打开文件还占用操作系统的资源,所以我们需要回收操作系统的资源资源
# del f 只是回收变量f
# write模式打开文件
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='w')
f.write("""name = 'nick'
pwd = '123'""")
f.close()
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='r')
data = f.read()
print(data)
相对于当前执行文件所在的文件夹开始找。
f = open('32.txt') # 32.txt与该.md文档同路径位置
原文:https://www.cnblogs.com/zhuangyl23/p/11312175.html