Python编程

 条件控制语句(分支):条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。

if语句结束符 python python如何结束if语句_生成器

If语句格式:其中的elif可以有多个,根据不同的条件执行不同的分支。

(注:Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。)

if语句结束符 python python如何结束if语句_生成器_02

注意:1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。3、在Python中没有switch – case语句。

循环语句:Python中的循环语句有 for 和 while。

if语句结束符 python python如何结束if语句_迭代器_03

while语句的一般形式: (在while循环后可以使用else)

if语句结束符 python python如何结束if语句_生成器_04

for循环的一般格式如下:

if语句结束符 python python如何结束if语句_迭代器_05

Python中也支持break、continue语句来中断循环,对于Python中的死循环可以适应Ctrl + C来中断循环执行。

Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

Python中的迭代器和生成器:

迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器。

__iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。

例:it=iter(list) #创建一个列表的迭代器对象;

__next__() 方法(Python 2 里是 next())会返回下一个迭代器对象。

在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。

Python 函数

定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

定义一个函数的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

参数传递(可更改(mutable)与不可更改(immutable)对象):类似于引用传递和值传递;

 参数分类:必须参数、关键字参数、默认参数、不定长参数;

必须参数,在函数声明时已定义,调用时的数量必须和声明时的一样。关键字参数,函数调用使用关键字参数来确定传入的参数值。默认参数,调用函数时,如果没有传递参数,则会使用默认参数,一般在函数声明时给出。不定长参数,需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数(加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。加了两个星号 ** 的参数会以字典的形式导入。下图为不定长参数的声明格式)。

if语句结束符 python python如何结束if语句_if语句结束符 python_06

python 使用 lambda 来创建匿名函数。下图为匿名函数声明格式

if语句结束符 python python如何结束if语句_生成器_07

匿名函数特点:

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

 变量的作用域:定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

(注:当内部作用域想修改外部作用域的变量时,就要用到globalnonlocal关键字)