Loading

1-计算机基础&Python概述

软件开发的常识

  • 软件
    • 系统软件
    • 应用软件
  • 开发
    • 制作软件的过程
  • dos命令行
    • cd cd .. cd\ dir(列出当前目录下的所有文件夹以及文件)
  • 计算机编程语言介绍
    • C底层开发,面向过程,速度快
    • C++面向对象,嵌入式,Android底层,做游戏,跨平台
    • Java后端语言,开发企业级系统,开发Android
    • C#后端语言,用于Unity 3D游戏
    • Python高层语言,简单易学

Python概述

  • Python语言
    • Python是一种解释型,面向对象,动态数据类型的高级程序语言
    • 脚本语言
    • 弱类型语言
    • Guido van Rossum(荷兰)开发

Python的优缺点

  • Python的优点
    • 简单易学
    • 高层语言
    • 可移植性(跨平台)
    • 解释型语言
    • 面向对象
    • 可嵌入性(嵌入其他语言)
    • 丰富的库&GUI图形用户界面
  • Python的缺点
    • 强制缩进
    • 运行速度慢
    • 代码不能进行加密

数据的存储

  • 思考
    • 数据存储在内存中(缓存/临时存储),数据存储在硬盘中(持久化/永久存储)
  • 内存
    • 内存是与cpu沟通的桥梁,所有的程序都运行在内存中,计算机在内存中以二进制的形式存储
    • 数据
  • 进制
    • 进制就是进位的制度,一种进位的方式
    • 常见的进制:0b二进制/0o八进制/十进制/0x十六进制
    • 进制转换
      • 二进制转十进制:将二进制按照权展开,相加即得到十进制
      • 十进制转二进制:倒除法/将十进制数进行分解,分解为2的n次方相加
      • 二进制转八进制:每三位二进制按权展开并相加得到一位八进制
      • 八进制转二进制:二进制转八进制的反向过程
      • 二进制转十六进制:每四位二进制按权展开并相加得到一位十六进制
      • 十六进制转二进制:二进制转十六进制的反向过程
      • 八进制/十进制/十六进制的相互转化:以二进制为桥梁

存储数据

  • 计算机存储数据的过程:需要先在内存中开辟空间,再将数据转换为二进制存储,计算机开辟内存空间的最小单位为字节
  • 用id()查看数据存储的内存地址

Python的编码规范

  • 每个语句后面不要添加分号,每行最好只写一条语句
  • 括号的使用=>优先级问题
  • Python中通过缩进(四个空格)来区分代码块
  • 尽量避免在文件名中出现中文和空格

变量

  • 作用
    • 需要在内存中开辟一块空间,将指定类型的值存在这块空间中
  • 删除变量
    • del age
  • 关键字
    • import keyword
      • print(keyword.kwlist)
        • ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    • 标识符
      • 规则
        • 只能由数字/字母/下划线组成
        • 开头不能是数字
        • 不能是关键字
        • 严格区分大小写
      • 规范
        • Python官方要求字母全部小写,不同单词间用下划线间隔
        • 驼峰命名:大驼峰/小驼峰,第一个单词的首字母是否大写
        • 尽量做到见名知意

输入输出

  • input(' ')
  • print(' ')

Python 的内存缓存机制

  • 小整数对象池:Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,放入到缓存池中

  • 单个字符:同理,也是提前创建好放入到缓存池中

  • 字符串的intern(字符串驻留)机制:如果字符串中只含有数字、字母、下划线,那么python会自动开启intern机制。把创建的字符串放入一个形如字典的内存中,如果下次创建创建相同的字符串会直接从内存中拿出来

Python的垃圾回收

  • 引用计数

    • 优点

      • 简单
      • 实时性高:一旦没有引用,内存就直接释放了
    • 缺点

      • 维护引用计数消耗资源
      • 循环引用
  • 标记清除

    • 目的:解决循环引用的问题
    • 原理:把可能产生循环引用的对象放到一个链表里面,定期去检查链表里面的对象有没有循环引用,如果有就把对象的引用计数减1,如果为0就回收
    • 缺点:
      • 检查的时间不好控制
      • 每次都去检查所有数据,开销非常大
  • 分代收集

    • 目的:解决标记清除的缺点
    • 原理:把可能存在循环引用的链表划分为3个链表,分别叫做
      • 0代:0代对象的个数达到700个,则检查1次,如果是垃圾则回收,不是则放入1代
      • 1代:0代检查了10次,则1代检查1次,如果是垃圾则回收,不是则放入2代
      • 2代:1代检查了10次,则2代检查1次
posted @ 2020-11-19 11:06  lotuslaw  阅读(132)  评论(0编辑  收藏  举报