我有一个使用0和1来跟踪信息的程序,但问题是,当我将字符串0110000100001000010001110存储为变量,然后立即打印该变量时,它已更改为664085038522079117896,我不知道为什么。字符串必须有25个字符长,并且由0和1组成,这个更改违反了这两个规则。
pixels = int(input("Enter values: "))
print(pixels)
输入0110000100001000010001110,打印出来的时候变成了664085038522079117896。
您正在使用Python 2。input
计算字符串,前导零表示八进制数,因此0111
将返回整数73。使用raw_input
来获取字符串,如果您想保留二进制字符串,则不要转换为int
。
在Python 3中可以:
>>> pixels = input('Enter values: ') # use raw_input in Python 2.
Enter values: 01100001
>>> pixels
'01100001'