运行结果及报错内容,如何解决?

遇到一个很不理解的问题
for (nub,lat) in [(1024*1024*1024,'GB'),(1024*1024,'MB'),(1024,'KB')]:
    if number >= nub:    #大于等于1KB
        return "%.2f %s" %(number/nub,lat)
    elif number ==1024:
        return "1 KB"
    else:
        byte = "%.2f" %(number or 0) +" Byte"
        print(byte)
return byte
运行结果(nubmer=100000)

100000.00 Byte
100000.00 Byte
97.66 KB

我的解答思路和尝试过的方法

按顺序运行不应该是大于1024然后10241024然后10241024*1024这样比较吗,为什么这个else里面也会运行。如果我直接在else里面返回值就会变成不运行if语句。

我想要达到的结果

大家能否帮我理解理解。感谢!!

你第一次循环时,nub=1024 * 1024 * 1024,所以if和elif都不满足,自然执行else部分,输出信息了啊
else改为 elif number < 1024:

# 有什么问题吗,循环三次,每次if elif else 里总有一个要执行
第一次 1073741824 GB  执行else 
第二次 1048576 MB     执行else
第三次 1024 KB        执行if