写在前面的话:万事开头难,算是系统学习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. JWT验证机制【刘新宇】【Django REST framework中使用JWT】

    JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证.我们不再使用Session认证机制,而使用Json Web Token认证机制. 什么是JWT Json web t ...

  2. [Inno Setup] 退出安装程序的两种方式

    1. 完全静默的退出 procedure ExitProcess(exitCode:integer); external 'ExitProcess@kernel32.dll stdcall'; ... ...

  3. Oracle数据库字段保留3位小数,程序读出来显示4位小数

    需求 项目需求从字段2位小数,改成3位小数,这事儿好办,数据库噼里啪啦敲了一行代码,发现居然报错,原因是不能修改字段精度问题,然后使用了冒泡排序,搞定 --新增临时字段 ,); --将原字段内容拷贝至 ...

  4. 将Spring Boot应用程序注册成为系统服务

    文章目录 前期准备 打包成可执行jar包 注册成为liunx服务 System V Init Systemd Upstart 在Windows中安装 Windows Service Wrapper J ...

  5. SQL计算算数表达式的函数自定义(加减乘除)

    一.整体思路:循环遍历表达式字符串,设置一个index从第一个字符开始检测当前数字是否可以和后面的数字进行运算,如果可以运算,将两个数挑出来运算,然后用运算的结果替换原来表达式中的这两个数和符号,计算 ...

  6. 【Linux常见命令】find命令

    find - search for files in a directory hierarchy find命令用来在指定目录下查找文件. 任何位于参数之前的字符串都将被视为欲查找的目录名. 如果使用该 ...

  7. php数组存在重复的相反元素,去重复

    $arr1=array('a_b','c_d','b_a','d_c'); $arr2=array('a_b','c_d','b_a','d_c'); 条件: a_b==b_a:c_d==d_c: 需 ...

  8. 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

    为什么80%的码农都做不了架构师?>>>   摘要: 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 H ...

  9. 图论--最短路--第K短路(IDA*)(IDA Star)模板

    #include <iostream> #include <cstdio> #include <cstring> #include <queue> us ...

  10. Codeforce 1255 Round #601 (Div. 2)B. Fridge Lockers(思维)

    Hanh lives in a shared apartment. There are nn people (including Hanh) living there, each has a priv ...