python3 基础一
一.python基本运行
1.python特点:(1)python使用C语言开发,但是python不再有C语言中的指针等复杂数据类型,(2)python有很强的面向对象特性,而且简化了面向对象的实现,它消除了保护类型,抽象类,接口等面向对象元素,(3)python代码使用空格或制表符缩进的方式分隔代码,(4)Python是动态类型,强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换
2.python就是一种解释型语言,python的编译在python解释器中发生,Python的解释器完成字节编译的功能
3.pycharm中# !/user/bin/env python 表示指向 python 的路径,告诉操作系统执行这个脚本的时候,调用 /usr/bin下的python解释器
4.python中的文件类型有3类:
(1)源代码文件以 .py 结尾,由python来解释执行,
(2)python字节码文件.pyc即编译过的字节文件,这种文件不能使用文本编辑器修改,而且和平台无关,可以使用py_compile.compile('xxx.py')代码或命令行python -m py_compile xxx.py来主动生成,
(3).pyo文件也是优化编译后的程序(相比于.pyc文件更小),也可以提高加载速度。但对于嵌入式系统,它可将所需模块编译成.pyo文件以减少容量,pyc文件其实是PyCodeObject的一种持久化保存方式
5.python中执行一次后自动生成 .pyc 文件(字节码)(缓存)(提供运行速度), .pyc 文件就是经过编译后的二进制文件
6.python文件执行流程:先把源文件编译成字节码文件,再根据字节码解释执行
二.注释
1.选定内容ctrl+/
2.Python中单行注释以 # 开头
3.多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
三.行与缩进
1.python最具特色的就是使用缩进来表示代码块
2.缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,缩进不一致,会导致运行错误
四.多行语句
1.使用反斜杠(\)来实现多行语句
2.在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\)
五.空行和多句行
1.空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构
2.Python可以在同一行中使用多条语句,语句之间使用分号(;)分割
六.标识符
1.第一个字符必须是字母或下划线 _
2.标识符的其他的部分由字母、数字和下划线组成
3.标识符对大小写敏感
七.关键字keyword
关键字是预先保留的标识符,每个关键字都有特殊的含义
1 import keyword#导入keyword(关键字)模块
2 print(keyword.kwlist)#输出当前版本所有关键字
3 ---------------------------------------------------------------
4 ['False', 'None', 'True', 'and', 'as', 'assert', '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']
八.字符编码
1.基本概念
(1)字节(Byte):计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机内的数据都是有字节组成
(2)字符(character):字符是一个信息单位,它是各种文字和符号的统称,比如一个汉字、一个标点、一个英文字母等
(3)字符码(Code Point):字符集中每个字符的数字编号,例如ASCII 字符集用0-127连续的128个数字表示128个字符,比如‘A’的字符码编号为65
(4)字符编码(Character Encoding):将字符集中的字符码映射为字节流的一种具体实现方案,常用的有ASCII、UTF-8、GBK等,比如‘A’存储时就是b‘01000001’
(5)编码:将字符转为字节流;解码:将字节流解析为字符
2.编码:简单来说,把我们写的东西转换为计算机可以理解的二进制,编码相关的错误:UnicodeEncodeError和UnicodeDecodeError
3.字符编码的发展:
(1)ASCII码:显示所有英文、数字、字母,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号,现在ascii码可以看做是utf-8的一部分
(2)GBK:多字节字符编码,收录了汉字和少数民族文字,同时兼容ASCII编码,英文字符一个字节表示,汉字两个字节标识
(3)Unicode(万国码):规定字符最少由 16 位来表示(2个字节),即:2 **16 = 65536,其中每个汉字三个字节
(4)UTF-8(Unicode Transformation Format):是对Unicode编码的压缩和优化,对字符进行分类,是可变长度字符编码,用1-6个字节编码Unicode字符,其中ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3字节
4.python的编码:
(1)python2比unicode早,所以他的默认编码是ASCII,可以在源文件中显示指定编码类型 # -*- coding:utf-8 -*-或 # coding=utf-8,否则可能会导致UnicodeEncodeError和UnicodeDecodeError错误
(2)python3 默认以 UTF-8 进行encode和decode操作,所有字符串都是 unicode 字符串,
5.ord(unicode ordinal)编号,chr(character)字符
1 print('A=',ord('A'))#输出A的Unicode码
2 print('4444=',chr(4444))#输出4444对应的字符
3 --------------------------------------------------
4 A= 65
5 4444= ᅜ
九.变量
1.一个变量只能和一个值相关联。一般说成:变量引用值
2.Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
3.等号(=)用来给变量赋值,等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值,
(1)变量名:遵循标识符原则,而且不能使用关键字和函数名,不能包含空格,变量名应即简短又具有描述性,慎用小写 l 和大写O
(2)值:python中的一个对象
(2)Python中可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来
4.Python中,变量就是变量,它没有类型,我们所说的"类型"是变量关联的值的类型
1 a = 'ABC'#表示变量a引用‘ABC’字符串
2 #Python解释器干了两件事情:
3 #1.在内存中创建了一个'ABC'的字符串(对象)
4 #2.在内存中创建了一个名为a的变量,并把它指向'ABC'。
5
6 b = a#表示变量b引用‘ABC’字符串
7 #把a赋值给b,实际:是把变量b指向变量a所指向的数据
8
9 a = 'XYZ'#表示变量a引用‘XYZ’字符串
10 #又把变量a重新指向一个新的对象
11
12 print(a)
13 print(b)
14
15 #同时给多个变量进行赋值
16 c=d=1#c引用1,d引用1
17 print(c,d)
18
19 e,f,g = 1, 2, "runoob"#e引用1,f引用2,g引用"runoob"
20 print(e,f,g)
21 -------------------------------------------------------------------
22 XYZ
23 ABC
24 1 1
25 1 2 runoob
十.PEP8规范简介
1.命名
(1)首字母大写,驼峰法 :类名 : MyClass
(2)字母小写、简短、可加下划线: 模块、包、参数、变量、函数、方法 ,test_name
(3)常量,全局变量、配置文件中---大写加下划线 BASE_DIR
(4)私有方法和函数:前缀为双下划线 __my_function
(5)特殊方法:双下划线开始和结尾 __init__()
2.导入:导入通常在分开的行
(1)顺序:标准库导入,相关第三方库导入,本地应用/库特定导入
3.其他
多行文档说明使用的结尾三引号应该自成一行;不要使用 tab 缩进,把一个 tab 展开为 4 个空格;尽量不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I);尽量使用英文写注释