鱼C论坛

 找回密码
 立即注册
查看: 2354|回复: 4

作业疑问

[复制链接]
发表于 2019-12-12 23:04:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
q = True
while 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
第八行代码print('十进制 -> 二进制 : %d -> ' % num, bin(num)),这里的第一个占位符是%d导入num,第二个元素bin(num)为什么会导入到->后的空白,这里并没有占位符。怎么理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-13 19:55:12 | 显示全部楼层
        print('十进制 -> 二进制 : %d -> ' % num, bin(num))

标绿色和红色的是两个不同的整体,也就是打印两个不同的内容,这两个不同的内容之中用空格分隔(sep 参数)。其中 num 被格式化到字符串中的 %d。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-13 22:53:56 | 显示全部楼层
本帖最后由 gamelife521 于 2019-12-13 23:01 编辑
zltzlt 发表于 2019-12-13 19:55
print('十进制 -> 二进制 : %d -> ' % num, bin(num))

标绿色和红色的是两个不同的整体,也就是 ...


print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
每一行的最后一个%后面跟着引导的内容,%d是第一个占位符 %x 和%o都是引导括号内第二个元素格式化成16进制和8进制
print('十进制 -> 二进制 : %d -> ' % num, bin(num))这里的%d(第一个占位符) 引导第一个num,第二个bin(num)被导向空格就无法理解了,还是在这里说格式化二进制会被自动填充到空格里去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-14 07:51:41 | 显示全部楼层
gamelife521 发表于 2019-12-13 22:53
print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % ...

假设我把第一个字符串的格式化去掉就变成了这样:
print('十进制 -> 二进制 : ', bin(num))

这样就好理解了,是打印两串字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-17 14:10:10 | 显示全部楼层
简单点说,bin(num)不是用的格式化占位符换进去的,而是直接跟在后面的,比如你写个 print("A","B"),会出来A,B 一个道理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表