在Python%i中设置字符串格式 [英] String Formatting in Python %i

查看:0
本文介绍了在Python%i中设置字符串格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须将代码从Python2.x转换为Python3(主要是字符串格式) 我遇到了这样的事情:

Logger.info("random String %d and %i".format(value1, value2))
现在,我知道%d可以替换为{:d},但找不到等同于%i的内容(签名) 使用{:i}会出现以下错误:

ValueError:‘int’类型的对象的格式代码‘i’未知

推荐答案

简而言之:Python3str.Format()规范已放弃对"i"(%i或{:i})的支持。它只使用"d"(%d或{:d})来指定整数。因此,您可以简单地对所有整数使用{:D}。

长长的答案是:对于输出,即对于printf或日志记录,%i和%d实际上是相同的,无论是在Python中还是在C中都是如此,这是有区别的,但只有当您使用它们来解析输入时,就像使用scanf()一样。对于scanf,%d和%i实际上都表示有符号整数,但如果前面有0x,%i会将输入解释为十六进制数;如果前面有0,则%i会将输入解释为八进制,否则会将输入解释为十进制。因此,对于正常使用,最好使用%d,除非您希望将INPUT指定为十六进制或八进制。

更多详情,请查看此处的格式规范: https://docs.python.org/2/library/string.html#formatspec

这篇关于在Python%i中设置字符串格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆