关于将整数转换为以零为首的数字,有许多问题,但我找不到任何解决方案来增加已经由零领导的字符串。
Python已经将以零为首的数字转换为普通整数:
>>> 0001
1
>>> int(0001)
1
考虑到这一点,每当我将两个数字相加为零时,我就得到一个正常整数:
>>> 0001 + 0001
2
>>> int('0001') + int('0001')
2
但是,我想找出的是,例如,当将两个0002
相加时,如何得到像0001
这样的和。
显然,它应该作为字符串类型打印出来,因为Python将以零为首的数字转换为普通整数。
也请考虑这样的一些情况:
x = 0001
如何在不指定零的情况下将x增量为1?
有什么毕达通的方法吗?解决方案适用于所有以零为首的数字情况(例如,'0001' + '0001' == '0002' and '01' + '01' == '02'
)。
发布于 2017-02-15 02:13:21
如果字符串具有相同的长度,则可以使用其中一个操作数的长度对输出应用zfill
:
def add(x, y) -> str: # remove type hint for Python 2
return str(int(x) + int(y)).zfill(len(x))
print(add('0001', '0025'))
# '0026'
要容纳长度不匹配的字符串输入,可以将max(len(x), len(y))
传递给zfill
,以便使用较长字符串的长度将输出变为零填充:
def add(x, y) -> str:
return str(int(x) + int(y)).zfill(max(len(x), len(y)))
print(add('0001', '25'))
# 0026
发布于 2017-02-15 02:12:54
这个怎么样:
x = '00001'
y = '00002'
print '{0:0{width}}'.format(int(x)+int(y), width=max(len(x), len(y)))
打印00003
https://stackoverflow.com/questions/42246263
复制相似问题