Python学习总结(一)—— 十分钟入门

目录

一、Python 概要

1.1、语言简介

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言,具有 20 多年的发展历史,成熟且稳定。

用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个 MP3,编写一个文档等等,而计算机干活的 CPU 只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成 CPU 可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。
比如,完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能只要 20 行。
所以 Python 是一种相当高级的语言。

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象的解释型计算机程序设计语言,由荷兰人 GuidovanRossum 于 1989 年发明,第一个公开发行版发行于 1991 年。

Python 是纯粹的自由软件,源代码和解释器 CPython 遵循 GPL(GNUGeneralPublicLicense)协议。Python 语法简洁清晰,特色之一是强制用空白符(whitespace)作为语句缩进。

Python 具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。常见的一种应用情形是,使用 Python 快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如 3D 游戏中的图形渲染模块,性能要求特别高,就可以用 C/C++ 重写,而后封装为 Python 可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

1.2、语言特点

简单:Python 是一种代表简单主义思想的语言。阅读一个良好的 Python 程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

易学:Python 极其容易上手,因为 Python 有极其简单的。

免费、开源

高层语言:用 Python 语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性:由于它的开源本质,Python 已经被移植在几乎所有平台上(经过改动使它能够工作在不同平台上)。

解释性:Python 解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用 Python 更加简单。也使得 Python 程序更加易于移植。

面向对象:Python 既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们。(胶水语言)

可嵌入性:可以把 Python 嵌入 C/C++ 程序,从而向程序用户提供脚本功能。

丰富的库:Python 标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系统有关的操作。这被称作 Python 的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如 wxPython、Twisted 和 Python 图像库等等。

Python 拥有一个强大的标准库。Python 语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由 Python 标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理等额外的功能。Python 标准库命名接口清晰、文档良好,很容易学习和使用。

Python 标准库的主要功能有:

  • 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode 支持,二进制数据处理等功能
  • 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
  • 操作系统功能,包含线程与进程支持、IO 复用、日期与时间处理、调用系统函数、写日记 (logging) 等功能
  • 网络通信,包含网络套接字,SSL 加密通信、异步网络通信等功能
  • 网络协议,支持 HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC 等多种网络协议,并提供了编写网络服务器的框架
  • W3C 格式支持,包含 HTML,SGML,XML 的处理。
  • 其它功能,包括国际化支持、数学运算、HASH、Tkinter 等

 开发效率高:丰富的库,据说豆瓣开发只用了 3 个月时间就上线了。

1.3、发展历史与版本

Python 是著名的“龟叔”Guido van Rossum 在 1989 年圣诞节期间在阿姆斯特丹为了打发无聊的圣诞节而编写的一个脚本解释编程语言。之所以选中 Python 作为编程的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。

创始人为吉多·范罗苏姆(Guido van Rossum)

Python 2.0 于 2000 年 10 月 16 日发布,主要是实现了完整的垃圾回收,并且支持 Unicode。

Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。

1.4、功能与前景

1.4.1、应用领域

(1). 常规软件开发

Python 支持函数式编程和 OOP 面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

桌面软件:PyQt、PySide、wxPython、PyGTK 是 Python 快速开发桌面应用程序的利器。

(2). 科学计算

随着 NumPy,SciPy,Matplotlib,Enthoughtlibrarys 等众多程序库的开发,Python 越来越适合于做科学计算、绘制高质量的 2D 和 3D 图像。和科学计算领域最流行的商业软件 Matlab 相比,Python 是一门通用的程序设计语言,比 Matlab 所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。虽然 Matlab 中的许多高级功能和 toolbox 目前还是无法替代的,不过在日常的科研开发之中仍然有很多的工作是可以用 Python 代劳的。

Python 是一门很适合做科学计算的编程语言,97 年开始,NASA 就大量使用 Python 进行各种复杂的科学运算,随着 NumPy、SciPy、Matplotlib、Enthought librarys 等众多程序库的开发,使得 Python 越来越适合做科学计算、绘制高质量的 2D 和 3D 图像。

(3). 自动化运维、操作系统管理

这几乎是 Python 应用的自留地,作为运维工程师首选的编程语言,Python 在自动化运维方面已经深入人心,比如 Saltstack 和 Ansible 都是大名鼎鼎的自动化平台。

在很多操作系统里,Python 是标准的系统组件。大多数 Linux 发行版以及 NetBSD、OpenBSD 和 MacOSX 都集成了 Python,可以在终端下直接运行 Python。有一些 Linux 发行版的安装器使用 Python 语言编写,比如 Ubuntu 的 Ubiquity 安装器,RedHatLinux 和 Fedora 的 Anaconda 安装器。GentooLinux 使用 Python 来编写它的 Portage 包管理系统。Python 标准库包含了多个调用操作系统功能的库。通过 pywin32 这个第三方软件包,Python 能够访问 Windows 的 COM 服务及其它 WindowsAPI。使用 IronPython,Python 程序能够直接调用.NetFramework。一般说来,Python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的 shell 脚本。

(4). 云计算

开源云计算解决方案 OpenStack 就是基于 Python 开发的,搞云计算的同学都懂的

(5).WEB 开发

基于 Python 的 Web 开发框架不要太多,比如耳熟能详的 Django,还有 Tornado,Flask。其中的 Python+Django 架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的 WEB 服务。

Python 经常被用于 Web 开发。比如,通过 mod_wsgi 模块,Apache 可以运行用 Python 编写的 Web 程序。Python 定义了 WSGI 标准应用接口来协调 Http 服务器与基于 Python 的 Web 程序之间的通信。一些 Web 框架,如 Django,TurboGears,web2py,Zope 等,可以让程序员轻松地开发和管理复杂的 Web 程序。

(6). 网络爬虫、服务器软件

也称网络蜘蛛,是大数据行业获取数据的核心工具。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上爬取免费的数据,那些大数据相关的公司恐怕要少四分之三。能够编写网络爬虫的编程语言有不少,但 Python 绝对是其中的主流之一,其 Scripy 爬虫框架应用非常广泛。

Python 对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库 Twisted 支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

(7). 数据分析

在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python 是数据分析的主流语言之一。

(8). 人工智能

Python 在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

(9). 游戏

很多游戏使用 C++ 编写图形显示等高性能模块,而使用 Python 或者 Lua 编写游戏的逻辑、服务器。相较于 Python,Lua 的功能更简单、体积更小;而 Python 则支持更多的特性和数据类型。

近些年,编程语言 Python 的热度越来越高,因为 Python 简单,学起来快,是不少程序员入门的首选语言。

在网络游戏开发中,Python 也有很多应用,相比于 Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python 非常适合编写 1 万行以上的项目,而且能够很好的把网游项目的规模控制在 10 万行代码以内。

(10). 金融分析与交易

金融分析包含金融知识和 Python 相关模块的学习,学习内容囊括 Numpy\Pandas\Scipy 数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”、“羊驼策略”、“Dual Thrust 交易策略”等。

量化交易,就是以数学模型替代人的主观判断来制定交易策略。通常会借助计算机程序来进行策略的计算和验证,最终也常直接用程序根据策略设定的规则自动进行交易。

Python 由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所以目前在量化领域的使用很广泛。市面上也出现了很多支持 Python 语言的量化平台。通过这些平台,你可以很方便地实现自己的交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。

Python 量化平台:

目前国内比较知名的几个平台:

优矿 uqer.io聚宽 joinquant.com米筐 ricequant.com

国外知名平台:

quantopian.com

它们都可以使用 Python 进行策略开发。以优矿为例,注册之后,在“开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己的策略。

https://www.cnblogs.com/dhcn/p/7121435.html

示例:

#! 简单的交易策略:每天买入一手股票池里的所有股票。

start = '2018-01-01'                       # 回测起始时间
end = '2019-01-01'                         # 回测结束时间
benchmark = 'HS300'                        # 策略参考标准
universe = ['000001.XSHE', '600000.XSHG']  # 证券池,支持股票和基金
capital_base = 100000                      # 起始资金
freq = 'd'                                 # 策略类型,'d' 表示使用日线回测
refresh_rate = 1                           # 调仓频率,表示执行 handle_data 的时间间隔,由于 freq = 'd',时间间隔的单位为交易日

def initialize(account): # 初始化虚拟账户状态
pass

def handle_data(account): # 每个交易日的买入卖出指令
for stock in account.universe:
order(stock,
100)

结果:

Python 的就业方向

  • 发展前景一:Linux 运维
  • 发展前景二:Python Web 网站工程师
  • 发展前景三:Python 自动化测试
  • 发展前景四:数据分析
  • 发展前景五:人工智能

1.4.2、发展前景

在过去的十年里,Python 语言获得了最大的增长幅度——十年语言之冠。

语言当前排行:

 

排行发展:

国外谁在使用 python

Python Google 的三大编程语言之一

在 Google,C++、Java、Python 是使用率排名前三的编程语言,使用 Python 的开发团队也是 Google 的第三大研发部门。

在 Google 内部的很多项目,例如 Google Engine 使用 C++ 编写性能要求极高的部分,然后用 Python 或 Java/Go 调用相应的模块。

YouTube 主要是 Python 写的

国内谁在使用 python

腾讯游戏运营支撑体系的开发团队,在使用 django/celery/rabitmq/mongodb 开发了一个已广泛使用的内部开放平台。

豆瓣最初使用 Python 开发,只是用了 3 个月。

1.5、资源

资料:

官网:https://www.python.org/

wiki:http://zh.wikipedia.org/zh/Python

https://github.com/walter201230/Python

https://python.iswbm.com/

Chinaunix 的 Python 论坛资料

《OReilly-Learning-Python-4th-Edition-Oct-2009》

《简明 Python 教程》(中文),对应的英文版是《A Byte of Python》

深入 Python 3,http://goo.gl/cyrUY

廖雪峰 Python3 教程

python 教程

视频

工具:

UliPad 代码编辑工具(本身由 python 编写)

Pydev:eclipse + pydev 插件

Eric:基于 PyQt 的自由软件,功能强大。

二、搭建 Python 开发环境

0、使用 WinGet 安装

https://learn.microsoft.com/zh-cn/windows/package-manager/winget/

Windows 程序包管理器 v1.7.10861
版权所有 (C) Microsoft Corporation。保留所有权利。

WinGet 命令行实用工具可从命令行安装应用程序和其他程序包。

使用情况: winget [< 命令 >] [< 选项 >]

下列命令有效:
install 安装给定的程序包
show 显示包的相关信息
source 管理程序包的来源
search 查找并显示程序包的基本信息
list 显示已安装的程序包
upgrade 显示并执行可用升级
uninstall 卸载给定的程序包
hash 哈希安装程序的帮助程序
validate 验证清单文件
settings 打开设置或设置管理员设置
features 显示实验性功能的状态
export 导出已安装程序包的列表
import 安装文件中的所有程序包
pin 管理包钉
configure 将系统配置为所需状态
download 从给定的程序包下载安装程序
repair 修复所选包

如需特定命令的更多详细信息,请向其传递帮助参数。 [-?]

下列选项可用:
-v,--version 显示工具的版本
--info 显示工具的常规信息
-?,--help 显示选定命令的帮助信息
--wait 提示用户在退出前按任意键
--logs,--open-logs 打开默认日志位置
--verbose,--verbose-logs 启用 WinGet 的详细日志记录
--disable-interactivity 禁用交互式提示

可在此找到更多帮助: "https://aka.ms/winget-command-help"

2.1. 下载安装包

1)上 python 官网下载 python 运行环境(https://www.python.org/downloads/),建议下载稳定版本,不推荐使用最新版本

2)上 pycharm 官网下载最新版的 IDE(http://www.jetbrains.com/pycharm/download/#section=windows),官网提供了 mac、windows 和 linux 三种版本

 

 

Python IDE 

 

优秀的 Python IDE 有很多,这里介绍几款:

 

 

3)上 postgresql 官司网下载最新版的数据库(https://www.postgresql.org/download/windows/  打开页面后,点击 Download the installer 进入下载页,然后选择版本和操作系统,再点击下载)

2.2. 安装 python 运行环境

1)安装 python 运行环境

双击 python-3.5.2.exe

一般采用自定义安装比较好,不然自动安装会把环境安装到个人目录里,有时要找起来很麻烦

另外第二个红框前面的勾记录打上,不然需要手动在 windows 环境变量的路径中添加 python 安装路径

 

这里将安装路径手动修改一下,可以安装到 C 盘也可以安装到 D 盘

 

完成安装

然后我们打开 CMD,在里面输入 python,就可以直接进入进行编码了

我们可以输入 print('hello world!') 来测试一下 python 运行,如下图

如果输入 python 出现下面错误

那就得手动将 python 安装路径添加到系统环境变量中

打开开始菜单,对计算机点右键 =》属性

选中后点击编辑,在最后面分别添加

;C:\Python\Scripts\;C:\Python\;

这是刚才的安装路径

然后打开新的 CMD(要开新的 cmd 才有效),输入 python 就可以看到刚才的提示进入编码界面了

2.3、安装 pycharm IDE 软件

双击 pycharm 安装包,一般按正常的默认安装项就可以了

这里是选择 IDE 编辑界面皮肤的,一般来说使用黑底灰字看起来没那么刺眼,对眼好一点,这里选择以后还可以在里面设置。

提交后安装成功。

汉化方法,不建议汉化

到网上下载个汉化包改名为 resources_cn.jar,然后直接复制到安装路径下的 lib 文件夹里,重新打开 IDE 就自动汉化了

想要取消汉化,只需要将这个文件删除,重新打开 IDE 就自动恢复英文版本

建议不要进行汉化,因为汉化后 IDE 有一些功能使用不了或点击不了

要配置编辑界面皮肤,可按下面进行配置。一般字体按默认项会比较小,也可以按下面的配置修改大一些。

这里的列表项选择可以使用不同的皮肤

使用默认项时,字体大小无法直接进行修改,点击 Save As... 另存为后就可以修改

另存为后现在就可以直接修改了

3)安装 postgresql 数据库

双击安装文件,然后按默认项安装就可以了

最后一步这个勾最好去掉,不然会弹出安装各种插件的窗口,一般来说那些插件我们暂时都用不上,不用进行安装

2.4、安装 python 包

安装包有两种方法,一种是使用命令行,一种是 IDE 选择安装

1)命令行安装方式

打开 cmd,输入 pip install flask (你要安装的包名称),按回车就开始进入安装了

等一会就安装成功了

一般我们需要将 pip 升级到最新版本,这样可以减少安装问题的出现

在 cmd 中输入下面命令,就会启动 pip 升级

1
pip install https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

我们在 cmd 中输入:pip --version  就可以看到当前的 pip 版本了

万一 pip 升级失败,也不用怕,可以到 python 官网进行下载安装包进行安装升级

在浏览器地址栏中输入:https://pypi.python.org/pypi/pip 

下载安装包,并解压到 C 盘根目录

在 DOS 下输入下图命令,进入 pip-9.0.1 文件夹,然后输入:python setup.py install 进入 pip 安装

完成 pip 升级操作

2)IDE 安装方式

打开 IDE,点击:File => Default Settings

然后选择 Project Interpreter,就可以看到已经安装好的 python 包列表了,点击右上角的 + 进入安装包选择界面

在顶部搜索框里输入想要安装的包名称,就可以搜索到安装包,然后选择它,点击左下角的 Install Package,IDE 就开始进入下载安装了,如果出现由于网络原因造成安装失败,可以点击其他项后再点回来,然后点安装,多次后就可以安装成功,反复进行后还是无法安装成功的,可以点击查看出错原因,也可以使用命令方式进行,直接看到出错原因。

完成以上操作后,就可以开始开发 pythont 程序了

2.5、绿化 IDE

商业应用建议大家购买版权,学习使用可以绿化。

地址:https://gitee.com/pengzhile/jetbrains-agent

使用方法:

0. 先下载压缩包解压后得到 jetbrains-agent.jar,把它放到你认为合适的文件夹内。

如果你没有 gitee 账号,你也可以在这里下载:

下载页面:https://zhile.io/2018/08/17/jetbrains-license-server-crack.html

1. 点击你要注册的 IDE 菜单:"Configure|Help" -> "Edit Custom VM Options ..."

如果提示是否要创建文件,请点 "是 |Yes"。

参考文章:https://intellij-support.jetbrains.com/hc/en-us/articles/206544869

2. 在打开的 vmoptions 编辑窗口末行添加:"-javaagent:/absolute/path/to/jetbrains-agent.jar"

一定要自己确认好路径,填错会导致 IDE 打不开!!!最好使用绝对路径。

如: -javaagent:/Users/neo/jetbrains-agent.jar

如果还是填错了,参考这篇文章编辑 vmoptions 补救:

https://intellij-support.jetbrains.com/hc/en-us/articles/206544519

3. 重启你的 IDE。

4. 注册选择 License server 方式,地址填入:http://jetbrains-license-server (应该会自动填上)

或者点击按钮:"Discover Server" 来自动填充地址

5. 如果提示错误:

"Error opening zip file or JAR manifest missing : jetbrains-agent.jar"

这种情况请试着填上 jar 文件的绝对路径.

** 如果你想要离线激活,请使用:ACTIVATION_CODE.txt 内的注册码激活(需按上述步骤配置 javaagent)。

如果你需要自定义 License name,请加群告知。

** 未注册 IDE 找不到 Help 菜单可选择“试用(Evaluate for free)”后打开主界面。

本项目在最新 2018.3.5 上测试通过(请注意阅读本文件 9 行)。

理论上适用于目前 Jetbrains 全系列所有新老版本。

IDE 升级会从旧版本导入以上设置,导入配置后可能提示未注册(因为刚导入的 vmoptions 未生效),直接重启 IDE 即可,无需其他操作。

三、第一个 Python 程序

3.1、Python 交互模式

在命令行模式下敲命令 python,就看到类似如下的一堆文本输出,然后就进入到 Python 交互模式,它的提示符是 >>>。

在 Python 交互模式下输入 exit() 并回车,就退出了 Python 交互模式,并回到命令行模式:

在交互模式的提示符 >>> 下,直接输入代码,按回车,就可以立刻得到代码执行结果。现在,试试输入 1000+2000,看看计算结果是不是 3000:

在 Python 交互式模式下,可以直接输入代码,然后执行,并立刻得到结果。

3.2、使用记事本完成

在 Python 的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。

在一个没有中文的目录下创建一个名称为 Hello.py 的文件,使用记事本打开,编写如下代码:

#! Hello World!

print ("Hello world!");

在命令行编译运行:

3.3、使用 IDE 开发工具 PyCharm

 启动 PyCharm

启动成功后选择 File 菜单下的 New Project 项

设置项目名称与路径

 新建一个 python 文件

输入文件名称,编写源程序

编译并运行,选择 Run 菜单下的 run 运行

 基本输入与输出:

name=input("请输入名称:");
print("Hello Python!"+name);
print("1+1=",1+1);