【Python】基础

本文概述了Python2.0和3.0的区别,Python的编译与运行机制,面向对象编程思想,基本程序设计模式IPO,以及详细的Python安装、环境配置、编码规范和常用的集成开发环境等内容。
摘要由CSDN通过智能技术生成

快毕业了,重新拉通一遍python =)
参考并整理了Python入门技能树

Python 2.0 & Python 3.0 区别

Python 2.0Python 3.0
输入raw_input()函数input()函数
输出print关键字print()函数
字符串编码格式ASCIIUnicode
源码编码格式默认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:

  1. I:Input 输入,程序的输入
  2. P:Process 处理,程序的主要逻辑过程
  3. O:Output 输出,程序的输出

因此,基本程序设计模式有三个环节:

  1. 确定IPO:明确需要实现功能的输入和输出,以及主要的实现逻辑过程;
  2. 编写程序:将计算求解的逻辑过程通过编程语言进行设计展示;
  3. 调试程序:对编写的程序按照逻辑过程进行调试,确保程序按照正确逻辑正确运行。

Python 安装与环境配置

下载

根据自己设备所使用的操作系统和所需版本进行下载即可。

Python官网网址:https://www.python.org/downloads/

安装

不同操作系统安装过程有细微区别,不做赘述。参考提供链接。

MacOS

Windows

Linux

集成开发环境

IDE, Integrated Development Environment

VSCode (Visual Studio Code)

[强推] 站在前辈的肩膀上吧家人们。 VSCode各种各样的插件太好用咯!

官网: https://code.visualstudio.com/

Spyder

官网: https://www.spyder-ide.org/

Pycharm

官网: https://www.jetbrains.com.cn/pycharm/

Anaconda

虚拟环境–懒人福音

官网: https://www.anaconda.com/

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 * # 将某个模块中的全部函数导入

注意事项:

  • 从同级目录路径开始
  • 避免循环导入
  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值