距离上次学习Python已经很久了,中间发生了一些事情,经历了工作变更。最近才有些时间,重新捡起来学习。
Python是一种直译式、交互式、面向对象的计算机编程语言。
Python是一种交互性的语言。
交互性是指不需要创建脚本文件,直接通过Python的解释器的交互模式来进行编写代码。
上一篇文章中介绍了windows上安装Python开发环境,通过windows的控制台或者直接点击Python的交互式客户端。如下:
输入以下文本信息:
print("hello,world!");
按Enter,输出如下
Python是一种脚本语言。
脚本语言是指通过创建脚本文件来编写代码,然后在Python环境中直接运行,输出结果,并不需要像Java,C++那样需要编辑后再执行输出。
Python标识符。
在python里,标识符有字母、数字、下划线组成。
在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
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最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
'''
Created on 2016年11月22日
@author: zhao
'''
if True:
print("True");
else:
print("False");
执行以下代码会报错(在Eclipse上在执行前会自动提示):
'''
Created on 2016年11月22日
@author: zhao
'''
if True:
print("True");
else:
print("False");
报错如下:
在eclipse上,如果一个用tab键一个用回车键,会提示一个Bad Indentation,代码如下
'''
Created on 2016年11月22日
@author: zhao
'''
if True:
print("True");
else:
print("False");
提示如下:
可以正常运行输出结果,不知道是不是3.5的特性还是编译器自动校正了。不过为了保险起见,大家还是严格遵守相同数量的空格吧。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用
Python语句中一般以新行作为为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
''' Created on 2016年11月22日 @author: zhao ''' total=2+\ 3 print(total)
语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Python 引号
Python 接收单引号(' ),双引号(" ),三引号(''' """) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。
''' Created on 2016年11月22日 @author: zhao ''' word = 'word' sentence = "这是一个句子。" paragraph = """这是一个段落。 包含了多个语句""" print(paragraph)
Python注释
python中单行注释采用 # 开头。
''' Created on 2016年11月22日 @author: zhao ''' # 第一个注释 print("Hello, Python!"); # 第二个注释
输出结果:
Hello, Python!
注释可以在语句或表达式行末:
name = "Madisetti" # 这是一个注释
python 中多行注释使用三个单引号(''')或三个双引号(""")。
'''
Created on 2016年11月22日
@author: zhao
'''
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
Python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
等待用户输入
下面的程序在按回车键后就会等待用户输入:
#!/usr/bin/python input("\n\nPress the enter key to exit.")
以上代码中 ,"\n\n"在结果输出前会输出两个新的空行。一旦用户按下键时,程序将退出。
可以将输入赋给变量,如下所示:
'''
Created on 2016年11月22日
@author: zhao
'''
inputContent=input("\n\nPress the enter key to exit.")
print(inputContent);
运行程序后,随意输入写字符,然后按Enter会打印你输入的字符串,如下:
同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
''' Created on 2016年11月22日 @author: zhao ''' name="Jack";print(name);
执行以上代码,输入结果为:
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
如下实例:
if expression : suite elif expression : suite else : suite
命令行参数
很多程序可以执行一些操作来查看一些基本信,Python可以使用-h参数查看各参数帮助信息:
C:\Users\zhao>python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -b : issue warnings about str(bytes_instance), str(bytearray_instance) and comparing bytes/bytearray with str. (-bb: issue errors) -B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x -c cmd : program passed in as string (terminates option list) -d : debug output from parser; also PYTHONDEBUG=x -E : ignore PYTHON* environment variables (such as PYTHONPATH) -h : print this help message and exit (also --help) -i : inspect interactively after running script; forces a prompt even if stdin does not appear to be a terminal; also PYTHONINSPECT=x -I : isolate Python from the user's environment (implies -E and -s) -m mod : run library module as a script (terminates option list) -O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x -OO : remove doc-strings in addition to the -O optimizations -q : don't print version and copyright messages on interactive startup -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE -S : don't imply 'import site' on initialization -u : unbuffered binary stdout and stderr, stdin always buffered; also PYTHONUNBUFFERED=x see man page for details on internal buffering relating to '-u' -v : verbose (trace import statements); also PYTHONVERBOSE=x can be supplied multiple times to increase verbosity -V : print the Python version number and exit (also --version) -W arg : warning control; arg is action:message:category:module:lineno also PYTHONWARNINGS=arg -x : skip first line of source, allowing use of non-Unix forms of #!cmd -X opt : set implementation-specific option file : program read from script file - : program read from stdin (default; interactive mode if a tty) arg ...: arguments passed to program in sys.argv[1:] Other environment variables: PYTHONSTARTUP: file executed on interactive startup (no default) PYTHONPATH : ';'-separated list of directories prefixed to the default module search path. The result is sys.path. PYTHONHOME : alternate <prefix> directory (or <prefix>;<exec_prefix>). The default module search path uses <prefix>\lib. PYTHONCASEOK : ignore case in 'import' statements (Windows). PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr. PYTHONFAULTHANDLER: dump the Python traceback on fatal errors. PYTHONHASHSEED: if this variable is set to 'random', a random value is used to seed the hashes of str, bytes and datetime objects. It can also be set to an integer in the range [0,4294967295] to get hash values with a predictable seed.