尝试:def format(number, width): numstr = str(number) result = '' numstrlen = len(numstr) for i in range(width - numstrlen): result += '0' result += numstr return result我本来只是做减法运算,但是您说它必须是一个循环。如果您不能使用len:def format(number, width): numstr = str(number) result = '' numstrlen = 0 for c in numstr: numstrlen += 1 for i in range(width - numstrlen): result += '0' result += numstr return result
我不太理解“仅可以使用循环和函数”的意思。由于您可以使用函数,因此您几乎可以在Python中使用任何东西。最简单的解决方案:def format(n,w): s = str(n) return ('0' * w + s)[-max(w,len(s)):]>>> format(34,4)'0034'或者您可以使用循环:def format(n,w): s = str(n) result = '' for i in range(w - len(s)): result += '0' return result + s>>> format(34,1)'34'>>> format(34,4)'0034'