鱼C论坛

 找回密码
 立即注册
查看: 1325|回复: 6

%d,%s,%r的区别?

[复制链接]
发表于 2018-6-10 20:36:10 | 显示全部楼层 |阅读模式

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

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

x
my_name='Zed A. Shaw'
my_height=74

print"Let's talk about %s." % my_name
print"He's %d inches tall." % my_height

其中第四行%d改成%s,%r都可以,也就是说%d,%s,%r都可以;但是第三行只有%s,%r可以,%d不能运行。不太清楚这三个符号在什么时候用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-10 20:56:19 | 显示全部楼层
%d需要带入一个数字,如果是浮点数则取整。例如:
>>> print('%d'%8)
8
>>> print('%d'%7.73)
7
%s可以是字符串,也可以是数字。
%r则是以repr方式表示字符串,例如:
>>> a = '\t'
>>> print('%r-前面是制表符'%a)
'\t'-前面是制表符
>>> print('%s-前面是制表符'%a)
        -前面是制表符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-6-10 20:58:37 | 显示全部楼层
%r用rper()方法处理对象 %s用str()方法处理对象 %d表示是个整形,大多情况下,%s和%r结果是一样的,但是你的第三行中,my_name是个字符串,是不能转化为整形的,所以报错。第四行因为my_height本身是个整形,所以可以用%s或%r转化为字符串,也可%d保持整形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-10 21:20:54 | 显示全部楼层
这联系到数据结构了   建议你先学习8086汇编语言  如果你理解了cpu是怎么看数据的  那么你这些问题就自然解除了  其实说到底还是基础有些欠缺
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-10 23:41:51 | 显示全部楼层
田螺 发表于 2018-6-10 21:20
这联系到数据结构了   建议你先学习8086汇编语言  如果你理解了cpu是怎么看数据的  那么你这些问题就自然解 ...

呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-11 11:19:48 | 显示全部楼层
建议百度多了解,毕竟涉及的知识还是有点多,回复的不一定完整
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-14 16:56:22 | 显示全部楼层
如果是python3就放弃%的写法吧,改用format()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 10:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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