此代码表示未定义dict1。我已经对dict进行了全局定义。应该可以在函数内部访问它。请指导。
在这段代码中,我试图将键值对添加到dict1中,如果dict中不存在键值对,否则它将从dict中获取值。
def find_sum(num_str):
sum1=0
for i in num_str:
sum1+=int(i)
return sum1
def find_ten_substring(num_str):
list1=[]
for i in range(2,len(num_str)+1):
for j in range(0, i):
if(i!=j ):
x=num_str[j:i]
if(x in dict1):
if(dict1[x]==10):
list1.append(x)
elif(x not in dict1):
y=find_sum(x)
if(y==10):
dict1[x]=y
list1.append(x)
return list1
#Remove pass and write your logic here
return list1
dict1={}
num_str="2825302"
print("The number is:",num_str)
result_list=find_ten_substring(num_str)
print(result_list)
答案 0 :(得分:1)
该代码在python 3.7.3中对我来说工作正常。
The number is: 2825302
['28', '82', '253', '2530', '5302']
这是我收到的输出
答案 1 :(得分:0)
我没有得到错误。更好的做法是将可变对象作为参数传递给函数。将find_ten_substring()
更改为采用其他参数
def find_sum(num_str):
sum1 = 0
for i in num_str:
sum1 += int(i)
return sum1
def find_ten_substring(num_str, dict1):
list1 = []
for i in range(2, len(num_str) + 1):
for j in range(0, i):
if (i != j):
x = num_str[j:i]
if (x in dict1):
if (dict1[x] == 10):
list1.append(x)
elif (x not in dict1):
y = find_sum(x)
if (y == 10):
dict1[x] = y
list1.append(x)
return list1
# Remove pass and write your logic here
return list1
dict1 = {}
num_str = "2825302"
print("The number is:", num_str)
result_list = find_ten_substring(num_str, dict1)
print(result_list, dict1)