我不明白这种语法错误

时间:2012-03-13 14:47:54

标签: python

我想我正在计算从整数到二进制数的转换错误。我输入了整数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()

3 个答案:

答案 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。我认为你要做的是调用一种从用户那里获取输入的提示方法。