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
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