setfill和setw在Python中的等效方法是什么?

7

我目前正在将一些C++代码移植到Python,但是我不知道如何翻译这个:

print  std::setfill('0') << std::setw(2) << std::hex << myVar << std::dec << " "

我该如何将 std::setfill('0')std::setw(2) 翻译成 Python?


1
你看起来并没有很努力地去寻找...'<any_char>'*n 返回任意字符 n 次。 "%x"%myVar 将 myVar 格式化为十六进制。 - Ben
1
但是,谁会一开始就写出这样的东西呢?如果myVar有一个语义,需要这样的格式,你可以编写一个单一的操作器来执行此操作,以用于所有具有该语义的变量。(在Python中,我能想到的唯一方法是编写一个函数来执行转换,使用所需的格式,并返回一个字符串。) - James Kanze
1
当然,你不会将格式返回到 std::dec;你会将其重置为更改之前的任何内容。 (可以在自定义操作符的析构函数中完成此操作,或者通过使用保存格式的作用域对象的构造函数来实现,并在其析构函数中恢复它。) - James Kanze
查找 ljust 和 rjust。 - Viswa
2个回答

4

当然,你需要将这个代码块封装在一个函数中,这样格式说明符只会在程序中出现一次,并且带有逻辑语义标签。 - James Kanze

3
我来到这里是寻找与 std::setw(n) 相对应的东西。好奇的话,我使用了 '{:>n}'.format(nbr)
例子:
In [13]: '{:>2}'.format(1)
Out[13]: ' 1'
In [14]: '{:>2}'.format(10)
Out[14]: '10'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接