How can I return the value of total_square
only when quasi_gen==0?
If I put another return statement to the case where quasi_gen>0
, then it always returns zero
.
def count_boxes(quasi_gen, initial_list):
total_square=0
new_list=[]
new_list=[box * 2 for box in initial_list]
concatenate_list=initial_list+new_list
if quasi_gen>0:
quasi_gen-=1
count_boxes(quasi_gen, concatenate_list)
elif quasi_gen==0:
total_square=(sum(elem for elem in concatenate_list))
return(total_square)
count_boxes(4, [2,2])
Not sure what you're trying to do but first of all you should safe guard against quasi_gen < 0
you also don't need to do all those useless resets, in short, try this:
def count_boxes(quasi_gen, initial_list):
concatenate_list=initial_list + [box * 2 for box in initial_list]
if quasi_gen < 0:
return 0 # ?
if quasi_gen > 0:
return count_boxes(quasi_gen - 1, concatenate_list)
return(sum(elem for elem in concatenate_list))