13708301611 发表于 2020-3-29 17:00:09

python 15讲动动手作业提问

q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
      num = int(num)
      print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))一、0x是什么意思,转十六进制直接由‘%x’不行吗?二、(num,num)为什么是元组,他不是个整数吗
      print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
      print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
      q = False

BngThea 发表于 2020-3-29 17:07:05

格式化输出,其中的 %d %o 都只是占位符而已

用后面的值替代这些即可
举个例子
"I %s fishC" % 'love'
等价于将 love 替换 %s,所以结果为 "I love fishC"

一个字符串中可以有多个占位符,比如
"%d 只 %s" % (1, "狗")
等价于将 1 替代 %d, 将 狗 替代 %s,所以结果为 "1 只狗"
后面的字符d,s,o等含义请参考:
http://bbs.fishc.com/thread-92997-1-1.html

jackz007 发表于 2020-3-29 18:19:29

本帖最后由 jackz007 于 2020-3-29 18:24 编辑

1.0x%x 是为了在输出十六进制数的时候,在数值前添加 0x 前导,以便强调数值是十六进制编码。

2.(num , num)不是元组,而是两个整型变量,分别对应于前面格式描述符中的 %d 和 %x:
       print('十进制 -> 十六进制 : %d -> 0x%x' % (num , num))
页: [1]
查看完整版本: python 15讲动动手作业提问