tianyajuanke 发表于 2021-3-23 11:53:34

既然%b表示的是2进制的格式化,但是这么写就会报错,最离谱的是16进制写成%x就没错

求大佬指教啊!!!!
while True:
    temp = input('请输入一个整数(输入Q结束程序):')
    if temp == 'Q':
      print('程序结束!')
      break
    else:
      temp = int(temp)
      print('十进制 -> 十六进制 :',temp,'->',"{:X}".format(temp))
      print('十进制 -> 八进制 :',temp,'->',"{:o}".format(temp))
      print('十进制 -> 二进制 :',temp,'->',"{:b}".format(temp))
      print('...................这是一条分割线..................')
      print('十进制 -> 十六进制 :%d -> 0x%x' % (temp,temp))
      print('十进制 -> 八进制 :%d -> 0o%o' % (temp,temp))
      print('十进制 -> 二进制 :%d -> 0b%b' % (temp,temp))



最后一行报错了,简直离谱,为啥啊~~

昨非 发表于 2021-3-23 12:33:25

本帖最后由 昨非 于 2021-3-23 12:37 编辑

python没有%b的格式串来格式化二进制
直接使用内置bin()函数不香吗?{:10_256:}
      print('十进制 -> 二进制 :%d -> ' % temp,bin(temp))

代码小白liu 发表于 2021-3-23 12:34:36

十进制转换二进制不是bin()吗

逃兵 发表于 2021-3-23 12:36:17

%b表示的是2进制的格式化,这句话本身就是错的
页: [1]
查看完整版本: 既然%b表示的是2进制的格式化,但是这么写就会报错,最离谱的是16进制写成%x就没错