如果为函数参数提供一个缺省值,可以实现参数的可选择性
""" 定义一个函数,可以实现列表中的嵌套列表的缩进,缺省参数值,实现函数参数的可选择",默认情况下为缩进"""
def print_lol (the_list,level = 0):
for(each_item) in the_list:
if isinstance(each_item,list):
print_lol(each_item,level + 1)
else:
""" range()实现迭代固定次数"""
for top_stop in range(level):
print("\t",end='')
print(each_item)
print_lol函数的实现;
""" 调用nester模块,实现print_lol函数"""
import chapter2.nester
movies = ["The Holy Grail","1975","TerryJones & Terry Gilliam","91 mins",["Graham",["Michael Palin","John Cleese"]]]
""" 输出有制表符的list,最外层list不缩进"""
chapter2.nester.print_lol(movies,0)
""" level为可选参数,设置缺省值为0,输出结果和上面的一样"""
chapter2.nester.print_lol(movies)
""" 定义首行缩进为3 """
chapter2.nester.print_lol(movies,3)
""" level 不可能为负整数,所以会关闭缩进"""
chapter2.nester.print_lol(movies,-9)
结果展示
为函数再增加一个参数,实现自由选择缩进或者不缩进
""" 改进的nester模块,实现缩进的随时打开和关闭"""
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 top_stop in range(level):
print("\t",end='')
"""
print("\t"*level,end='')
print(each_item)
函数的实现:
"" 改进的nester 模块的实现,随时可以打开或关闭缩进"""
import chapter2.nester1
movies = ["The Life of Brian","1979","TerryJones","94mins",["Graham",["Michael","John"]]]
""" 不缩进"""
chapter2.nester1.print_lol(movies)
"""" 缩进,且首行为默认缩进"""
chapter2.nester1.print_lol(movies,True)
""" 缩进,自定义缩进"""
chapter2.nester1.print_lol(movies,True,3)
结果: