《python概述与开发环境安装》课程学习笔记

蹲街弑〆低调 提交于 2020-03-07 03:50:53

Python

一、概述及编码规范

1.1学习参考资料:

1.1.1 书籍:

《python编程:从入门到实践》
《从python开始学编程》
《python基础教程》
《python核心编程》

1.1.2 教程:(补充学习)

廖雪峰:python教程
菜鸟教程:python3教程

1.2概述

1.2.1python语言特点:

解释型、面向对象、开源免费、支持交互式、可移植、拥有广泛的库、功能强大、可扩展、可嵌入、运行慢、代码不能加密

1.2.2典型应用:

web开发:
Django,TurboGears,web2py等框架;
自动化脚本:
大多数Linux发行版以及NetBSD、OpenBSD和MacOSX都集成了python,可以在终端下直接运行python;
桌面软件:
PyQt,PySide,wxPython,PyGTK是Python快速开发桌面应用程序的利器;
游戏:
很多游戏使用C+编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器等;
服务器软件:
Python对于各种网络协议的支持很完善,因此经常变用来编写服务器软件、网络爬虫;
科学计算:
NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序;

1.2.3Python的应用方向

人工智能:
Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到了广泛的支持和应用;
网络爬虫:
大数据行业获取数据的核心工具。Python是编写网络爬虫的主流编程语言,Scrapy爬虫框架应用非常广泛。
web开发:
基于Python的web开发框架很多,如Diango、Flash等;
数据分析:
对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python是数据分析的主流语言之一。
科学计算:
随着Numpy、SciPy,Matplotlib等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图形;
常规软件开发:
支持函数式编程和OOP面向对象编程,适用于常规的软件开发、脚本编写、网络编程;

1.3编码规范

1.缩进:

Python严格使用缩进来体现代码的逻辑从属关系。以4个空格为一个缩进单位。tab和空格不要混合使用。

2.空格和空行:

每个类、函数定义或者完整代码之后添加一个空行。
一般在二元运算符两侧各增添一个空格,逗号后面加空格,让代码适当的松散一些,提高阅读性。
一元前缀运算符后不加空格,括号前后不加空格,逗号、分号、冒号前不加空格,一般在其后加。在实际使用中,要灵活使用,不要过于死板,唯一目的是让代码可读性更好。

3.标识符命名:

开头:必须英文、汉字或下划线,注意虽然支持了汉字但是尽量不要使用。

名字中:可以包含汉字、英文字母、数字、和下划线,不能有其他任何标点符号。

不能使用关键字,如:yield , lambda , def , for , break , if , while , try , return等。
区分大小写

不建议使用系统内置的模块名、类型名、函数名,以及导入的模块名及其其他成员名或者变量名或者自定的函数名。如:type , max , len , list , math , random , datetime , re等;

4.续行:

当一句代码过长,为了增加可读性,可以续行编写。
在行尾使用续行符"",表示下一行代码仍属于本条语句;
使用圆括号把多行代码括起来表示一条语句。
如:
expression1 = 1 + 2 + 3\
+ 4 + 5
expression2 = (1 + 2 + 3
+ 4 + 5)

5.注释:

两种常用的注释形式:

井号#

井号#用于单行注释。对所选内容注释快捷键:CTRL+/

三引号

‘’’ ***** ‘’’,适用于大段说明性文本注释。
建议:对代码关键部分或者复杂部分进行注释,不做无意义注释;较为重要的注释段,可以使用多个等号隔开增加醒目突出重要性。

6.圆括号()

用来表示多行代码为一条语句;
用来修改表达式计算顺序或者增加代码可读性避免歧义.

二、Python开发环境安装

简介:IDLE、Anaconda、Spyder、Jubpter、Notebook(都只针对Windows下安装)

IDLE

默认与Python一起安装;
安装步骤 :python官网——downloads——for Windows——选择最新版本下载——双击安装——自定义安装+勾选path——全部勾选——高级选项:for all users+修改安装位置,add python to environment variables必须勾选——安装完成。

点击win“开始”,可以看到一些程序:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QWmGuZAZ-1583498563096)(2020-03-06_11-04-56.png)]

IDLE:就是Python的GUI编译环境IDLE,全称“Integrated Development and Learning Environment”,意思是集成开发与学习环境;
Python3.8 Module Docs:就是python的模块文档;
Python3.8 Manuals:就是python的用户手册;
Python 3.8:就是python的默认解释器;

关于IDLE的使用和注意事项,留意:保存文件时必须带上.py后缀。

Anaconda

1.特点

用Python语言进行机器学习和数据分析的绝佳平台;
可以快速下载1500+python语言数据科学包;

使用Conda管理库、依赖包和环境,好处是可以使用多个python开发环境;

可开发和训练机器学习、深度学习库,如scikit-leran,Tensor Flow等;

性能强大且可扩展的数据分析包,包括pandas(数据分析)、SciPy(科学计算)、NumPy(数据处理)等;

以及Matplotlib,Datashader等数据可视化扩展库;

2.安装

安装下载3.*版本——开始安装,关闭杀毒软件,选择just me——设置安装路径——不勾选“add anaconda to my path environment variable”,如果不打算使用多个版本的anaconda请勾选“register anaconda as my default python3.7”——安装完成;

检查是否完成:开始——Anaconda3(64-bit)→Anaconda Navigator,若成功启动anaconda navigator 则说明安装成功。

3.使用

Anaconda包含一个基于GUI的导航应用程序,使得开发变得容易;缺省应用包括spyder IDE、jupyter notebook、JupyterLab、Qt Console、Orange App、Glueviz等;

Spyder配置使用:

Spyder是一个用于科学计算的使用python编程语言的集成开发环境。它结合了综合开发工具的高级编辑、分析、调试功能、交互式执行等功能;

特点:
类MATLAB设计、自动补全、函数调用提示、随时访问多种工具的使用文档、工具丰富、功能强大。

其他的知识参考Spyder使用手册。

Jupyter Notebook使用

JupyterNotebook是基于网页的用于交互计算的应用程序,其可被应用与全过程计算:开发、文档编写、运行代码和展示结果。
简单来说:JupyterNotebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。

特点:
高亮、缩进、tab补全、浏览器运行代码、以富媒体格式展示计算结果,富媒体格式包括:HTML、LaTeX、PNG、SVG等、对代码编写说明文档或语句时,支持Markdown语法,支持使用LaTex编写数学性说明。

三、扩展库安装与使用

3.1python环境管理

3.1.1Anaconda环境管理概述

Anaconda提供Python环境管理和包管理给你,可以方便在多个版本python之间切换和管理第三方包,而且方便安装、更新、卸载工具包,安装时可以自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。

3.1.2打开管理终端

win:打开Anaconda Prompt

3.1.3创建新环境

conda create --name <env_name> <package_names>

注:env_name即创建的环境名,packgage_names即安装在环境中的包名。名称两边都不加尖括号<>。

补充:
如果需要安装指定的版本号,则可以在包名后面接=+具体版本号,如上例,即创建一个名为python3的环境,环境中安装版本为3.8.1的python。
conda create --name python3 python=3.8.1

如果在新建的环境中创建多个包,则直接在包名后面以空格隔开,添加多个包名即可,如:
conda create -n python3 python3.7 numpy pandas
即创建一个python3环境,环境中安装3.7版本python同时安装pandas。

3.1.4默认安装位置

默认情况下,新环境会被保存在/user/<user_name>/anaconda3/env目录下,其中user_name为系统当前用户的用户名。

3.1.5激活/退出环境

激活就是切换到该环境下:
conda activate python3
激活成功后,在环境命令的开头处将显示新环境的环境名;
退出:conda deactivate
退出成功后,在环境命令的开头处讲显示base。

3.1.6删除环境

conda remove --name python3 --all
即移除环境名为python3的所有环境

3.1.7python扩展库安装
Python扩展库对象:

openpyxl 读写Excel文件
python-docx 读写Word文件
numpy 数组计算和矩阵计算
scipy 科学计算
pandas 数据分析
matplotlib 数据可视化或科学计算可视化
scrapy 爬虫框架
shutil 系统运维
pyopengl 计算机图形学编程
pygame 游戏开发
sklearn 机器学习
tensorflow 深度学习

添加清华大学Anaconda镜像

即TUNA(清华大学开源软件镜像站)提供了anaconda仓库的镜像,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
即可添加anaconda python 免费库

查询可供安装的扩展库版本:

在Anaconda Powershell Prompt
conda search --full-name pandas
即全名查索pandas这个库,从获取的版本中进行下载;

获取当前环境中已经安装的扩展库信息:

conda list

在指定的环境中安装包:

方法一:先进入想要安装的目标环境,然后输入安装命令,如:
conda activate python3
conda install numpy
方法二:在输入安装命令时指定安装的环境名,如:
conda intall -n python3 numpy
该方法在前面的新建anaconda环境时说到过该格式。

在当前环境中卸载包

conda remove <package_name>

在指定环境中卸载包

conda remove --name <env_name> <package_name>

3.2.导入与使用

3.2.1简介:

Python所有的内置对象不需要做任何的导入操作就可以直接使用,但是标准库对象必须先导入才能使用,扩展库则需要正确安装后才能导入和使用其中的对象。

3.2.2标准库导入:

方式一:
import 模块名 [as 别名]
必须以“模块名.对象名”(“别名.对象名”)的形式访问对象。
例子:

import math
import random
import posixpath as path

print(math.sqrt(16))
print(math.cos(math.pi/4))
print(random.choices(‘abcd’,k=8))
print(path.isfile(r’C:\Windows\notepad.exe’))#测试指定路径是否为文件

方式二:
from 模块名 import 对象名[as 别名]
不需要使用模块名作为前缀,导入方式可以减少查询次数,提高访问次数。

form math import pi as PI
from os.path import getsize
from random import chice
r = 3
print(round(PIrr,2))#计算半径为3的圆面积
print(getsize())#计算文件大小,单位为字节
print(choice(‘Python’))#从字符串中随机选择一个字符

方式三:
from 模块名 import *
一次性导入模块所有对象,简单粗暴,但一般不推荐使用。

建议

建议一:编写代码时,一般先导入标准库对象再导入扩展库对象;
建议二:程序中只导入确实需要的标准库和扩展库对象,确定用不到的没必要进行导入,这样可以提高加载和运行速度,减少打包后的可执行文件体积。

补充知识:pip扩展库安管理工具

pip freeze 列出已安装模块及其版本号
pip install package[==version]在线安装指定模块(的指定版本)
pip install package.whl 离线安装扩展模块
pip install package1 package2 依次在线安装模块1、模块2
pip install --upgrade package 升级模块
pip uninstall package[==version] 卸载模块
如果计算上安装多个版本的python或希望在虚拟环境中安装模块,最好切换至相应环境的scripts文件夹下再执行命令。

3.3.常用标准库

3.3.1.Python内置对象:

即Python核心数据类型,数字、字符串、列表、字典、元组、集合、文件,以及类型、None、布尔型、程序单元类型(函数、模块、类)、python实现相关类型(已编译代码、调用栈追踪)

3.3.2Python标准库:
字符串:

re正则表达式。用来判断字符串是否是你指定的字符串。
StringIO提供以文件形式来读写字符串
struct以二进制字节序列来解释字符串。可以通过格式化参数,指定类型、长度、字节序(大小端)、内存对齐等。

例子:
import re
print(re.findall(rf[a-z]*,‘which foot hand fell fastest’))
结果为[‘foot’,‘fell’,‘fastest’]

数据类型:

datetime
pprint:提供了“整洁打印”功能,具有打印任意Python数据结构的能力。
collections:高性能容器数据类型,实现了Python的通用内置容器、字典、列表、集合和元组专门的数据类型。

数学运算:

math:数学函数。提供了由C标准的数学函数访问,该库的函数不适用于复数。
cmath:为复数提供的数学函数。
operator:重载运算符。
random:各种分布的伪随机数的生成器。

文件和目录:

os.path:常用路径名操作;
filecmp:文件或目录的比较;
shutil:高级的文件操作,支持文件复制和删除;

操作系统

time:时间获取和转换,各种与时间相关的函数。
argparse:命令行选项、参数和子命令的解析器。
io:提供接口处理IO流。
logging:python的日志工具,提供日志的记录的API。
logging.config:python日志配置,用于配置日志模块的API。
os:提供丰富的与MAC、NT、Posix等操作系统进行交互的能力。

os提供了不少与操作系统相关联的函数
import os
print(os.getcwd()) #返回当前的工作目录
os.chdir(r’C:\Users\winner\Python3Learn\Lesson1Code’) #修改当前的工作目录
os.system(‘mkdir today’) #执行系统命令mkdir
print(os.getcwd())#返回当前的工作目录

建议使用“import os”,而不是“from os import *”,这样可以保证随操作系统不同而有所变化的os.open()不会覆盖内置函数open()。
在使用os这样的大规模模块时,内置的dir()和help()函数非常有用。

sys:提供访问和维护python解释器的能力。这包括了提示信息、版本、整数的最大值、可用模块、路径钩子、标准错误、标准输入输出的定位和解释器调用的命令行参数。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!