编写一个python函数find_ten_substring(num_str),该函数接受一个字符串并返回该字符串的10个子字符串的列表。
数字的10个子字符串是其数字的子字符串,总和为10。 样本输入='3523014' 实际输出= ['5230','23014','523','352']
我尝试了以下代码,即仅打印一个子字符串,该子字符串加起来等于10(仅[28]),然后终止。
def find_ten_substring(num_str):
sumi=0
list1=[]
substr=''
for i in range(0,len(num_str)):
for j in range(i,len(num_str)):
sumi=sumi+int(num_str[j])
substr=substr+num_str[j]
if(sumi==10):
list1.append(substr)
print(list1)
break
sumi=0
substr=''
continue
num_str="2825302"
print("The number is:",num_str)
result_list=find_ten_substring(num_str)
print(result_list)
答案 0 :(得分:1)
您明确要求它在找到一个解决方案后立即退出。看一下外部循环的底部:
sumi=0
substr=''
break
这将重置累积变量,但会中断循环而不是重复。删除break
并返回到代码开发-从没有任何返回值开始,您还有其他错误。
此外,您应该学习基本的调试。对于初学者,代码中的一些print
语句可以跟踪数据和控制流。请访问这个可爱的debug博客以获取帮助。