我在Python 2中这样做:

"(%d goals, $%d)" % (self.goals, self.penalties)

Python 3的版本是什么?

我试着在网上搜索示例,但我一直得到Python 2版本.

推荐答案

下面是关于"新"格式语法的the docs个例子.例如:

"({:d} goals, ${:d})".format(self.goals, self.penalties)

如果它们的格式都是penalties,则可以将其缩短为goals

"({} goals, ${})".format(self.goals, self.penalties)

由于参数是self的字段,所以也有一种方法可以使用单个参数两次(正如@Burhan Khalid在 comments 中指出的):

"({0.goals} goals, ${0.penalties})".format(self)

解释:

  • {}表示下一个位置参数,默认格式;
  • {0}表示索引为0的参数,默认格式;
  • {:d}是下一个位置参数,采用十进制整数格式;
  • {0:d}是索引为0的参数,采用十进制整数格式.

在 Select 参数(使用命名参数而不是位置参数、访问字段等)和许多格式选项(填充数字、使用数千分隔符、是否显示符号等)时,还可以执行许多其他操作.其他一些例子:

"({goals} goals, ${penalties})".format(goals=2, penalties=4)
"({goals} goals, ${penalties})".format(**self.__dict__)

"first goal: {0.goal_list[0]}".format(self)
"second goal: {.goal_list[1]}".format(self)

"conversion rate: {:.2f}".format(self.goals / self.shots) # '0.20'
"conversion rate: {:.2%}".format(self.goals / self.shots) # '20.45%'
"conversion rate: {:.0%}".format(self.goals / self.shots) # '20%'

"self: {!s}".format(self) # 'Player: Bob'
"self: {!r}".format(self) # '<__main__.Player instance at 0x00BF7260>'

"games: {:>3}".format(player1.games)  # 'games: 123'
"games: {:>3}".format(player2.games)  # 'games:   4'
"games: {:0>3}".format(player2.games) # 'games: 004'

Note:正如其他人指出的那样,新的格式并没有取代前者,这两种格式在Python3和Python2的较新版本中都可用.有人可能会说这是一个偏好问题,但IMHO较新版本比旧版本更具表现力,在编写新代码时应该使用它(当然,除非它针对的是较旧的环境).

Python-3.x相关问答推荐

我在创建Pandas DataFrame时感到困惑

如何绘制交叉验证的AUROC并找到最佳阈值?

谁能解释一下这个带邮编的多功能环路?

泛型类型的参数的静态类型

使用Python抓取sofascore以获取有关球队阵容和投票的信息

我无法直接在 VSCode 中运行该程序,但可以使用 VScode 中的终端运行它

如何获取自定义文件上传路径的对象ID?

公开数据中的卫星图像网页抓取优化

从 LeetCode 的 Python 解决方案类中理解关键字 self

从 h264 帧解析数据包时 PyAV 不一致

python中两个连续的yield语句如何工作?

具有 2 个输入的 python 3 map/lambda 方法

smtplib 在 Python 3.1 中发送带有 unicode 字符的邮件的问题

Python:如何判断一个项目是否被添加到一个集合中,没有 2x(hash,lookup)

Tkinter AttributeError:对象没有属性'tk'

pandas 中 df.reindex() 和 df.set_index() 方法的区别

如何在 Selenium 和 Python 中使用类型查找元素

Python 3.4 多处理队列比 Pipe 快,出乎意料

如何将python日志(log)级别名称转换为整数代码

Beautifulsoup 的单元测试失败