python中使用可选参数

names=["1","2",["3","4"]]
def print_lol(the_list,level):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item)
        else:
            for tab_stop in range(level):
                print("\t",end="")
            print(each_item)
print_lol(names,2)

上面的结果:

1

2

Traceback (most recent call last):

File "D:/python/4.py", line 11, in <module>

print_lol(list23,0)

File "D:/python/4.py", line 6, in print_lol

print_lol(each_item)

TypeError: print_lol() takes exactly 2 arguments (1 given)

def print_lol(the_list,level):

这一句两个参数是必要的,“level”是一个可选的参数

names=["1","2",["3","4"]]
def print_lol(the_list,level=0):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item)
        else:
            for tab_stop in range(level):
                print("\t",end="")
            print(each_item)
print_lol(names,2)

 结果是:

    1

    2

3

4

def print_lol(the_list,indent=False,level=0):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item,indent,level+1)
        else:
            if indent:
                for tab_stop in range(level):
                    print("\t",end="")
            print(each_item)        
names=["Bob","Tom",["jua","lun"],"pop"]
print_lol(names)
print("**********************")
print_lol(names,True)
print("**********************")
print_lol(names,False,4)
print("**********************")
print_lol(names,True,4)

  结果是:

Bob
Tom
jua
lun
pop
**********************
Bob
Tom
        jua
        lun
pop
**********************
Bob
Tom
jua
lun
pop
**********************
                                Bob
                                Tom
                                        jua
                                        lun
                                pop