Peteryo01223 发表于 2021-1-13 16:36:25

第23课:递归。简单 %d 也报错?

正常运行的程序:
def function(x):
    result = ''
    if x:
      result = function(x//2)
      return result + str(x%2)
      
    else:
      return result

a = function(10)
print(a)

我加了 %d 后,报错了:
def function(x):
    result = ''
    if x:
      result = function(x//2)
      return result + str(x%2)
      
    else:
      return result

a = function(10)
print("10的二进制是:%d" % a)

为什么?
简单的 %d,我又被难倒了。。。请教各位。

昨非 发表于 2021-1-13 16:51:02

本帖最后由 昨非 于 2021-1-13 16:54 编辑

a是字符串类型
怎么用%d呢,格式不对的
函数返回的结果是通过递归str拼接(+)出来的字符串
直接打印就好,不必转换为int
反正print打印出来的整型和字符串看起来是没有去别的
当然,你要是想用格式串的话,可以转换为
a = function(10)
print("10的二进制是:%s" % a)
或者:
a = function(10)
print("10的二进制是:%d" % int(a))

Peteryo01223 发表于 2021-1-13 17:01:04

昨非 发表于 2021-1-13 16:51
a是字符串类型
怎么用%d呢,格式不对的
函数返回的结果是通过递归str拼接(+)出来的字符串


棒!谢谢!学习了。
页: [1]
查看完整版本: 第23课:递归。简单 %d 也报错?