鱼C论坛

 找回密码
 立即注册
查看: 1633|回复: 2

[已解决]第十五讲课后作业

[复制链接]
发表于 2021-1-6 22:07:54 | 显示全部楼层 |阅读模式
1鱼币
第十五讲课后作业
要求写一个进制转换程序,这是我的代码,对比了一下参考答案,对于print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))这个地方有点疑惑,不明白自己错在哪里。
  1. while 1:
  2.     int1 = input("请输入一个整数(输入Q结束程序):")
  3.     if int1 != 'Q':
  4.         print('十进制 -> 十六进制:' + int1 + "%x" % int1)
  5.         print('十进制 -> 八进制:' + int1 + "%o" % int1)
  6.         print('十进制 -> 二进制:' + int1 + "%b" % int1)
  7.     else:
  8.         break
复制代码

这是参考答案
  1. q = True
  2. while q:
  3.     num = input('请输入一个整数(输入Q结束程序):')
  4.     if num != 'Q':
  5.         num = int(num)
  6.         print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
  7.         print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
  8.         print('十进制 -> 二进制 : %d -> ' % num, bin(num))
  9.     else:
  10.         q = False
复制代码

我的代码为什么会报错?需要怎么修改?求大佬解答。
最佳答案
2021-1-6 22:07:55
本帖最后由 昨非 于 2021-1-6 22:57 编辑

进制转换操作数的int类型,字符串是不行的
  1. while 1:
  2.     int1 = input("请输入一个整数(输入Q结束程序):")
  3.     if int1 != 'Q':
  4.         int2=int(int1)   #int2为整型,int1为字符串型用于拼接(+)
  5.         print('十进制 -> 十六进制:' + int1 + "--->0x%x" % int2)
  6.         print('十进制 -> 八进制:' + int1 + "--->0o%o" % int2)
  7.         print('十进制 -> 二进制:' + int1 +"--->" ,bin(int2))
  8.     else:
  9.         break
复制代码


至于答案的理解,建议参考下面这个帖子的二楼答案
<font color="red">[已解决]</font>进制转换代码
https://fishc.com.cn/thread-172101-1-1.html
(出处: 鱼C论坛)

最佳答案

查看完整内容

进制转换操作数的int类型,字符串是不行的 至于答案的理解,建议参考下面这个帖子的二楼答案 [已解决]进制转换代码 https://fishc.com.cn/thread-172101-1-1.html (出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-6 22:07:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昨非 于 2021-1-6 22:57 编辑

进制转换操作数的int类型,字符串是不行的
  1. while 1:
  2.     int1 = input("请输入一个整数(输入Q结束程序):")
  3.     if int1 != 'Q':
  4.         int2=int(int1)   #int2为整型,int1为字符串型用于拼接(+)
  5.         print('十进制 -> 十六进制:' + int1 + "--->0x%x" % int2)
  6.         print('十进制 -> 八进制:' + int1 + "--->0o%o" % int2)
  7.         print('十进制 -> 二进制:' + int1 +"--->" ,bin(int2))
  8.     else:
  9.         break
复制代码


至于答案的理解,建议参考下面这个帖子的二楼答案
<font color="red">[已解决]</font>进制转换代码
https://fishc.com.cn/thread-172101-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-8 10:15:09 | 显示全部楼层
字符串不能和INT拼接,你可以强制转换类型拼接或者像参考答案那种格式化进去
按你的思路提供写法
  1. print('十进制 -> 十六进制:' + str(int1) + "%x" % int1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 15:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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