# 创建一个非线性列表
mylist = [2,3,4,[5,6,9],[1,2,[3,4,5],6],7]
# 案例1,
mysum = 0
def getsum(mylist):
global mysum
for var in mylist:
if type(var) == int :
mysum += var
else :
getsum(var)
return mysum
print(getsum(mylist))
# 案例2 假如你有10000块,每天花一半,毛钱直接舍弃,那么这钱可以花几天?
# 循环方法实现
def shopp(money):
day_flag = 0
while money > 0 :
day_flag += 1
money = money // 2
return day_flag
print(shopp(10000))
# 递归方法实现
def shopa(money,day_flag):
if money > 0:
money = money // 2
day_flag += 1
shopa(money,day_flag)
else:
print(day_flag)
return
# 递归函数注意其返回值
shopa(10000,0)
求一个列表的字符个数
# 设置接收字典,key是字符,value是个数
k_i_count = {}
# 创建递归函数,参数是liet
def strcount(seq):
# 循环列表,获取最小的字符串类型
for var in seq:
# 检测单元是否字符串
if type(var) == str :
# 玄幻获取最小的字符
for k in var:
# 如果字符在key中,其value+1
if k in k_i_count.keys():
k_i_count[k] += 1
# 字符不存在key中,创阿金key,value 是1
else:
k_i_count[k] = 1
else:
strcount(var)
mylist = ["abc","sb",["dsadsa",'dfdghgh'],"adafvv"]
strcount(mylist)
print(k_i_count)