0719py:递归函数:线性案例,花钱案例,求序列字符数案例

# 创建一个非线性列表
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)

猜你喜欢

转载自blog.csdn.net/whqwjb/article/details/81101241