如果我有一个长度为L = 77的字符串,我想填充的长度是N = 10的倍数。我有兴趣计算所需的填充量。使用N - (L % N)
可以轻松完成此操作,但L % N
为零的情况除外。
我现在一直在使用以下内容:
pad = (N - (L % N)) % N
这似乎不太清晰,所以有时候我会用
pad = N - (L % N)
if pad == N:
pad = 0
对于这么简单的事情,使用三行代码似乎有点过分了。
或者,我可以找到k
的{{1}},但使用k * N >= L
似乎也有点矫枉过正。
我缺少一个更好的选择吗?也许某个地方有一个简单的功能?
答案 0 :(得分:3)
负L的模数可以做到。
pad = -1 * L % N
答案 1 :(得分:2)
这不够吗?
pad = (N - L) % N
答案 2 :(得分:1)
使用math.ceil
:
from math import ceil
def pad(l, n):
return n*ceil(l/n) - l
assert pad(59, 10) == 1
assert pad(60, 10) == 0
assert pad(61, 10) == 9
答案 3 :(得分:0)
我的意思是你不能简单地做
pad = N-L if N-L > 0 else 0
答案 4 :(得分:0)
使用tenary conditional operator:
0 if (L % N) == 0 else N - (L % N)