我目前正在将一些C++代码移植到Python,但是我不知道如何翻译这个:
print std::setfill('0') << std::setw(2) << std::hex << myVar << std::dec << " "
我该如何将 std::setfill('0')
和 std::setw(2)
翻译成 Python?
虽然没有直接的等价物,但是您可以使用format
函数来转换想要显示的每个值。请参见https://docs.python.org/2/library/string.html#format-specification-mini-language了解格式说明。
print '{:02x}'.format(myVar)
std::setw(n)
相对应的东西。好奇的话,我使用了 '{:>n}'.format(nbr)
。In [13]: '{:>2}'.format(1)
Out[13]: ' 1'
In [14]: '{:>2}'.format(10)
Out[14]: '10'
'<any_char>'*n
返回任意字符 n 次。"%x"%myVar
将 myVar 格式化为十六进制。 - BenmyVar
有一个语义,需要这样的格式,你可以编写一个单一的操作器来执行此操作,以用于所有具有该语义的变量。(在Python中,我能想到的唯一方法是编写一个函数来执行转换,使用所需的格式,并返回一个字符串。) - James Kanzestd::dec
;你会将其重置为更改之前的任何内容。 (可以在自定义操作符的析构函数中完成此操作,或者通过使用保存格式的作用域对象的构造函数来实现,并在其析构函数中恢复它。) - James Kanze