鱼C论坛

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

[已解决]关于Python015讲的课后练习

[复制链接]
发表于 2018-2-8 21:39:19 | 显示全部楼层 |阅读模式

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

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

x
第一问关于测试题第4题:

4. 如果想要显示Pi = 3.14, format前边的字符串应该怎么填写呢?
' '.format('Pi = ', 3.1415)

答案是:
>>> '{0}{1:.2f}'.format('Pi = ', 3.1415)
'Pi = 3.14'

小甲鱼在教学中提到{replacement}中冒号表示格式化符号的开始; .2表示保留小数点后两位,f表示打印出定点数。
我对这段话的理解还不是很透彻,
问题1:什么叫做”表示格式化符号的开始“呢?加入我要按3.1415打出来,就直接{2}就可以,这样的话就不叫做格式化了吗?
问题2:{1:.2f}中的f是打印定点数,那是不是还可以打印浮点数?如何打印浮点数呢?我尝试把f去掉结果却打印出3.1而不是3.14这是为什么?


第二问关于动动手第0题:

0. 编写一个进制转换程序,答案代码如下

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

问题1:为什么我把 ‘%d - > %x' % (5,5) 这样运行的时候给出两个5, 不应该是5 和 十六进制的 5 吗?题目中的num也是同样的整数啊?
问题2: 为什么二进制的num 和 bin(num) 不想十六进制和八进制那样用括号括起来?我尝试加入括号但是系统提示错误。



提前感谢各位大佬的热心解答!
最佳答案
2018-2-9 09:18:19

问题1:什么叫做”表示格式化符号的开始“呢?加入我要按3.1415打出来,就直接{2}就可以,这样的话就不叫做格式化了吗?
{}里面就是格式化位置,你只用{2}就只是照原样输出第二个位置的数据

问题2:{1:.2f}中的f是打印定点数,那是不是还可以打印浮点数?如何打印浮点数呢?我尝试把f去掉结果却打印出3.1而不是3.14这是为什么?
当然可以,直接{1}即可,如果对应的变量是浮点类型,自然就是浮点数
你把f去掉,变成了{1:.2}  1表示位置:.2表示取两位有效数字,所以说3.1




问题1:为什么我把 ‘%d - > %x' % (5,5) 这样运行的时候给出两个5, 不应该是5 和 十六进制的 5 吗?题目中的num也是同样的整数啊?
十六进制的5和十进制的5本来看起来就是一样,比如3在八进制十进制中也是一样


问题2: 为什么二进制的num 和 bin(num) 不想十六进制和八进制那样用括号括起来?我尝试加入括号但是系统提示错误。
因为最后的print('十进制 -> 二进制 : %d -> ' % num, bin(num))是用这种形式表现的:
print(a,b)
前面的num是对应的是字符串中的%d,后面的bin(num)是另外一个数据(相当于b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-8 21:42:11 | 显示全部楼层
更正一下问题里打错的字。。
问题1:什么叫做”表示格式化符号的开始“呢?假如我要按3.1415打出来,就直接{2}就可以,这样的话就不叫做格式化了吗?

问题2: 为什么二进制的num 和 bin(num) 不十六进制和八进制那样用括号括起来?我尝试加入括号但是系统提示错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-9 09:18:19 | 显示全部楼层    本楼为最佳答案   

问题1:什么叫做”表示格式化符号的开始“呢?加入我要按3.1415打出来,就直接{2}就可以,这样的话就不叫做格式化了吗?
{}里面就是格式化位置,你只用{2}就只是照原样输出第二个位置的数据

问题2:{1:.2f}中的f是打印定点数,那是不是还可以打印浮点数?如何打印浮点数呢?我尝试把f去掉结果却打印出3.1而不是3.14这是为什么?
当然可以,直接{1}即可,如果对应的变量是浮点类型,自然就是浮点数
你把f去掉,变成了{1:.2}  1表示位置:.2表示取两位有效数字,所以说3.1




问题1:为什么我把 ‘%d - > %x' % (5,5) 这样运行的时候给出两个5, 不应该是5 和 十六进制的 5 吗?题目中的num也是同样的整数啊?
十六进制的5和十进制的5本来看起来就是一样,比如3在八进制十进制中也是一样


问题2: 为什么二进制的num 和 bin(num) 不想十六进制和八进制那样用括号括起来?我尝试加入括号但是系统提示错误。
因为最后的print('十进制 -> 二进制 : %d -> ' % num, bin(num))是用这种形式表现的:
print(a,b)
前面的num是对应的是字符串中的%d,后面的bin(num)是另外一个数据(相当于b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 16:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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