记录学习python的历程,以下代码和概念均出自:菜鸟教程 学习的是python3。
一、介绍
python介绍
-
是一种解释型语言。解释型语言是相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解析器对中间代码进行解释运行。
-
是交互式语言:是一种能够很好地描述终端用户与交互系统进行对话过程,而且还可以借助于图形工具,把对话过程形象地表述成为图示的结构
-
是面向对象语言: 是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。
python的特点
- 易于学习: 关键字少,结构简单,语法定义明确。
- 易于阅读: 代码定义清晰
- 易于维护: 源代码容易维护
- 一个广泛的标准库: 库丰富,兼容性好
- 互动模式:可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断
- 可移植:基于其开放源代码的特性
- 可扩展:可以写其他语言,用python调用
- 数据库:提供所有主要的商业数据库的接口
- GUI编程:支持GUI可以创建和移植到许多系统调用
- 可嵌入: 可以嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力
二、环境搭建
运行环境
windows, linux, Mac OSX
下载
安装
在这里选择Customize installation 并选择 Add python to PATH,进入后默认全选,再next,选install for all users, install!
以下是安装成功的界面!
三、基础语法
python3源码文件以UTF-8编码
注意点
- 第一个字符必须是字母表中字母或下划线 _
- 标识符的其他的部分由字母、数字和下划线组成
- 标识符对大小写敏感
- 单行注释以 # 开头
- 多行注释可以用多个 # 号,还有 ''' 和 """
- 用缩进表示代码块,不需要{},同一个代码块的语句必须包含相同的缩进空格数
- 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句
python保留字
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
数字类型(Number)
四种类型: int整数(1)、bool布尔型(True),float浮点数(1.1, 3E-2), complex复数(1+2j,1.1+2.2j)
字符串(String)
- 单双引号都可以,三引号可以指定一个多行字符串,转义符 \,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。 2.字符串可以用 + 运算符连接在一起,用 * 运算符重复
- 字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。截取的语法格式如下:变量[头下标:尾下标:步长]
代码书写
- \n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。如下
input("\n\n按下enter键后推出")
-
不换行操作:在变量尾加上end=""
-
导入操作:import与form...import。 导入和js的导入正好是把import form 前后颠倒以下,语法大致相同
导入整个模块: import a
导入某个函数:from a import b
导入多个函数:from a import b, c, d
导入全部函数: form a import *
命令参数
python提供了getopt模块获取命令行参数
- sys.argv 是命令行参数列表
- len(sys.argv) 计算命令行参数个数
getopt 模块
是专门处理命令行参数的模块,用于获取命令行选项和参数,也就是 sys.argv,同时支持短选项模式 - 和长选项模式 --,该模块提供了两个方法及一个异常处理来解析命令行参数
getopt.getopt
用于解析命令行参数列表, 语法格式
getopt.getopt(args, options[, long_options])
- args: 要解析的命令行参数列表
- options: 以字符串的格式定义,options 后的冒号 : 表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。
- long_options: 以列表的格式定义,long_options 后的等号 = 表示如果设置该选项,必须有附加的参数,否则就不附加参数。
import sys
import getopt
def site():
name = None
url = None
argv = sys.argv[1:]
try:
# opts, args = getopt.getopt(argv, 'n:u:') #短选项模式
opts, args = getopt.getopt(argv, 'n:u:', ['name=', 'url=']) #长选项模式
except:
print('Error')
for opt, arg in opts:
if opt in ['-n', '--name']:
name = arg
elif opt in ['-u', '--url']:
url = arg
print(name + "--" + url)
site()
Exception getopt.GetoptError
在没有找到参数列表,或选项的需要的参数为空时会触发该异常。异常的参数是一个字符串,表示错误的原因。属性 msg 和 opt 为相关选项的错误信息。
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv, 'hi:o:', ['ifile=', 'ofile='])
except getopt.GetoptError:
print('print-python.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print('print-python.py -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ('-i', '--ifile'):
inputfile = arg
elif opt in ('-o', 'ofile'):
outputfile = arg
print('输入文件为:', inputfile)
print('输出文件为:', outputfile)
if __name__ == "__main__":
main(sys.argv[1:])