Python 2.7 是否有可能避免旧式';%';此python字符串的字符串格式设置

Python 2.7 是否有可能避免旧式';%';此python字符串的字符串格式设置,python-2.7,Python 2.7,我试图删除python(2.7)代码中所有旧式字符串格式的痕迹。然而,我遇到了一个例子,其中似乎只有旧式的工作 >>> x = u'\xa3' >>> y = '{}'.format(x) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode chara

我试图删除python(2.7)代码中所有旧式字符串格式的痕迹。然而,我遇到了一个例子,其中似乎只有旧式的工作

>>> x = u'\xa3'
>>> y = '{}'.format(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)

有没有办法使用某种形式的{}语法来实现这一点?

您可以改用unicode文本:

y = u'{}'.format(x)

如果您使用Python3,那么您所尝试的方法将会奏效。为什么您仍在使用Python 2?它不再受支持。我正在将一个旧的代码库迁移到python3,我有py2和3 compatibleThanks,但随后我强制生成的字符串为unicode,而不管xIt对于任何给定操作是否有一致的返回数据类型,这也是为什么在Python3中
/
总是返回一个
float
,而在Python2中它可以是
int
float
y = u'{}'.format(x)