s21day07 python笔记

一、昨日内容回顾及补充

  1. 回顾
  2. 补充
    • 将前面所提到的功能,统一改称为方法

二、深浅拷贝

  1. 基本格式

    v1 = [1,2,3]
    import copy
    v2 = copy.copy(v1)             #浅拷贝
    v3 = copy.deepcopy(v1)         #深拷贝
  2. 整型int/布尔bool/字符串str(不可变类型)

    • 深拷贝和浅拷贝的结果都是一样的
    • 无法重新开辟一个内存地址,就使用同一个地址
  3. 列表list/字典dict/集合set(不可变类型)

    • 对于其中的元素都是不可变类型时,深拷贝和浅拷贝的结果都是一样的,都是只拷贝第一层
    • 对于其中元素存在可变类型时,浅拷贝只拷贝第一层,深拷贝要拷贝所有的可变类型
  4. 特殊类型:元组tuple

    • 如果元组中不含有可变类型,同理字符串的深浅拷贝
    • 如果元组中含有可变类型,同理列表的深浅拷贝
  5. 总结

    • 浅拷贝:只拷贝第一层

      深拷贝:拷贝嵌套层次中的所有可变类型

    • 深拷贝之所以不拷贝不可变类型,是由于python小数据池的缘故

    • 注意:

      • 拷贝只针对可变类型:再创造一份
      • 不可变类型:不会拷贝(不再创造一份出来,都是用同一个地址)

三、文件操作

  1. 打开

    • 打开方式:

      file = open('文件路径',mode = 'r',encoding = 'utf-8')
    • mode

      • 读取:r,只能读
      • 写入:w,只能写,写之前清空
      • 写入:a,只能追加
      • 可读可写:r+
        • 读:默认从0的光标开始读,也可以通过 seek 调整光标的为位置
        • 写:从光标所在的位置开始写,也可以通过 seek 调整光标的位置
      • 可读可写:w+
        • 读:默认光标永远在写入的最后或0,也可以通过 seek 调整光标的位置
        • 写:先清空
      • 可读可写:a+
        • 读:默认光标在最后,也可以通过 seek 调整光标的位置。然后再去读取
        • 写:永远写到最后
    • encoding

      • 用什么编码保存,就用什么编码打开,否则会乱码
    • .seek(3)

      • 移动光标的位置,数字代表移动到底几个字节
  2. 操作

      • read()
      • read(2) # 字符
      • readlines()
      file = open('文件路径',mode = 'r',encoding = 'utf-8')
      
      #1.读取文件的所有内容到内存
      date = file.read()
      
      #2.从当前光标所在的位置向后读取2个字符
      date = file.read(2)     #数字代表几个字符
      
      #3.读取文件的所有内容,并按照每一行进行分割到啊列表中
      date_list = file.readlines()
      
      #4.如果以后读取一个特别大的文件,可以一行一行读取
      for line in file:
          line = line.strip()     #去除换行符
          print(line)             #一行一行读取
    • 写:write

      file = open('文件路径',mode = 'w',encoding = 'utf-8')
      file.write('你好')          #清空后写入
      file.close()                #写完一定要关闭文件(关闭相当于保存)
  3. 关闭

    • 关闭方式

      file = open('文件路径',mode = 'r',encoding = 'utf-8')
      file.close()               #关闭文件

s21day07 python笔记的更多相关文章

  1. Python笔记之不可不练

    如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...

  2. boost.python笔记

    boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...

  3. 20.Python笔记之SqlAlchemy使用

    Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...

  4. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  5. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  6. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  7. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  8. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  9. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

随机推荐

  1. 常用验证正则:用户名、密码、邮箱、手机号、身份证(PHP和JavaScript)

    日常开发中,常常会用到一些简单常用的正则表达式,用于判断一些常见的情况 下边,就列出五种(验证用户名,密码强度,邮箱格式,手机号格式和身份证格式)常见的情况 分成PHP版本和JavaScript两个版 ...

  2. rabbitmq安装与高可用集群配置

    rabbitmq版本:3.6.12 rabbitmq安装 1.安装openssl wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz &a ...

  3. mysql的并发控制

    并发即指在同一时刻,多个操作并行执行.MySQL对并发的处理主要应用了两种机制——是"锁"和"多版本控制". 1.并发控制 MySQL提供两个级别的并发控制:服 ...

  4. VC++ 实现INI文件读写操作

    转载:https://blog.csdn.net/fan380485838/article/details/73188420 在实际项目开发中,会用ini配置文件,在此总结一下对ini读写操作 一:读 ...

  5. jQuery实现淘宝轮播图

    我爱撸码,撸码使我感到快乐大家好,我是Counter今天给大家分享的是利用jQuery来实现淘宝轮播图,揭开这层神秘的面纱,CSS样式就不做过多的赘述了,主要就是实现的原理,也就是jQuery,老样子 ...

  6. loj2353. 「NOI2007」 货币兑换

    loj2353. 「NOI2007」 货币兑换 链接 https://loj.ac/problem/2353 思路 题目不重要,重要的是最后一句话 提示 输入文件可能很大,请采用快速的读入方式. 必然 ...

  7. BinaryTree

    public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode ...

  8. Oracle 客户端 NLS_LANG 的设置

    参考链接1: https://blog.csdn.net/xinzhan0/article/details/78311417#t3 参考链接2: https://blog.csdn.net/xinzh ...

  9. Js — CommonUtil

    一些js脚本的公用方法: 1:字符串根据给定的每行长度换行 2:比较两个时间的大小3:计算两个日期间相差的天数 1.字符串根据给定的每行长度换行 /** *words:原始字符串 *avg:每行字数 ...

  10. mac系统删除.DS_Store文件

    查找某目录下某类文件 find . -name ".DS_Store" -type f -print # find: 主命令 # . : 当前目录下(可变) # -name: 通过 ...