跳至主要內容

01.初识 Python

Zhao Bin笔记backendpython

01.初识 Python

安装 Python 解析器

以下以 centos 为例:

# 安装所需依赖
yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

# 下载源代码并解压
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar -xvf Python-3.7.6.tar

# 编译安装
cd Python-3.7.6
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install

查看 Python 版本

python --version
# 或
python3 --version

注意

Unix 系统中,为了不与同时安装的 Python 2.x 冲突,Python 3.x 解释器默认安装的执行文件名不是 python。

可以进入 python 交互环境查看版本号:

import sys

print(sys.version_info)
print(sys.version)

调用参数

解释器读取命令行参数,把脚本名与其他参数转换为字符串列表,存到 sys 模块的 argv 变量中。
执行 import sys, 可以导入这个模块,并访问该列表。
该列表至少有一个元素,未指定参数时,sys.argv[0] 是一个空字符串。
给定脚本名是 - 时,sys.argv[0]-
使用 -c command 时,sys.argv[0]-c
如果使用选项 -m module 时,sys.argv[0] 就是包含目录的模块全名。

解释器不处理 -c command-m module 之后的选项,而是直接留在 sys.argv 中,由命令或模块来处理。

-c command

执行 command 中的 Python 代码。command 可以是一条语句,也可以是用换行符分割的多条语句。

使用此项时,sys.argv 的首个元素为 -c,并会把当前目录加入至 sys.path 开头。

-m module-name

sys.path 中搜索指定的模块,并以 __main__ 模块执行其内容。

该参数是 模块名,请勿输入文件扩展名(.py)。模块名应为有效的绝对 Python 模块名。

如果给出此选项,sys.argv 的首个元素将为模块文件的完整路径 (在定位模块文件期间,首个元素将设为 "-m")。 与 -c 选项一样,当前目录将被加入 sys.path的开头。

编写 Python 源代码

编写 python 源代码,并使用 .py 作为文件后缀。

例:

# hello.py
print('hello, world!')

源文件的字符编码

默认情况下,Python 源码文件的编码是 UTF-8。

如果不使用默认编码时,则要声明文件的编码,文件的 第一行 要写成特殊的注释,如下:

# -*- coding: encoding -*-

其中,encoding 就是 Python 支持的编码,比如:gb2313

第一行也有例外,源代码以 shebang 开头时,编码声明则要写在第二行:

#!/usr/bin/env python3
# -*- coding: gb2313 -*-

详情:源文件的字符编码open in new window

运行 Python

python hello.py
# 或
python3 hello.py

代码注释

  1. 单行注释
    以#和空格开头的部分
  2. 多行注释
    3 个引号开头,3 个引号结尾

例:

"""
这里可以写多行注释
这是第二行注释
"""
# 这是单行注释
print('hello, world!')

开发工具

  • PyCharm
  • VS Code

示例

"""
这里可以写多行注释,比如:
Version: 0.1
Author: zhaobc
"""

print('hello, world!')
print("hello, world!")
print('hello', 'world')
print('hello', 'world', sep=',', end='!')
print('goodbye, world', end='!')

试一试:

python day-01-15/day-01/hello.py