오류 메시지를 위조하지 않았습니까?
코드 ...
>>> int('10010101101001011011000000001111001110111110000100101000000011111111100000111010111011101111110010001101101001101000100000001100010011000010100000110100100001010110011111101101000101101001011001100110', 2)
939350809951131205472627037306557272273273866819979105965670L
은 ... 나를 위해 작동합니다.
그리고, 코드의 구체적인 예 ...
>>> x = 82349832
>>> y = 23432984
>>> z = bin(x) + bin(y)
>>> int(z, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '0b1001110100010001111000010000b1011001011000111100011000'
는 ... 오류 메시지의 문제 (즉 0b
접두사)를 보여줍니다. ... 마티 피터스 있듯이, format()
프리픽스를 사용하지 않고 진 표현을 생성
용액하는 것 중
z = bin(x)[2:] + bin(y)[2:]
z = int(z, 2)
...와 프리픽스 스트립 ... 또는
z = format(x, 'b') + format(y, 'b')
z = int(z, 2)
gnibbler에서 알 수 있듯이, 하나의 호출을 수행 할 문자열 객체의
format()
방법을 사용
... 나 ...
z = '{:b}{:b}'.format(x, y)
z = int(z, 2)
,
출처
2013-05-15 11:36:33
Aya
Jochen이 답변에서 지적한 것처럼 문자열에 두 개의' "b"'문자가 포함되어 있기 때문에 'ValueError'가 게시 한 코드에서 오지 않은 것으로 의심됩니다. –
정말 그 _exact_ 오류 메시지를 받았습니까? 어떤 버전의 파이썬인가? 어느 OS? –