Python的语法实质上是由语句和表达式组成的。表达式处理对象并嵌套在语句中。语句编码实现程序操作中更大的逻辑关系,用来处理Python中的各个对象。
Python语句:
语句 | 作用 | 例子 | 备注 |
---|---|---|---|
赋值 | 创建引用值 | a=3 | 创建数字对象3,并用变量a引用该变量 |
调用 | 执行函数 | len(a) | 执行函数len |
打印调用 | 打印对象 | print(“Hello world”) | 打印出字符串 |
if/elif/else | 条件判断 | if “Python” in text: print(text) | 逻辑判断 |
for/else | 序列迭代 | for i in mylist:print(i) | 序列中元素迭代操作 |
while/else | 一般循环 | while X>Y:print(True) | 循环语句 |
pass | 空占位符 | while True: pass | 占用一条语句的位置 |
break | 退出循环 | while True:if exittest():break | 满足某个条件后,退出外层嵌套的循环 |
continue | 继续循环 | while True:if skiptest():continue | 继续下一次迭代循环 |
def | 创建函数或方法 | def myfunction(): | 定义一个函数或者一个对象的方法 |
return | 返回函数值 | def myfunction(): return “Hello” | 退出方法或者函数的执行,并且返回结果 |
yield | 生成器函数 | def gen(n):for i in n:yield i*2 | python中生成器是迭代器的一种,使用yield返回函数值。每次调用yield会暂停,并等待返回值。yield实际上是一个表达式 |
global | 命名空间 | x=1;def myfunction():global x;x=3 | 声明变量为全局变量 |
nonlocal | 命名空间(Python 3.0)使用 | def outer(): x=’older’;def inner():nonlocal x;x=’new’ | 声明变量为外层函数的变量 |
import | 模块导入 | import tensorflow | 导入相关的Python模块 |
from | 访问属性 | from sys import stdin | 从相关模块中,导入某个方法或属性 |
class | 创建对象 | class person(superclass):….. | 创建新的对象 |
try/except/finally | 捕捉异常 | try: action except: action error | 捕捉try语句下的代码块中的异常 |
raise | 触发异常 | raise EndSearch(location) | 抛出相关的异常错误 |
assert | 断言,调试检查 | assert X>Y,’X is smaller than y’ | 断言条件必须成立,否则直接退出程序执行 |
with/as | 环境上下文管理器 | with open(‘myfile.txt’) as file: | 语句执行完成后,自动关闭相关对象(如文件) |
del | 删除引用 | del a | 删除对象a的引用 |
Python复合语句
if x>y:
x=2
y=1
if (x>y):
x=2
y=1
- 所有的Python复合语句都是在首行以冒号结尾
- 括号是可选的,从技术上讲,Python中每个表达式都可以用括号括起来,在这里用括号也没什么问题,不会影响表达式返回的结果。
- 终止行就是终止语句,可以不再用分号结尾。当然可以加上分号,Python允许这么做。
- 缩进的结束就是代码块的结束,不会再用{}花括号来表示代码块,只是适用缩进的方法来表示代码块。Python的语法规则是给定一个单独的嵌套块中所有语句的缩进距离都必须相同。统一的缩进迫使Python程序由更高的可读性。在同一个代码块中,不要混用制表符和空格,要么只用制表符,要么只用空格,混用带来的是降低了程序的可维护性。
总结
Python语句中,最具特色的就是缩进这种在其他语言看来只是格式问题,Python将其变化为了语法,提高了Python的可读性,所见即所得。在一般情况下,每一行就编写一条语句,而嵌套语句都具有相同的缩进距离,嵌套的越深的代码块从视觉上,就会越靠右,嵌套越浅的代码就会越靠左。为了提高可读性,一条长语句也可以放在一个括号内,让他跨越多行。一行内有多条语句时,也可以用分号间隔开来。