1. 编码
1.1 编码的本质
由于计算机只能够识别1跟0两种信号,那么就需要我们将信息转换成计算机所能够理解的信号,
因此编码的本质就是人所能够理解的字符与计算机所能够理解的二进制之间的对应关系,也就是类似于密码本一样的东西。
代码语言:javascript复制A 0000 0001
B 0000 0010
C 0000 0011 #仅代表示例 不代表真的对应关系
不同的编码模式对于同一个字符可能会存在不同的对应关系
1.2 ASCII编码
www.lookuptables.com
最早期一种编码模式,采用一个字节来表示对应关系,由于一个字节等于8个bit的长度,共有256种对应方式
因此只能够对一些指令,常见的符号,以及数字和英文字符提供码位
代码语言:javascript复制A--65--01000001
1.3 GBK编码
GB2312,中国指定的编码标准,为中国的汉字提供了二进制的码位。
GBK编码就是在GB2312的基础上发展起来的,也为日韩相关的文字提供了二进制的码位
- 使用一个字节来表示对应关系
- 使用两个字节来表示对应关系(16bit 65536)
1.4 UNICODE编码
万国码,为全球的每一个文字都提供了一个二进制的码位
- USC2,使用两个字节来表示对应关系
- USC4,使用四个字节来表示对应关系(32bit 42.9亿)
在进行存储和数据传输时,会浪费大量的空间
假设我们举一个非常极端的例子,假设使用ASCII编码存储一个G的A,此时对应的使用unicode编码要占用4个G
代码语言:javascript复制A--65--01000001 ASCII
A--01000001 01000001 01000001 01000001 unicode
在内存中处理数据时,一般都会采用unicode编码
1.5 UTF-8编码
utf-8编码也可以为全球的每一个文字都提供了一个二进制的码位,但在unicode的基础上进行了压缩
使用一个字节来表示对应关系
使用两个字节来表示对应关系
使用三个字节来表示对应关系
使用四个字节来表示对应关系
因此UTF-8的编码适合进行数据的存储以及数据的传输
1.6 乱码
代码语言:javascript复制马--65--01000001 01000001 GBK
01000001 01000001 UTF-8
找不到就会出现乱码
目前的文件默认采用的都是utf-8的编码,如果想要改变默认的编码模式,可以在python文件的头部加上一段代码
# 默认的编码模式改为GBK
# -*- coding:GBK -*-
即便能够这样改变编码模式,但是建议还是采用UTF-8
2. 进制转换
2.1 进制在python中的表示
代码语言:javascript复制十进制 int
二进制 bin
八进制 oct
十六进制 hex
2.2 进制转换方法
代码语言:javascript复制1.将十进制转成二进制
v1 = 10
print(bin(v1))
0b1010
2.将十进制转成八进制
v1 = 10
print(oct(v1))
0o12
3.将十进制转成十六进制
print(hex(v1))
0xa
4.将2进制转成十进制
v1 = '0b1010'
print(int(v1,base=2))
5.将8进制转成十进制
v1 = '0o12'
print(int(v1,base=8))
6.将十六进制转成十进制
v1 = '0xa'
print(int(v1,base=16))
7.将二进制转成十六进制
v1 = '0b1010'
print(hex(int(v1,base=2)))
0xa
v1 = 0b1010
print(hex(v1))
3. 基本常用函数
代码语言:javascript复制函数就是一个功能的集合
3.1 print
3.1.1 print函数的功能
输出一段内容,显示给用户
3.1.2 常用参数
- end:输出内容之后默认采用的符号,默认是换行符n
print("123",end=",")
print("456")
- sep:输出多段内容之间连接的符号,默认是空格
print("123", "456",sep=",")
3.2 input
- 作用:跟用户做一个交互,接收用户输入的一段内容,注意:通过input方法接收到的值是字符串类型
name = input("请输入用户名:")
print(name)
代码语言:javascript复制name = input("请输入用户名:")
print(int(name) 2)
4. 变量
4.1 变量的本质
变量就是一种容器,指向某一块内存地址
假设现在我们将整个内存当成一个非常大的仓库,取件码 货物 货物实际存放的位置
完整的变量:变量名,变量值,内存地址
4.2 变量定义&调用
变量必须先定义,再调用
定义:
代码语言:javascript复制name = "zhangsan"
age = 18
gender = "male"
a_list = [1, 2, 3]
调用:
代码语言:javascript复制print(name)
info = """
name:{}
""".format(name)
print(info)
4.3 变量定义规则
- 变量名只能由字母、数字、下划线来组成
$ = 123 #错误的变量名
name_1 = 123 #正确的变量名
- 不能以数字开头
1name = 123 #错误的变量名
name1 = 123 #正确的变量名
- 不能用python中的关键字来作为变量名
print = 123 #错误的示范,语法上不会出错,但是会影响原有关键字的功能
del print
break continue pass... //不要用
4.4 变量命名规范
PEP8规范:业界定义的一种规范,理论上来讲不需要强制遵守,但是建议采用这种格式
在pycharm当中可以自动的检查代码是否符合PEP8的规范,使用快捷键Ctrl Alt L来进行调整
- 在定义变量时,尽量使用英文,不要使用拼音的缩写
xuehao = "123456" #错误的命名规范
- 下划线连接:一般来说,定义变量,函数时采用下划线连接
student_id = "123456"
- 驼峰体:定义类的时候采用驼峰体
StudentId = "123456"
4.5 变量的修改与删除
- 场景1
name = "张三"
- 场景2
name = "张三"
name = "李四" #思考地址池变化没
- 场景3
name = "张三"
new_name = name #思考地址池变化没
- 场景4
name = "张三"
new_name = name
name = "李四"
new_name = name #思考地址池变化没
- 场景5
num = 18
age = str(num)
- 场景6
name = "张三"
del name
5. 注释
在编写代码的时候,我们需要对某些内容进行注释,解释器会忽略注释后的代码,不会执行
- 注释代码,程序运行时,不会执行已经被注释掉的代码
- 单行注释
# print(123)
- 多行注释
# name = "张三" # new_name = name # name = "李四" # new_name = name # print(new_name,name) 全部选中 Ctrl /
- 对一些变量或者方法做解释说明