二进制到十进制代码改进
问题描述:
我对python 2.7是全新的。上次我为自己开发了一个小功能,并且很想知道如何改进我的算法。那里写了什么不必要的东西? (我不想在目的函数中使用构建,因为我是初学者,但我知道这些是存在的,我希望稍后会记住这一点)。或者你知道其他方法计算从基2到基地10?这是我知道的唯一方法,或者说,我将如何用笔和纸来计算。二进制到十进制代码改进
import math
print "Please enter a binary sequence."
prompt = '>> '
x = raw_input(prompt)
n = x[::-1]
i = 0
s = 0
'''bin2dec'''
for i in range(len(n)):
i += 1
if int(str(n)[i-1]) != 0:
s += pow(2, i-1)
else:
s += 0
print s
PS:目前我正在制定反向算法。敬请期待:)
答
import math
print "Please enter a binary sequence."
prompt = '>> '
x = raw_input(prompt)
x = list(x[::-1])
result=0
'''bin2dec'''
for i in range(len(x)):
result+=int(x[i])*pow(2,i)
print result
- 首先保持理解的变量,同时发布。
- 可以将输入转换为更好的遍历列表。
- 这是更清晰和可升级的代码可能与您的概念。
- 可以使用代替使用数学函数
2**i
。
如果这是您认为可以改进的**工作代码**,请参见[codereview.se]。如果不是,请澄清问题。 – jonrsharpe
这确实是一个工作代码。不知道代码审查部分。谢谢你提到它。我一定会检查出来的。 – Stefan
第一条评论:使用更好的变量名称。 – Mast