我想我正在计算从整数到二进制数的转换错误。我输入了整数6
并找回了二进制数0
,这绝对是错误的。你们能帮忙吗?这是新代码。
def ConvertNtoBinary(n):
binaryStr = ''
if n < 0:
print('Value is a negative integer')
if n == 0:
print('Binary value of 0 is 0')
else:
if n > 0:
binaryStr = str(n % 2) + binaryStr
n = n > 1
return binaryStr
def main():
n = int(input('Enter a positive integer please: '))
binaryNumber = ConvertNtoBinary(n)
print('n converted to a binary number is: ',binaryNumber)
main()
答案 0 :(得分:3)
您忘了拨打raw_input()
。现在,您尝试将提示消息转换为无法正常工作的整数。
n = int(raw_input('Enter a positive integer please: '))
当然围绕该行的try..except
将是一个好主意:
try:
n = int(raw_input('Enter a positive integer please: '))
except ValueError:
n = 0 # you could also exit instead of using a default value
答案 1 :(得分:0)
在n = int('Enter a positive integer please: ')
中,您正在尝试从字符串'输入正数...'中创建一个int。我会假设你忘记了raw_input()
。你可以做
n = int(raw_input('Enter a positive integer please: '))
或
n = raw_input('Enter a positive integer please: ')
n = int(n)
答案 2 :(得分:0)
您不能将任意字符串文字强制转换为int。我认为你要做的是调用一种从用户那里获取输入的提示方法。