第015讲:字符串:格式化 动动手 代码问题
q = Truewhile 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
'十进制 -> 十六进制 : %d -> 0x%x' % (num, num)
这里面的 (num, num)是什么意思?
为什么要这么写不能写成
'十进制 -> 十六进制 : %d -> 0x%x' % num)
两个 num 分别填充字符串中的 %d 和 %x 占位符,不能只写一个 格式化需要多个参数时必须加括号。 zltzlt 发表于 2020-8-9 09:47
两个 num 分别填充字符串中的 %d 和 %x 占位符,不能只写一个
哦,是不是这个意思
'十进制 -> 十六进制 : %d -> 0x%x' % num
只是%d的
因为'十进制 -> 十六进制 : %d -> 0x%x' % num里面有 两个一个是%d 一个是%x
所以后面要给两个参数(num,num) 分别是%d 和%x 的
blackfame 发表于 2020-8-9 09:50
哦,是不是这个意思
'十进制 -> 十六进制 : %d -> 0x%x' % num
对 blackfame 发表于 2020-8-9 09:50
哦,是不是这个意思
'十进制 -> 十六进制 : %d -> 0x%x' % num
是的。
但是用 % 来格式化的方法早就不用了,现在推荐使用 format 和 f-string 想问一下...0 x% x这里面的0x是做什么的??有什么用吗 极品召唤兽 发表于 2020-8-9 10:56
想问一下...0 x% x这里面的0x是做什么的??有什么用吗
0x小甲鱼视频里有啊,就是说是 16进制的,0o是8进制的
blackfame 发表于 2020-8-9 11:29
0x小甲鱼视频里有啊,就是说是 16进制的,0o是8进制的
就是..那个只是一个提示作用 还是有其他作用? 极品召唤兽 发表于 2020-8-9 11:30
就是..那个只是一个提示作用 还是有其他作用?
格式化操作符辅助命令 #在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'的意思一样
我觉得写成这样也行:q = True
while q:
num = input('请输入一个整数(输入Q结束程序):')
if num != 'Q':
num = int(num)
print('十进制 -> 十六进制 : %d -> %#x' % (num, num))
print('十进制 -> 八进制 : %d -> %#o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
else:
q = False 永恒的蓝色梦想 发表于 2020-8-9 09:56
是的。
但是用 % 来格式化的方法早就不用了,现在推荐使用 format 和 f-string
{:5_91:}慢慢来,我还在做课后作业阶段,按照小甲鱼的课后题要求写。。。。 blackfame 发表于 2020-8-9 11:36
格式化操作符辅助命令 #在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'的意思一样
我觉 ...
额..为什么转换二进制的时候用的bin()??
咋不是0d了呢 我觉得答案不够完美,输入的不是整数或是Q的话,就直接退出了,没有提示。我是这样写的
while 1:
a = input('请输入一个整数(输入Q结束程序):')
ifnot (a.isdecimal() or a=="Q"):
print("您的输入有误,请重新输入!")
continue
elif a == 'Q':
print("程序结束")
break
else:
b="%#x" % int(a)
c="%#o" % int(a)
d=bin(int(a))
print("十进制->十六进制:",a,"->",b)
print("十进制->八进制:",a,"->",c)
print("十进制->二进制",a,"->",d)
页:
[1]