写在前面的话:万事开头难,算是系统学习python的一个月了吧,总该写点什么来记录一下,之前看老男孩day1的视频没有开通博客,这次给补上,对于学python还是要好好努力,不能半途而废,还是那句老话,好好加油,多年后回首会感谢曾经努力的自己,废话不多说了,开始记录吧。

python是一门什么样的语言

python严格上讲其实是先编译后解释型语言,首先程序在运行时,编译结果是保存在内存中叫pycodeobject里面,pycodeobject就是编译的结果,是一种字节码文件;当程序运行完后,python解释器将pycodeobject结果写入到pyc里面,当下次运行程序时,自动找到pyc文件进行解释,不用重新编译;如果源码更改,则根据修改时间是否直接pyc解释还是重新编译,如果修改时间比pyc新则需要重新编译。

字符编码

python解释器在加载.py文件的代码时,会对内容进行编码(默认是ASCII)

1.ASCII是美国标准信息交换码,最多能用8位来表示(一个字节),即2 ** 8 - 1 = 256 - 1 = 255,所以ascll只能表示255个符号。

注:ASCII只是针对西欧等国家编码足够表示其中的符号,但是对于中国汉字和符号而言远远不够,因此有了下面的编码。

2.GB2312(1980年)收录了了7445个字符,包括6763个汉字和682个其它符号。

3.GBK1.0(1995年)收录了21886个符号,汉字区包括21003个字符。

4.GB18030(2000年)是取代GBK1.0的正式国家标准,该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字;现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

ASCII无法满足各国符号和文字的表示,所以有了Unicode

Unicode就是万国码、统一码、单一码。它为每种语言设置了唯一的二进制编码,规定有的字符最少有16位(两个字符)来表示,即可以表示2 ** 16  - 1 = 65535个字符。

但是Unicode比较浪费,比如ASCII只用一个字节就能保存,因此又衍生出了utf-8编码。

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。

其他随笔:

1.一般编码时候第一行加上#!/usr/bin/env/python的作用是:变成可执行程序必须加上这一行申明,说明解释器是python

2.当import模块名时,首先是在当面目录里找模块,然后在环境变量里面找,如果当面目录存在相同名字的模块,则将其覆盖。正确的方法是把写好的模块丢进site-package文件夹里,因为第三方的库都在里面,或者是修改环境变量使环境变量里面有模块的路径。

3.字节码(bytes)就是二进制,与字符串之间的转换:

字符串转为二进制:encode(encoding = ‘utf-8’)

二进制转换为字符串:decode(encoing = ‘utf-8’)

注:有些内容前面带b的就是二进制的字节码

ql的python学习之路-day1的更多相关文章

  1. ql的python学习之路-day15

    前言:本节主要讲解的是文件路径 在实际的软件开发中会设计一个项目的文件目录,按照执行包bin.配置包config.核心包core等来设计,在执行包里面要运行核心包里的主程序mian,由于不在同一级的目 ...

  2. ql的python学习之路-day14

    前言:本节主要学习时间模块time.datetime python中的几种时间表示:1)时间戳  2)格式化的字符串时间 3)struct_time元组格式的时间 time.datetime模块源码: ...

  3. ql的python学习之路-day13

    前言:本节主要学习模块 一.模块的定义 模块:本质是.py结尾的python文件(文件名:test.py,对应的模块是:test),用来从逻辑上组织python代码(变量.函数.类.逻辑,本质是实现一 ...

  4. ql的python学习之路-day12

    前言:这一节主要学习json和pickle 背景: 相信大家在日常生活中都有接触大型的网络游戏,打游戏的时候都是自己在电脑上操作,自己刷怪升级:当然也会碰到中午去吃饭然后挂机的情况,让电脑自动的刷怪, ...

  5. ql的python学习之路-day11

    前言:本节主要学习python内置的方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:qinjiaxi from collections ...

  6. ql的python学习之路-day10

    前言:本节主要讲解迭代器和生成器 迭代器&生成器 一.生成器(generator) 循环占用大部分的容量内存,如果只需要循环前面的几个结果那怎么样做呢,在python中有一种一边循环一边计算的 ...

  7. ql的python学习之路-day9

    前言:本节主要学习装饰器 一.装饰器 定义:本质上是个函数,用来装饰其他函数:(就是为其他函数添加附加功能) 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 以上两点可以总 ...

  8. ql的python学习之路-day8

    前言:本节主要学习的是函数的全局变量和局部变量以及递归 一.全局变量和局部变量 定义在函数外并且在函数头部的变量,叫做全局变量,全局变量在整个代码中都生效. 局部变量只在函数里生效,这个函数就叫做这个 ...

  9. ql的python学习之路-day7

    函数与函数式编程 一.编程模式分为三种: 1.面向对象编程:类----->关键字class 2.面向过程编程:过程----->关键字def,没有return 3.函数式编程:函数----- ...

随机推荐

  1. pytorch torchversion自带的数据集

    from torchvision.datasets import MNIST # import torchvision # torchvision.datasets. #准备数据集 mnist = M ...

  2. Python操作三大主流数据库

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:  ...

  3. Java 后台设置session成功,获取为空

    cookie secure当服务器使用https时,容易出现漏洞SSL cookie without secure flag set,敏感cookie这时就需要打开cookie secure,服务器端 ...

  4. PIL库的学习总结及生成GIF

    一.PIL库的概述 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装. 打开cmd,输入 pip install pillow PIL库支持图像 ...

  5. Spring Cloud 系列之 Stream 消息驱动(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Stream 消息驱动(一) 本篇文章讲解 Stream 如何实现消息分组和消息分区. 消息分组 如果有多个消息消费者 ...

  6. 【集群实战】共享存储实时备份(解决nfs共享存储的单点问题)

    1. nfs存储的单点问题 如果nfs服务器宕机了,则所有的nfs客户机都会受到影响.一旦宕机,会丢失部分用户的数据.为了解决单点问题,需要实现共享存储的实时备份,即:将nfs服务端共享目录下的数据实 ...

  7. Element UI表格组件技巧:如何简洁实现跨页勾选、跨页统计功能

    业务场景 在使用Element UI的Table组件时,常常面对这样的业务需求: 表格数据的每一项都要提供勾选框,当切换分页时,能够记忆所有页面勾选的数据,以实现批量提交不同页面勾选数据的功能.并且, ...

  8. 解决 Retrofit 多 BaseUrl 及运行时动态改变 BaseUrl ?

    原文地址: juejin.im/post/597856- 解决Retrofit多BaseUrl及运行时动态改变BaseUrl(一) 解决Retrofit多BaseUrl及运行时动态改变BaseUrl( ...

  9. Linux 开发之线程条件锁那些事

    2019独角兽企业重金招聘Python工程师标准>>> 条件锁即在一定条件下触发,那什么时候适合用条件锁呢,那当然是你在等待一个符合的条件下触发.一个常用的例子就是在线程中无限循环执 ...

  10. 有关for循环的一些东西

    有的时候,不知道是因为学的有点浅显,还是脑袋有点懵,简单的循环语句都有点被绕糊涂了. 这种内外循环的,先是外循环一次,内循环全部,接着再外循环第二次,内循环全部,,,,,,,. 所以先是显示 0 4 ...