Python概览

Python概览

print("Hello, Welcome to Python's world")

欢迎进入Python的世界,第一件事请习惯,我们不用{}, 我们用缩进。
用缩进的请注意,空格和tab不能混用。 注意到了这个,你就能避免下面的错误

IndentationError: unexpected indent

推荐的项目结构

作者开发了知名的flask轻量级web框架和requests库。

git仓库

python代码组织结构
package/module/变量。
package是指带有__init__.py 的目录, 当被首次被import和reload 的时候__init__.py 会执行,

包安装 pip工具

pip install package
pip freeze > requestments.txt
pip install -r requestments.txt

一般是和virtualenv结合起来用的。

解决pip安装慢

多版本管理pyenv

pyenv vertions 列出当前安装的版本
pyenv install version 安装指定的版本
pyenv global version 设置全局的python版本
Python 多版本共存之 pyenv

干净的应用环境virtualenv

virtualenv venv
virtualenv venv -p 指定python版本
source venv/bin/active
deactive
Python虚拟环境virtualenv

代码风格

PEP8 标准

pycodestyle 检测是否符合标准
pycodestyle yourscript.py
autopep8 可以自动替换成符合标准的格式
autopep8 --in-place yourscript.py

单元测试

  1. nose包, 安装后有nosetests命令 nosetests -v
  2. unittest python -m unittest module_name
  3. doctest 这个是更多是用在演示api如何使用的。 也可能通过doctest模块运行,如果文档的值和实际的值不一样,就会报错误。
  4. pytest unittest的可替代品
  5. tox 在需要多版本兼容时,可以用tox做自动化测试
  6. mock Python单元测试 #效率问题 Python专题之性能与优化

自动文档化 Sphinx

应用介绍

web方向

Django
Flask
Tornado
Pyramid
Twisted

运维方向

fabric
运维管理工具fabric详解
ansible
puppet

大数据方向

机器学习方向

推荐学习

  1. 入门级 可以廖雪峰的教程。
  2. 深入语法 可以学<Python学习手册>。
  3. 整体感知可以看下<Python高手之路>.
  4. web开发可以学

比较好用的库推荐

运维管理 psutils

黑客攻防

ORM SQLAlchemy

SQLAlchemy

requests 库, http请求库

Python3标准库urllib vs requests

logging模块,标准日志

python之logging模块

建议掌握好的几个概念

装饰器

def foo():
    # do something

def decorator(func):
    # manipulate func
    return func
    
foo = decorator(foo) #手动装饰

@decorator
def bar():
    # Do someting
    # bar() is decorated

上下文管理 context manager

函数式编程

Python函数式编程

标准库

下面是一些必须了解的标准库模块。

  • abc 提供抽象基类等功能。
  • atexit 允许注册在程序退出时调用的函数
  • argparse 提供解析命令行参数的函数。
  • bisect 为可排序列表提供二分查找算法。
  • calendar 提供一组与日期相关的函数。
  • codecs 提供编解码数据的函数。
  • collections 提供一组有用的数据结构。
  • copy 提供复制数据的函数。
  • csv 提供读写CSV文件的函数。
  • datetime 提供用于处理日期和时间的类。
  • fnmatch 提供用于匹配Unix风格文件名模式的函数。
  • glob 提供用于匹配Unix风格路径模式的函数。
  • io 提供用于处理I/O流的函数。
  • json 提供用来读写JSON格式函数的函数。
  • logging 提供对Python内置的日志功能的访问。可以参考这里
  • multiprocessing 可以在应用程序中运行多个子进程。可以参考这里
  • operator 提供实现基本的Python运算符功能的函数,可以使用这些函数而不是自己写lambda表达式。
  • os 提供对基本的操作系统函数的访问。
  • random 提供生成伪随机数的函数。。不能用在安全领域。
  • re 提供正则表达式功能。
  • select 提供对函数select()和poll()的访问,用于创建事件循环。
  • shutil 提供对高级文件处理函数的访问。
  • signal 提供用于处理POSIX信号的函数。可以参考这里
  • tempfile 提供用于创建临时文件和目录的函数。可以参考这里
  • threading 提供对处理高级线程功能的访问。可以参考这里
  • urllib(以及Python2.x中的urllib2和urlparse)提供处理和解析URL的函数。
  • uuid可以生成全局唯一标识符。
Tags: