鱼C论坛

 找回密码
 立即注册
查看: 2299|回复: 9

[已解决]询问第十五次作业编程题目问题

[复制链接]
发表于 2017-7-21 20:01:14 | 显示全部楼层 |阅读模式

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

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

x
作业要求:进制转换
这是答案:
  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
复制代码



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

一运行的话就报invalid format specifier
print('十进制->十六进制:{0:%d}->{1:0x%x}'.format(x,x))
求教各位大神,我写的地方,用format 用的错误了么。谢谢各位大神辣
最佳答案
2017-7-21 20:13:14
  1. 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
  2. In [54]: '{:b}'.format(17)
  3. Out[54]: '10001'
  4. In [55]: '{:d}'.format(17)
  5. Out[55]: '17'
  6. In [56]: '{:o}'.format(17)
  7. Out[56]: '21'
  8. In [57]: '{:x}'.format(17)
  9. Out[57]: '11'

复制代码

  1. while True:
  2.     x=input('请输入一个整数(输入Q结束程序):')
  3.     if x!='Q' :
  4.         x=int(x)
  5.         print('十进制->十六进制:{0:d}->0o{1:x}'.format(x,x))
  6.         print('十进制->八进制:{0:d}->0o{1:o}'.format(x,x))
  7.         print('十进制->二进制:{0:d}->{1}'.format(x,bin(x)))
  8.     else:
  9.         print('程序结束')
  10.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-21 20:05:46 | 显示全部楼层
大括号里没有那些操作
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-21 20:09:53 | 显示全部楼层
  1. while True:
  2.     x=input('请输入一个整数(输入Q结束程序):')
  3.     if x!='Q' :
  4.         x=int(x)
  5.         print('十进制->十六进制:{}->{}'.format(x,hex(x)))
  6.         print('十进制->八进制:{}->{}'.format(x,oct(x)))
  7.         print('十进制->二进制:{}->{}'.format(x,bin(x)))
  8.     else:
  9.         print('程序结束')
  10.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-21 20:11:39 | 显示全部楼层
新手·ing 发表于 2017-7-21 20:05
大括号里没有那些操作

可是这样就可以啊
  1. >>> '{0}:{1:2f}'.format('圆周率',3.14159)
  2. '圆周率:3.141590'
  3. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-21 20:13:02 | 显示全部楼层
xkcx1988 发表于 2017-7-21 20:11
可是这样就可以啊

请问,是不是大括号里的 % 不能用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-21 20:13:14 | 显示全部楼层    本楼为最佳答案   
  1. 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
  2. In [54]: '{:b}'.format(17)
  3. Out[54]: '10001'
  4. In [55]: '{:d}'.format(17)
  5. Out[55]: '17'
  6. In [56]: '{:o}'.format(17)
  7. Out[56]: '21'
  8. In [57]: '{:x}'.format(17)
  9. Out[57]: '11'

复制代码

  1. while True:
  2.     x=input('请输入一个整数(输入Q结束程序):')
  3.     if x!='Q' :
  4.         x=int(x)
  5.         print('十进制->十六进制:{0:d}->0o{1:x}'.format(x,x))
  6.         print('十进制->八进制:{0:d}->0o{1:o}'.format(x,x))
  7.         print('十进制->二进制:{0:d}->{1}'.format(x,bin(x)))
  8.     else:
  9.         print('程序结束')
  10.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-21 20:17:41 | 显示全部楼层
xkcx1988 发表于 2017-7-21 20:13
请问,是不是大括号里的 % 不能用

大括号里不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-21 20:20:36 | 显示全部楼层
不是没有那些操作,format里面格式没有'%',你应该好好查查format使用 ,你去掉百分号应该就好了
@新手·ing
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-21 20:22:53 | 显示全部楼层
谢谢各位大神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-21 20:27:51 | 显示全部楼层
  1. while True:
  2.     x=input('请输入一个整数(输入Q结束程序):')
  3.     if x!='Q' :
  4.         x=int(x)
  5.         print('十进制->十六进制:{0:d}->{1:#x}'.format(x,x))
  6.         print('十进制->八进制:{0:d}->{1:#o}'.format(x,x))
  7.         print('十进制->二进制:{0:d}->{1}'.format(x,bin(x)))
  8.     else:
  9.         print('程序结束')
  10.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-28 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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