number = input(u'输入号码:\n'.encode('utf-8'))#number = "%03d"%numbernum_list = list(str(number))
num_list = [int(num_list[i]) for i in range(len(num_list))]print num_list
代码如上,输入其他数字还行。都能正常print出来
但是如果首位是0 。 比如输入“046”,那会打印出来[3,8]
请问这是什么原因
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
你用的应该是python2.7。
把input方法替换成raw_input。
因为input实际执行的是eval(raw_input(prompt)),会导致输入的字符串046被执行,其0开头被识别为8进制数,转换成10进制后为038。
所以使用raw_input后得到字符串u'046'就可以了
添加回答
举报
0/150
提交
取消
