首页 > 编程 > Python > 正文

head first python 第二章代码

2019-11-08 03:04:28
字体:
来源:转载
供稿:网友

第二章代码 PRint_list(the_list,indent=False,level=0,out_file=sys.stdout) 这是一个递归方法,用为输出the_list 中的数据

the_list 输入要打印的数据类型,可以为任意indent=False 是否打印缩进level 打印缩进的级别,如the_list元素的缩进为0,the_list的自己元素中的list的元素缩进就为+1 就为1;如此递加out_file=sys.stdout默认值为stdout,即输出在console窗口中。 流程图如下: 这里写图片描述import sysdef print_list(the_list,indent=False,level=0,out_file=sys.stdout): if(isinstance(the_list,list)):#isinstance 运行时识别,判断变量“the_list”是否为一个list类型。 for each_item in the_list:#this funciton takes one positional argument called "the list",which is any Python list() if(isinstance(each_item,list)): print_list(each_item,indent,level+1,out_file)#判断each_item是否为list,如果是进行递归调用,并在‘t’后加+1 else: if(indent): for tab_stop in range(level): print("/t",end='',file=out_file) print(each_item,file=out_file) else: if(indent): for tab_stop in range(level): print("/t",end='',file=out_file) print(the_list,file=out_file) -

一 isinstance()

>>> help(isinstance)Help on built-in function isinstance in module builtins:isinstance(obj, class_or_tuple, /) Return whether an object is an instance of a class or of a subclass thereof. A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to check against. This is equivalent to ``isinstance(x, A) or isinstance(x, B) or ...`` etc.

二 range()

class range(object) | range(stop) -> range object | range(start, stop[, step]) -> range object | | Return an object that produces a sequence of integers from start (inclusive) | to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1. | start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3. | These are exactly the valid indices for a list of 4 elements. | When step is given, it specifies the increment (or decrement). | start | | step | | stop

range 是一个类。 range(10)返回的是0..<10的一个range实例,可以用for in遍历。 range(0,10,2)返回0..10并且以2为增量的一个range实例。 其中有两个函数

| count(...) | rangeobject.count(value) -> integer -- return number of occurrences of value | | index(...) | rangeobject.index(value, [start, [stop]]) -> integer -- return index of value. | Raise ValueError if the value is not present.

第一个函数统计某一个值在range中出现的次数,不在时返回0,有是返回数字。既然是range为什么会出现两次…有什么意义? 第二个函数返回value对应的索引位值,如果value不在range会抛出 ValueError异常,x is not in range

>>> item = range(2,10,2)>>> index=item.index(9)Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> index=item.index(9)ValueError: 9 is not in range>>> index=item.index(8)>>> >>> print(index)3

三 print

print(...) print(value, ..., sep=' ', end='/n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyWord arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.

end=”可以输出将多个值输出在一行 sys.stdout默认输出在console中


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表