Python 3 学习笔记(二)流程控制

Share

if语句

>>> x = int(input('Please enter an integer: '))
>>> if x < 0:
...    x = 0
...  wholesale nba jerseys       print('x = 0')
...    elif x == 0:
...      print('Zero')
...    of   elif x == 1:
...      print('Single')
...    3   else:
...      print('More')

elif是else if的简写,else是可选的。

for语句

range()函数

breakcontinue及循环中的else子句

pass语句

自定义函数

Lamba形式

类似于嵌套函数定义,lamba可以从外部作用域引用变量:

>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43

 上面的示例使用 lambda 表达式返回一个函数,以上会保存x的值。

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'),  Miami Dolphins Jerseys  (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

以上的内部调用,pair对应的是(1, wholesale NFL jerseys ‘one’),pair[1]对应的是one, tow, three, four,作用是对pair[1]排序。具体考虑参考http://stackoverflow.com/questions/8966538/syntax-behind-sortedkey-lambda/8966627

文档字符串

这里介绍的文档字符串的概念和格式。

第一行应该是关于对象用途的简介。简短起见,不用明确的陈述对象名或类型,因为它们可以从别的途径了解到(除非这个名字碰巧就是描述这个函数操作的动词)。这一行应该以大写字母开头,以句号结尾。

如果文档字符串有多行,第二行应该空出来,与接下来的详细描述明确分隔。接下来的文档应该有一或多段描述对象的调用约定、边界效应等。

Python 的解释器不会从多行的文档字符串中去除缩进,所以必要的时候应当自己清除缩进。这符合通常的习惯。第一行之后的第一个非空行决定了整个文档的缩进格式。(我们不用第一行是因为它通常紧靠着起始的引号,缩进格式显示的不清楚。)留白“相当于”是字符串的起始缩进。每一行都不应该有缩进,如果有缩进的话,所有的留白都应该清除掉。留白的长度应当等于扩展制表符的宽度(通常是8个空格)。

函数注解

函数注解 是关于用户自定义的函数的完全可选的、随意的元数据信息。无论 Python 本身或者标准库中都没有使用函数注解;本节只是描述了语法。第三方的项目是自由地为文档,类型检查,以及其它用途选择函数注解。

注解是以字典形式存储在函数的 __annotations__ 属性中,对函数的其它部分没有任何影响。参数注解(Parameter annotations)是定义在参数名称的冒号后面,紧随着一个用来表示注解的值得表达式。返回注释(Return annotations)是定义在一个 -> First 后面,紧随着一个表达式,在冒号与 -> 之间。下面的示例包含一个位置参数,一个关键字参数,和没有意义的返回值注释:

>>> def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here":
...     print("Annotations:", f.__annotations__)
...  cheap MLB jerseys      print("Arguments:", ham, eggs)
...
>>> f('wonderful')
Annotations: {'eggs': <class 'int'>, 'return': 'Nothing to  Cup  see here', 'ham': 42}
Arguments: wonderful  График  spam

 

Leave a Reply

Your email address will not be published. Required fields are marked *