我不明白这个问题并感到困惑。谁能给我看?这是一本python书中的练习。只能使用循环和函数。并且根据问题,必须要求用户输入数字和宽度。
def format(number, width):
该函数返回前缀为 0 的数字的字符串。字符串的大小是宽度。例如,format(34, 4) 返回“0034”,format(34, 5) 返回“00034”。如果数字长于宽度,则函数返回数字的字符串表示形式。例如,format(34, 1) 返回“34”。
尝试:
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'