在python中只打印前导零中的一个零

在python中只打印前导零中的一个零,python,leading-zero,Python,Leading Zero,我有以下任务,从输入中提取数字,将其扩展到12位,然后打印十亿、百万、千、百和单位。我已将数字拆分为字符串形式的相应部分。守则如下: num = input("Please enter a number: ") num = str(num) zero = num.zfill(12) billion = zero[0:3] million = zero[3:6] thousand = zero[6:9] hundred = zero[9:10] unit = zero[10

我有以下任务,从输入中提取数字,将其扩展到12位,然后打印十亿、百万、千、百和单位。我已将数字拆分为字符串形式的相应部分。守则如下:

num = input("Please enter a number: ")
num = str(num)

zero = num.zfill(12)

billion = zero[0:3]
million = zero[3:6]
thousand = zero[6:9]
hundred = zero[9:10]
unit = zero[10:]
假设数字是63380

预期产量

0 billion 0 million 63 thousand 3 hundred and 80
但我明白了

000 billion 000 million 063 thousand 3 hundred and 80

您可以像这样将
zero
字符串转换为
int()

num=input(“请输入一个数字:”)
num=str(num)
零=num.zfill(12)
十亿=整数(零[0:3])
百万=整数(零[3:6])
千=整数(零[6:9])
百=int(零[9:10])
单位=int(零[10:])
打印(十亿、十亿、百万、百万、千、千、百、百、百、千单位)
转换为int可以做到这一点。
3.7
3
'3'
3
000000000003
3
00000
0
。 它删除数字前面的许多零,并将字符串转换为int。

并通过丢弃它将浮点(如
3.7
)转换为int(到
3
)。

您可以使用字典来控制小数

num = 63380

dict = {
9:'billion',
6:'million',
3:'thousand',
2:'hundred',
0:' '
}
for key, item in dict.items():
    n=num//10**key
    print(n,item,end =' ') 
    num-=n*10**key
输出:

0 billion 0 million 63 thousand 3 hundred 80

家庭作业问题是用文字打印数字,还是像标题所暗示的那样用一个前导零打印数字?…如果是家庭作业问题,你能告诉我们你在发布之前已经付出了多少努力吗?你可以将你的
000
字符串转换回
int
int(十亿)
@TimBiegeleisen是的,这是一个家庭作业问题。问题是将用户输入打印成测量段:十亿、百万、千、一百个单位。我已经试过上面的代码,这就是我能达到的程度。@stolenmove如果测量段没有数字,那么输出应该只包含一个零。例如,用户输入是1999年,那么我应该打印出0十亿,0百万,1千,9百和99。希望我能解释,这很有效。但你能解释一下为什么我要把它转换成整数吗?明白。非常感谢。我很高兴它帮助了你