python基础知识
python标识符
1、python中,标识符由字母、数字、下划线组成。
2、所有标识符可以包括英文、数字以及下划线(_),但是不能以数字开头
3、python中标识符是区分大小写的。
4、以下划线开头的标识符是有特殊意义的。以单下划线开头 foo_代表python里特殊方法专用的标识,如_init()代表类的构造函数。
5、python可以同一行显示多条语句,方法是用分号;分开,如:
>>>print 'hello';print 'runoob';
hello
runoob
python保留字符
下面是python中的保留字,这些保留字不能用作常数或变数,或任何其他标识符名称。
所有python的关键字只包含小写字母。
and | exec |
---|---|
not | assert |
finally | or |
break | for |
pass | class |
from | |
continue | global |
raise | def |
if | return |
del | import |
try | elif |
in | while |
else | is |
with | except |
lambda | yield |
行和缩进
学习python与其他语言最大的区别就是,python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。
python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
if True:
print "True"
else:
print "False"
以下代码将会执行错误:
#!/usr/bin/python
if True:
print "True"
else:
print "False" #没有严格缩进,在执行时会报错
执行以上代码会有如下错误提醒:IndentationError:does not match any outer indentation level
提醒表明:你使用的缩进方式不一致,有的是tab键缩进,有的是空格缩进,改为一致即可
但是如果提醒为:IndentationError:unexpected indent错误,则python编辑器是在告诉你,你的文件里格式不对了,可能是tab和空格没对齐的问题
总结:所有python对格式要求非常严格,因此,在python的代码块中必须使用相同数目的行首缩进空格数
建议:每个缩进层次使用 单个制表符 或 两个空格 或 四个空格,切记不能混用
多行语句
python语句中一般以新行作为语句的结束符。
但是我们可以使用 斜杠(/) 将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
语句中包含[],{}或()括号就不需要使用多行连接符,如下:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
python引号
Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" ) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
python注释
python中单行注释采用#开头。
#!/usr/bin/python
# -*- coding:UTF-8 -*-
#文件名:test.py
#第一个注释
print "hello, python!" #第二个注释
输出结果:
hello,python!
注释可以在语句或表达式行末:
name = "Madisetti" #这是一个注释
python中多行注释使用三个单引号(’’’)或三个双引号(""")。
#!/usr/bin/python
# -*- coding:UTF-8 -*-
# 文件名:test.py
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是python语法的一部分。书写时不插入空行,python解释器运行也不会出错。但是空行的作用在于分隔两端不同功能或含义的代码,便于日后代码的维护或重构。
注:空行也是代码的一部分
等待用户输入
一下程序执行后就会等待用户输入,按回车键后就会退出:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
raw_input("按下 enter 键退出, 其他任意键显示...\n")
以上代码中,\n实现换行。一旦用户按下enter(回车)键退出,其它键显示。
同一行显示多条语句
python可以在同一行中使用多条语句,语句之间使用分号(;)分隔,以下是一个简单的实例:
#!/usr/bin/python
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
执行以上代码,输出结果为:
# 执行以上代码
$ python test.py
# 输出结果为
runoob
print输出
print默认输出是换行的,如果实现不换行需要在变量末尾加上逗号(,)
#! /usr/bin/python
# -*- coding:UTF-8 -*-
x = "a"
y = "b"
#换行输出
print x
print y
print '--------'
#不换行输出
print x,
print y,
#不换行输出
print x,y
以上代码执行结果为:
a
b
--------
a b a b
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
如下:
if expression :
suite
elif expression :
suite
else :
suite
命令行参数
很多程序可以执行一些操作来查看一些基本信息,python可以使用 -h 参数查看各参数帮助信息:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
我们在使用脚本形式执行python时,可以接收命令输入的参数,具体使用如下:
python提供了getopt模块来获取命令行参数。
$ python test.py arg1 arg2 arg3
python中也可以用sys.argv来获取命令行参数:
- sys.argv 是命令行参数列表
- len(sys.argv)是命令行参数个数。
注:sys.argv[0]表示脚本名
实例:
test.py文件代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
print '参数个数为:', len(sys.argv), '个参数。'
print '参数列表:', str(sys.argv)
执行以上代码,输出结果为:
$ python test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
getopt模块
getopt模块是专门处理命令行参数的模块,用于获取命令行选项和参数,也就是sys.argv。命令行选项使得程序的参数更加灵活。支持短选项模式(-)和长选项模式(–)。
该模块提供了两个方法及一个异常处理来解析命令行参数。
getopt.getopt 方法
getopt.getopt 方法用于解析命令行参数列表,语法格式如下:
getopt.getopt(args, options[, long_options])
方法参数说明:
- args: 要解析的命令行参数列表。
- options : 以字符串的格式定义,options 后的冒号 : 表示如果设置该选项,必须有附加的参数,否则就不附加参数。
- long_options : 以列表的格式定义,long_options 后的等号 = 表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。
- 该方法返回值由两个元素组成: 第一个是 (option, value) 元组的列表。 第二个是参数列表,包含那些没有 - 或 – 的参数。
另外一个方法是 getopt.gnu_getopt,这里不多做介绍。
Exception getopt.GetoptError
在没有找到参数列表,或选项的需要的参数为空时会触发该异常。
异常的参数是一个字符串,表示错误的原因。属性 msg 和 opt 为相关选项的错误信息。
实例
假定我们创建这样一个脚本,可以通过命令行向脚本文件传递两个文件名,同时我们通过另外一个选项查看脚本的使用。脚本使用方法如下:
usage: test.py -i <inputfile> -o <outputfile>
test.py 文件代码如下所示:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'test.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:])
执行以上代码,输出结果为:
$ python test.py -h
usage: test.py -i <inputfile> -o <outputfile>
$ python test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile
注:本文来自笔者在网上学习时做的笔记,不做任何商用,只作为个人的学习笔记!