qin_yin 发表于 2020-9-13 20:50:14

同样的程序写法不一样,但实现的功能是一样的,这样的情况下还怎么判断代码优点缺点

0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。

小甲鱼的代码
def Dec2Bin(dec):
    result = ''
   
    if dec:
      result = Dec2Bin(dec//2)
      return result + str(dec%2)
    else:
      return result

print(Dec2Bin(62))

我的代码
def binary(dec):
    if dec == 1:
      return str(1)
    else:
      yushu = dec % 2
      return binary(dec // 2)

dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b',result))+str(yushu)

疾风怪盗 发表于 2020-9-13 20:56:54

你的代码都无法执行吧。。。。。。。{:10_284:}

sunrise085 发表于 2020-9-13 21:00:46

你的程序是有问题的。昨天我帮你修改了的。你怎么又改回去了?
def binary(dec):
    if dec <= 1:
      return str(dec)
    else:
      yushu = dec % 2
      return binary(dec // 2)+str(yushu)

dec = int(input('输入需要转为二进制的十进制数'))
result = binary(dec)
print('0b'+result)
这两个程序基本没有差别,时间消耗也一样,空间消耗也基本一样

qin_yin 发表于 2020-9-13 21:09:34

疾风怪盗 发表于 2020-9-13 20:56
你的代码都无法执行吧。。。。。。。

之前写好了的,然后测试一些想法的时候忘记改回来了{:10_277:}

qin_yin 发表于 2020-9-13 21:10:09

sunrise085 发表于 2020-9-13 21:00
你的程序是有问题的。昨天我帮你修改了的。你怎么又改回去了?

这两个程序基本没有差别,时间消耗也一样 ...

后面又改动了下,忘记改回去了{:10_254:}

sunrise085 发表于 2020-9-13 21:12:09

qin_yin 发表于 2020-9-13 21:10
后面又改动了下,忘记改回去了

if那里是小于等于1,否则输入0就报错了

疾风怪盗 发表于 2020-9-13 21:18:55

qin_yin 发表于 2020-9-13 21:09
之前写好了的,然后测试一些想法的时候忘记改回来了

{:10_284:}好吧,这么几行的小程序,区别不大的
真正要考虑运行效率的,是处理几万条数据的时候吧,其他的不用考虑太多
都选择学python了,还不就是为了学起来简单点么,也无所谓吧,
否则就会选择学效率高的编程语言了,比如C++

qin_yin 发表于 2020-9-13 21:36:41

sunrise085 发表于 2020-9-13 21:12
if那里是小于等于1,否则输入0就报错了

谢谢提醒

qin_yin 发表于 2020-9-13 21:38:26

疾风怪盗 发表于 2020-9-13 21:18
好吧,这么几行的小程序,区别不大的
真正要考虑运行效率的,是处理几万条数据的时候吧,其他 ...

几万条的数据想想就有点恐怖{:10_284:}
页: [1]
查看完整版本: 同样的程序写法不一样,但实现的功能是一样的,这样的情况下还怎么判断代码优点缺点