zoukankan      html  css  js  c++  java
  • Python学习笔记 第六天

    Python学习笔记 第六天

    1.学习内容回顾与拓展

       1.1 字典

              使用可哈希的数据类型作为key

              字典的增删改查操作,具体内容看昨天笔记

              嵌套,解包等

    2.今日学习内容

       2.1 is与"=="的区别

              2.1.1 变量 :用来identify(标识)一块内存区域,为了方便表示内存,操作变量的实质是:操作变量指向的那块内存单元。 编译器负责通知计算机分配内存。可以使用Python内置函数id()来获取变量地址,id(object)返回 对象object在其生命周期内位于内存中的地址

              2.1.2 内存 :内存是电脑硬件用来存储数据的,可以理解为:内存是由一个个小格子组成,每个格子的大小是一个字节,只能存放1byte的数据。需要依赖内存地址来查找数据。地址是内存的标识符,相当于门牌号。

    找内存地址-》操作内存-》表现为:操作变量

             2.1.3 区别

    在python中一切皆对象,对象之间能否用"=="和is,区别在于:

               is是比较两个对象的id是否相等,也就是比较两个对象是否为同一个实际对象,是否指向同一块内存。

              "=="是比较两个对象的内容是否相等,默认调用对象de __eq__()方法

               Python内部做了优化工作,对于整数对象,Python把一些频繁使用的整数对象缓存起来,保存到small_list链表中。在Python的整个生命周期中,任何调用这些小整数的地方,都不需要重新创建一个对象。范围是[-5到256]

    注意:

    1.小整数对象是全局解释器内重复使用,永远不会被回收。同一个代码块中的不可变对象,只要值相等,就不会创建新的对象。

    2.出于对性能的考虑,凡是不可变对象,在同一个代码模块中,只要是值相同的对象,都不会被重复创建。

    (字符串中单个*20以内,内存地址是一样的。如果超过,即*21以上,内存地址还是不同的。切不能存在特殊字符,即必须全部由字母组成)(Python3.7及以后的版本不适用)

    3.不仅是整形,字符串也同样遵守上述规则

    复习:可变类型与不可变类型

    可变数据类型

    元组tuple 字符串string 整数int 布尔类型 bool

    可变数据类型:

    列表list 字典dict 集合set

    2.1.4 代码块:程序的最小基本单位

    Python程序便是基于代码块组成的。

    一个代码块文件,一个函数体,一个类,交互式命令行中的单行代码都算是代码块。

    在一个py文件中,情况类似,但是又不一样的地方。

    1.int类型,只要在同一个代码块中的值相同,地址则相同

    2.str类型,只要长度不超过20,哪怕含有特殊字符,地址也相同

    3.编码与解码

    3.1 常见编码:二进制 01

    3.2 编码与解码(以ASCII为例)

    3.2.1 简介

    编码与解码是一种映射关系。

    解码,比如ASCII中的字符A对应的十进制是65,对应的二进制编码为0100 0001。

    编码即为解码的逆向工程,当计算机读到 0100 0001 就对应ASCII的表中查看,对应为A

    解码encode:真是字符与二进制串的对应关系,即

    真实字符->二进制串

    编码decode:二进制串与真实字符的对应关系,即

    二进制串->真实字符

    注意:1.编码和解码应该是同一个码

    2.在文件开头,指定编码,例如

    #-*-coding:utf-8-*- (python)

    <meta charset = 'utf-8'>(html)

    @charset'utf-8'(CSS样式)

    3.2.2常见编码方式

    3.2.2.1 ASCII

    不支持中文,支持英文 数字 符号

    8位一个字节

    3.2.2.2 GBK 国标码

    支持中英文,数字和符号

    英文 16位 2字节

    中文 16位 2字节

    3.2.2.3.Unicode 万国码

    支持中英文,数字和符号

    英文 32位 4字节

    中文 32位 4字节

    3.2.2.4.UTF-8 长度可变的万国码

    支持所有

    英文 8位 1字节

    中文 24位 1字节

    注意:Python 2 默认使用 ASCII编码,Python 3 默认使用Unicode显示所有内容 pycharm默认使用UTF-8

  • 相关阅读:
    异常处理——Java的try catch用法
    C# 如何通过mailto标签和SMTP协议两种方式发送邮件
    Sublime Text 插件之HTML-CSS-JS Prettify—格式化HTML CSS JS与显示函数列表
    C# 如何提取字符串中的数字
    C# 解决读取dbf文件,提示Microsoft Jet 数据库引擎找不到对象的问题
    解决UEFI启动模式下无法使用U盘启动WIN7安装界面
    实现Windows直接远程访问Ubuntu 18.04(旧版本也支持,无需安装第三方桌面,直接使用自带远程工具)
    深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3
    深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动
    xrdp完美实现Windows远程访问Ubuntu 16.04
  • 原文地址:https://www.cnblogs.com/tjlhappyboy/p/11209692.html
Copyright © 2011-2022 走看看