目录
快毕业了,重新拉通一遍python =)
参考并整理了Python入门技能树
Python 2.0 & Python 3.0 区别
Python 2.0 | Python 3.0 | |
---|---|---|
输入 | raw_input()函数 | input()函数 |
输出 | print关键字 | print()函数 |
字符串编码格式 | ASCII | Unicode |
源码编码格式 | 默认ASCII | 默认utf-8 |
数据类型 | 整型int,长整型long | 只有整型int |
python 2.0 要使用中文时, 在源文件开头加上一行注释:
# -- coding: utf-8 --;
Python 编译和运行过程
和JAVA类似。Python源代码(.py文件)编译生成Python字节码(.pyc文件,Python Byte Code),然后再由Python虚拟机(Python Virtual Machine,简称PVM)来执行Python字节码,最后在终端输出运行结果。
如果import了包,就会把需要导入的包进行编译生成 *.pyc 文件,再执行.pyc文件
Python 编程思想
Python是一种面向对象oop(Object Oriented Programming)的脚本语言。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。面向对象的方法把数据和方法组合成一个整体,然后对其进行系统建模。
基本的程序设计模式
任何的程序设计都包含IPO:
- I:Input 输入,程序的输入
- P:Process 处理,程序的主要逻辑过程
- O:Output 输出,程序的输出
因此,基本程序设计模式有三个环节:
- 确定IPO:明确需要实现功能的输入和输出,以及主要的实现逻辑过程;
- 编写程序:将计算求解的逻辑过程通过编程语言进行设计展示;
- 调试程序:对编写的程序按照逻辑过程进行调试,确保程序按照正确逻辑正确运行。
Python 安装与环境配置
下载
根据自己设备所使用的操作系统和所需版本进行下载即可。
Python官网网址:https://www.python.org/downloads/
安装
不同操作系统安装过程有细微区别,不做赘述。参考提供链接。
MacOS
Windows
Linux
集成开发环境
IDE, Integrated Development Environment
VSCode (Visual Studio Code)
[强推] 站在前辈的肩膀上吧家人们。 VSCode各种各样的插件太好用咯!
Spyder
Pycharm
Anaconda
虚拟环境–懒人福音
Python 编码规范
编码格式
通常要在.py 文件开头添加如下注释,声明编码格式
# -- coding: utf-8 --
分号
Python不需要在行尾使用";"
每行代码长度
每行不超过80个字符, 以下情况除外:
- 长的导入模块语句
- 注释里的URL
缩进
- 1 x TAB = 4 x 空格
- 可使用
';'
将多个逻辑行合并成一个物理行- 可使用
'\'
将一个逻辑行合并成多个物理行
# 合并
i=1;j=2;k=3;print(i,j,k)
# 非合并
i = 1
j = 2
k = 3
print(i, j, k)
print(i,\
j,\
k)
注释
行注释
注释应解释思路, 而不是解释代码本身
# 这是行注释
块注释
块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别
# 这
# 是
# 块
# 注
# 释
文档注释
要为所有的公共模块,函数,类和方法编写文档说明
"""
这是文档注释
"""
空行
- 顶层函数,、 类定义、编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
- 类里面方法定义用一个空行隔开
命名
变量命名
变量名尽量小写, 如有多个单词,用下划线隔开
loss = None
train_set = None
常量或者全局变量命名
全部大写,如有多个单词,用下划线隔开
DISCOUNT = 0.7
MAX_CAPACITY = 1000
函数命名
- 函数名应该小写,如有多个单词,用下划线隔开
- 私有函数在函数前加一个下划线_
class Person():
def _private_func():
pass
类命名
类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。
class Farm():
pass
class AnimalFarm(Farm):
pass
class _PrivateFarm(Farm):
pass
导入
导入应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。
导入应该按照从最通用到最不通用的顺序分组:标准库导入、第三方库导入、应用程序指定导入,分组之间空一行。
模块名称要短,使用小写,并避免使用特殊符号, 比如点和问号。
每个导入单独一行
import os
import numpy
import sys
from types import StringType, ListType
主函数
在Python中,pydoc以及单元测试要求模块必须是可导入的。代码应该在执行主程序前总是检查 if __name__ == ‘__main__’, 这样当模块被导入时主程序就不会被执行。
def main():
pass
if __name__ == '__main__':
main()
Python 常用标准库
python_modules = [
"os --- 多种操作系统接口",
"os.path --- 常用路径操作",
"re --- 正则表达式操作",
"datetime --- 基本日期和时间类型",
"heapq --- 堆队列算法",
"enum --- 对枚举的支持",
"math --- 数学函数",
"random --- 生成伪随机数",
"itertools --- 为高效循环而创建迭代器的函数",
"functools --- 高阶函数和可调用对象上的操作",
"shutil --- 高阶文件操作",
"sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块",
"csv --- CSV 文件读写",
"hashlib --- 安全哈希与消息摘要",
"hmac --- 基于密钥的消息验证",
"time --- 时间的访问和转换",
"argparse --- 命令行选项、参数和子命令解析器",
"logging --- Python 的日志记录工具",
"threading --- 基于线程的并行",
"multiprocessing --- 基于进程的并行",
"socket --- 底层网络接口",
"email --- 电子邮件与 MIME 处理包",
"json --- JSON 编码和解码器",
"urllib --- URL 处理模块",
"http --- HTTP 模块"
]
Python 导入Module
import somemodule #将整个模块(somemodule)导入
from somemodule import somefunction # 从某个模块中导入某个函数
from somemodule import firstfunc, secondfunc, thirdfunc # 从某个模块中导入多个函数
from somemodule import * # 将某个模块中的全部函数导入
注意事项:
- 从同级目录路径开始
- 避免循环导入