Python 中的可变长度字符串重复

Variable length string duplication in Python

以下简短的 python 脚本:

var1 = '7f0000000000000000000000000000000000000000000000000000000000000002'

var2 = '01'

output = 'evm --code ' + var1 + var1 + var2 + ' run'

print(output)

能够生成以下字符串:

evm --code 7f00000000000000000000000000000000000000000000000000000000000000027f000000000000000000000000000000000000000000000000000000000000000201 run

但是,我想生成字符串,其中 var1 可以附加到输出字符串的最左侧以获得预先指定的(参数化)数字次。对应于每次我们将 var1 附加到最左侧,我想将 var2 附加到最右侧相同的次数。

所以以上面的输出字符串为基准,如果我们 select 3 作为我们的参数,我们新的 output 字符串应该呈现如下:

evm --debug --code 7f00000000000000000000000000000000000000000000000000000000000000027f00000000000000000000000000000000000000000000000000000000000000027f00000000000000000000000000000000000000000000000000000000000000027f00000000000000000000000000000000000000000000000000000000000000027f000000000000000000000000000000000000000000000000000000000000000201010101 run 

我如何控制这些字符串的复制,将它们附加到如上所述的带有变量的基本字符串?

您可以在字符串上使用乘数运算符,例如:

repeat = 3
output = 'evm --code ' + var1 * repeat + var2 * repeat + ' run'

在python中,你可以将一个字符串乘以一个整数来重复它给定的次数:

someString = "01"
someInt = 3
someString * someInt

将输出:

'010101'

知道这一点,您的问题应该很容易解决。例如:

output = "evm --code %s%s run" % (var1 * n, var2 * n)

其中n为正整数。

注意:上面,我使用了字符串格式,这在很多方面都比简单的连接更好(并且更不容易出错) .