前言
Python语言的编程风格我个人认为还是比较简洁的,如果你之前接触过其他的编程语言,例如C、C++、Java等语言,他们之间我感觉大同小异,不过还是有一些差异的,下面我们就来看下Python的一些基础语法。
python程序
对于python程序的入手,python给我们提供了交互式与脚本式两种学习方式,那么我们先来看一下两种方式:
交互式(linux下shell提示符下输入python)
[root@localhost ~]# python
Python 2.7.12 (default, Aug 8 2016, 09:01:20)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
在python交互模式下我们来试试打印一个字符
>>> print "hello world"
hello world
脚本式
通过脚本参数来调取解释器来执行python程序,直至python程序执行完毕,那么此解释器将会退出,下面我们来看看如何通过脚本式编写程序
[root@localhost python_script]# vim PrintHello.py
#!/usr/bin/env python
#
print "hello python"
注意:以上的脚本/usr/bin/env python会自动去搜索PATH路径中你的python安装路径,一般适用于系统安装了不同的python版本时。
给脚本程序添加可执行权限,并执行查看输出效果
[root@localhost python_script]# chmod +x PrintHello.py
[root@localhost python_script]# python PrintHello.py
hello python
python语句和语法
注释
Python中单行注释使用#来注释
#!/usr/bin/python
# -*- coding: UTF-8 -*- # python2版本默认不支持utf-8字符集
# 文件名:test.py
# 第一个注释
print "Hello, Python!"; # 第二个注释
Python中多行注释用”’或“”“来表示
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# filename:test.py
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
续行
Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
>>> num = 1 + 2 + 3 \
... + 4 + 5 + 6 \
... + 7 + 8 + 9
>>> print num
45
代码组
缩进相同的一组语句构成一个代码块,首行以关键字开始,如if、while等,以(:)冒号结束
Python使用缩进来分隔和识别代码组,同一代码组的代码行必须严格左对齐,否则将会造成语法错误,例如语法如下:
if expression:
statement(s)
elif expression:
statement(s)
else:
statement(s)
下面来使用if代码组来演示一段语句,关于 if 等语句的语法会在后续讲解。
#!/usr/bin/env python
# coding: utf-8
# filename: test2.py
x = 1
y = 2
if x < y:
print "Max number is %d" % y
else:
print "Max number is %d" % x
同一行放置多个语句
Python中可以一行写入多个语句,每个语句中间以(;)分号作为分隔符,但一般不建议这样来做。
#!/usr/bin/env python
# coding: utf-8
# filename: test3.py
import os;x = '/root';os.path.isdir(x)
以上代码输出结果为
[root@localhost python_script]# python test3.py
True
Python标识符
标识符是计算机语言中允许作为名字的有效字符串集合. 其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其他用途
python还有称为”内建”的标识符集合,虽不是保留字,扔不推荐使用这些特别的名字
- 在python中,标识符有字母、数字、下划线组成。
- python中所有的标识符可以包括英文、数字以及下划线,但第一字符只能使用字母或下划线,不能使用数字
- python中标识符的第二个字符可以使用字母、数字或下划线等 python中的标识符是严格区分字符大小写
Python命名惯例
- 以单一下划线开头的变量名(_x)不会被from module import * 语句来直接导入
- 前后有下划线的变量名(__x__)是系统变量名,对解释器有特殊的意义
- 已两个下划线开头、但结尾没有下划线的变量名(__x)是类的本地变量
- 交互模式下,只有单个下划线的变量名(_)用于保存最后表达式的结果
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解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
Python行和缩进
学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
if True:
print "True"
else:
print "False"
以下代码就没有按照严格要求进行缩进,那么将会执行错误:
#!/usr/bin/env python
# coding: utf-8
# filename: test7.py
str1 = 'hello world'
str2 = 'hello python'
if len(str1) == len(str2):
print "%s and %s are same." %(str1,str2)
else:
print "%s and %s are different."% (str1,str2)
print "quitting..."
以上代码执行结果如下报错:
[root@localhost python_script]# python test7.py
File "test7.py", line 10
print "quitting..."
^
IndentationError: unindent does not match any outer indentation level
Python文件结构
以下为python的整体的程序架构图,此架构图还符合PEP8的规范,对于PEP8的规范在项目中是必须严格遵守的,后续我们会讲到。
Python主程序
- 无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码
注意:所有的模块都有能力执行代码 - 最高级别的Python语句(没有缩进的)在模块被导入时就会执行,无论是否真的需要执行
- 妥当的做法:除了那些真正需要执行的代码以外,所有的功能代码都通过函数建立,因此
- 仅在主程序模块中编写大量的顶级可执行代码
- 用于被导入的模块只应该存在较少的顶级执行代码
- __name__指示模块应该如何被加载
- 如果模块是被其他程序导入,那么name_的值就是此模块的名字
- 如果模块是被直接执行,那么__name__的值就为”__main__”
Python模块
每一个Python脚本文件都可以作为一个模块
模块里的代码可以是一段直接的执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import)
python基本编程风格
- 注释
既不能缺少注释,亦要避免过度注释 - 文档
Python允许通过doc动态获取到的文档
例如:print str.doc # 来显示str的文档内容 - 缩进
统一缩进4个字符,中间不能掺杂例如制表符等 - 标识符名称
见名知意 - Python风格指南
https://code.google.com/p/soc/wiki/PythonStyleGuide
译文:http://www.elias.cn/Python/PythonStyleGuide
END
Python中基本的语法以及编程的风格基本就这么多了,对于PEP8的编程规范我个人感觉还是比较重要的,因为后续如果你做项目那么PEP8是你必须遵守的规范,后续有时间也搞一下关于PEP8的一些基本编程规范。