猿问

返回带有前缀0s的数字的字符串

我不明白这个问题,很困惑。谁能告诉我?这是一本python书中的练习。只能使用循环和功能。并根据问题,必须要求用户输入数字和宽度。

def format(number, width):

该函数返回带有前缀0s的数字的字符串。字符串的大小就是宽度。例如,format(34,4)返回“ 0034”,而format(34,5)返回“ 00034”。如果数字长于宽度,则该函数返回数字的字符串表示形式。例如,format(34,1)返回“ 34”。


凤凰求蛊
浏览 147回答 2
2回答

慕森卡

尝试: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'
随时随地看视频慕课网APP

相关分类

Python
我要回答