为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2021-03-10 13:09:44
我不明白这个问题,很困惑。谁能告诉我?这是一本python书中的练习。只能使用循环和功能。并根据问题,必须要求用户输入数字和宽度。def format(number, width):该函数返回带有前缀0s的数字的字符串。字符串的大小就是宽度。例如,format(34,4)返回“ 0034”,而format(34,5)返回“ 00034”。如果数字长于宽度,则该函数返回数字的字符串表示形式。例如,format(34,1)返回“ 34”。
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

尝试:


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


查看完整回答
反对 回复 2021-03-30
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

我不太理解“仅可以使用循环和函数”的意思。由于您可以使用函数,因此您几乎可以在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'


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信