如何获得数字的中间5位数字

时间:2019-05-22 17:57:59

标签: python python-3.x

我正在做一个小项目,我实际上需要弄清楚数字的中间5位数字(例如123454321将返回34543)。如果数字是4位数字(例如1234),它将返回中间的两位数(对于1234,则为23)。如果数字是3位数字,它将返回中间数字(例如123将返回2),如果数字是1或2位数字,则代码将不接受输入。

我已经尝试过在线进行一些研究,但是除了"Middle-square method"之外没有找到其他任何东西,但是他们发现的implementation for python似乎没有用。

num = 730945296 #Random number for testing

num_len = len(str(num))
print(num*num) #debug 
print(str(num*num).zfill(num_len)) #debug
num = int(str(num*num).zfill(num_len)[round(num_len/4):round((num_len/4)*3)])


print(num)

是我对implementation for python的表示,但是如上所述,这似乎不起作用。

在这种情况下,输出为9452,但我期望为09452

我知道我没有做额外的检查,例如输出是否超过5位或输入多长时间,但我认为我应该集中精力首先获取中间数字。

1 个答案:

答案 0 :(得分:2)

提示::答案开头没有得到0的原因是,您将值存储为int。尝试使用字符串作为数字,问题将是小菜一碟。