day09学习整理-Python进阶

2019/08/06 学习整理

Python进阶

数据类型分类

一、按存值个数区分

存放个数 数据类型
单个值 数字,字符串
多个值 列表,元组,字典,集合

二、按可变不可变区分

可变or不可变 数据类型
不可变 数字,字符串,元组
可变 列表,字典,集合

三、按有序无序区分

有序or无序 数据类型
有序 字符串,列表,元组
无序 字典,集合

四、按访问类型区分

访问类型 数据类型
直接访问 数字
顺序访问(顺序类型) 字符串,列表,元组
key值访问(映射类型) 字典

Python深浅拷贝

一、拷贝(直接赋值)

其实就是对象的引用(别名)。

a = [1,2,3]
b = a
print('b=',b)
a.append(4)
print('a=',a)
print('b=',b)
print(id(a))
print(id(b))
b= [1, 2, 3]
a= [1, 2, 3, 4]
b= [1, 2, 3, 4]
1364297998920
1364297998920

二、浅拷贝

拷贝父对象,不会拷贝对象的内部的子对象。

import copy

a = [1, 2, 3, [4, 5]]
b = copy.copy(a)
print('b=', b)
a.append('hey')   # 对被拷贝对象父对象进行添加
a[3].append(6)    # 对被拷贝对象子对象a[3]进行添加
print('a=', a)
print('b=', b)
print(id(a))
print(id(b))
b= [1, 2, 3, [4, 5]]
a= [1, 2, 3, [4, 5, 6], 'hey']
b= [1, 2, 3, [4, 5, 6]]  # 随子对象改变而改变,父对象不受影响
1974080170568  
1974080170824

三、深拷贝

完全拷贝了父对象及其子对象。

import copy

a = [1, 2, 3, [4, 5]]
b = copy.deepcopy(a)
print('b=', b)
a.append('hey')
a[3].append(6)
print('a=', a)
print('b=', b)
print(id(a))
print(id(b))
b= [1, 2, 3, [4, 5]]
a= [1, 2, 3, [4, 5, 6], 'hey']
b= [1, 2, 3, [4, 5]]
1916977867208
1916977867464
深拷贝对象不受原对象改变的影响

异常处理

一、什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

二、异常处理

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

  • 异常处理
  • 断言(Assertions)

异常的种类有多种多样只需要记住万能的Exception

s1 = 'hello'
try: # 语法 try:  except:
    int(s1)
except Exception as e:
    print(e)

基本文件操作

一、什么是文件?

文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。文件的操作是基于文件,即文件的操作核心就是:读和写。

二、对文件的操作

读:

# read模式打开文件
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='r')
# 读取文件内容,向操作系统发起读请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存
data = f.read()
print(data)
# 由于Python的垃圾回收机制只回收引用计数为0的变量,但是打开文件还占用操作系统的资源,所以我们需要回收操作系统的资源资源
# del f 只是回收变量f
f.close()
name = '胡歌'
pwd = '123'

写:

# write模式打开文件
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='w')
f.write("""name = '胡歌'
          pwd = '123'""")
f.close()
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='r')
data = f.read()
print(data)
name = '胡歌'
pwd = '123'

绝对路径和相对路径

一、绝对路径

如名字表达的一样,是绝对的。

是从根目录开始直到文件位置

C:/user/hp/test.txt

二、相对路径

相对于程序当前所在目录到文件位置

./test.txt

猜你喜欢

转载自www.cnblogs.com/Wunsch/p/11309614.html