字符串格式化
q = Truewhile q:
num = input('请输入一个整数(输入Q结束程序):')
if num != 'Q':
num = int(num)
print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
else:
q = False
上面那个十进制转换的代码里,为什么是%d -> 0x%x' % (num, num)啊,我看视频里,把一个数字转换只需要'%x' % 160,就可以把他转换成十六进制了啊,为什么代码里的%后面需要两个num '%x' % 160 没有错
%d用来放十进制的,也就是原数160
'十进制 -> 十六进制 : %d -> 0x%x' % (num, num)
'十进制 -> 八进制 : %d -> 0o%o' % (num, num)
'十进制 -> 二进制 : %d -> ' % num, bin(num)
%d 格式化整型,%x 格式化为十六进制数,和后面两个 num 一一对应
这里 %x 前面的 0x 是为了表示是十六进制数,后面 print的 0o 表示八进制数
而最后一个的字符串中只有一个 %d 格式化,即只将 num 格式化入,而 bin(num) 是直接打印该函数运行结果
而 bin 函数返回的二级制值自带 0b 所以不需要在字符串前面添加 0b 进行格式化打印
页:
[1]