人生苦短,我用 Python
特性
- Python 是一种脚本
Script
语言 - 相比 C/C++/Java , Python 少了 编译-测试-再编译 的过程
- Python 提供异常处理
- Python 比 Shell 脚本文件能处理更多的任务,Shell 脚本更合适处理简单的移动/重命名文件,修改文本文件的内容
- Python 支持与解析器(Python interpreter)交互,可用于测试小段代码
- Python 内建高级的数据类型:
List
,Dictionary
- python 支持通常 Tk 实现 GUI
- Python 支持将程序分解成模块(Module),以便在其他程序重用;
- Python 自带丰富的标准模块(标准库):
file O/I
,System calls
,sockets
,Tk
- Python 支持跨平台 Windows/Unix
代码
- Python 通过缩进(4个空格)来定义代码块
- Python 无需变量声明
Python Interpreter
环境变量 PATH
~ $ whereis python
python: /usr/bin/python3.5
## ~/.bashrc
export PATH=$PATH:/usr/bin/python3.5
ipython
安装 ipython: ~ $ pip3 install ipython
执行命令打开 Python 解析器:~ $ ipython
line-editing
Python line-editing features 包括: history
,自动补全
退出解析器
In [1]: exit() ## 或 Ctrl-D
从命令行执行 Python 语句
格式: python -c command [arg] ...
~ $ python3 -c 'print(abs(-2))'
2
从命令行执行 Python 模块
在命令行执行 Python 模块:python -m module [arg] ...
在命令行执行 Python 模块并进入解析器:python -i module [arg] ...
值传递
命令行传递给脚本的参数可以通过 sys.argv
获得
- 脚本名/
sys.argv[0]
为-
表示标准输入 - 使用
-c
时,sys.argv[0]
为:-c
- 使用
-m
时,sys.argv[0]
为:模块的绝对路径 - 位于
-c
,-m
后面的参数不视为 Python 解析器的参数,而交给sys.argv
处理
Filename: text_argv.py
----------------------------------
#!/usr/bin/python3
import sys
sign = '==>>'
for i, argv in enumerate(sys.argv):
print(i, sign, argv)
~/python $ chmod +x argv_test.py
~/python $ ./argv_test.py hello world
0 ==>> ./argv_test.py
1 ==>> hello
2 ==>> world
Python 标准库中有一个写命令行接口的相关模块
argparse
源文件编码
Python 源文件的默认编码为 UTF-8
,所以字符串,注释可以使用世界上大多数语言的字符
变量名应使用
ASCII
字符(即 UTF-8 前 127位)中的字母、数字、下划线
修改源文件的编码成中文编码 (不要ヘ(´ー`ヘ)搞事情)
#!/usr/bin/python3
# -*- coding: gb2312 -*-