我用C ++编写这段代码并且它一直给我一个我不想要的答案所以我认为我应该用python编写它,所以当我这样做时它给了我错误“ * '返回'外部功能([放在硬盘上],第7行)“。我搜索它,发现它与缩进有关,所以我重新写了那行代码,但我仍然得到这个错误。它自己的程序也很可能是错的,我不是要求你解决这个问题,但理论上它应该可行,也就是将十进制转换为二进制数字。在此先感谢:)。
以下是代码:
class gimmeANumber():
while True:
Number = raw_input("Please can you input a number from 0 to 255\n")
if Number < 0 or 255 < number:
print "Please enter a valid number\n"
else:
return Number
class decToBinary():
Binary_Converter = 128
i = 0
Binary = 0
while True:
Number = gimmeANumber()
ONumber = Number
while (true):
if (Number - Binary_Converter) >= 0:
Number =- Binary_Converter
Binary_Converter /= 2
Binary += 10**7-i
else:
Binary_Converter /= 2
i += 1
if i == 8:
break
print "\nThe origanal number was " + str(ONumber) + " Now it is " + str(Binary) + " in Binary.\n"
答案 0 :(得分:4)
尝试将class
更改为def
。
答案 1 :(得分:3)
由于“class”关键字,你告诉Python你正在定义一个类。
但是,你应该使用“def”来定义一个函数。
还需要修复一些其他功能才能使其正常工作。例如,gimmeANumber()应返回一个数字,但它当前返回一个字符串。该函数应如下所示:
def gimmeANumber():
while True:
Number = raw_input("Please can you input a number from 0 to 255\n")
Number = int(Number)
if Number < 0 or 255 < Number:
print "Please enter a valid number\n"
else:
return Number
答案 2 :(得分:0)
Python有一个内置函数可以从十进制转换为二进制(bin()
)。
number = int(raw_input('Give me a decimal integer, please: '))
print '%d in decimal is equivalent to %s in binary' % (number, bin(number)[2:])
要从任何基数转换为十进制,您可以执行以下操作:
number = int(raw_input('Give me a binary integer, please: '))
print '%d in binary is equivalent to %d in binary' % (number, int(number, 2))