快乐开心 发表于 2021-5-8 16:39:21

python

def db(dec):
        result =''
        if dec == 0:
                return 1
        else:

                return db(dec // 2)
                result + str(dec%2)
        return result
print(db(7))

为什么结果是 1 ?

五岁能抬头 发表于 2021-5-8 17:06:04

result初始是空字符串,dec是7所以执行else下内容,最终返回值是result=result (初始空字符串)+str(7%2),就是1

heyazhi 发表于 2021-5-8 21:54:13

这个不是递归语句,单次执行完就输出结果了,db(7)处理,走的是else语句,里面的第一行语句只是return,第二行才是result的处理,所以空串加7%2就是1了
页: [1]
查看完整版本: python