Python拆分小数为整数部分和小数部分

没有使用包

就是比如1234.567这样一个小数,拆分成整数部分1234和小数部分567分别输出

a = input()
num = 0
for i in range(len(a)):
    if a[i] != ".":
        num = num +1
    else:
        break
print(a[:num])
print(a[num+1:])

输出结果如图:

其实之前我有一个疑惑,就是最后两个print那里。结果后来发现还是对a[::]这类描述不太清楚。

Python不是顾头不顾尾嘛,所以a[:num]这种(假如就以我输入的1234.567为例),当num已经为4,进入第五个循环的时候,if判断出a[4]==".",所以走else直接退出循环,因而这时候num还是4。

又因为a[:num]表示的含义是按顺序从a里面的第一个数开始一直取到下标为num-1的数,即取a[0]到a[3],所以输出为1234;

而a[num+1:]的含义是按顺序从a里面下标为num+1的数开始一直取到最后一个数,即取a[5]到最后一个数a[7],所以输出为567(注意:小数点“.”也属于字符串中的一员,也拥有下标)

经验分享 程序员 微信小程序 职场和发展