head first python 第二章代码

第二章代码
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 sys
def 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中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值