Python帮助:找出这个程序可用于

时间:2017-04-17 01:07:02

标签: python-3.x

所以我有一个python测试即将出现(没有硬核,这是一个初学者类型的测试),其中一个问题是它的目的是什么:

something = 0
nothing = 0
factor = 1

nothing = int(input("Enter Something:"))

while (nothing > 0):
    if ((nothing % 10) == 1):
        something = something + factor
    nothing = nothing / 10
    factor = factor * 2

print("The something is: ", something)

我一直试图想出答案,但我无处可去。你们觉得怎么样?

另外,我想知道它打印的次数:

for i in range(10):
    for j in range(i):
        print(i * j)

答案是45(非常肯定),但我想知道原因。

1 个答案:

答案 0 :(得分:0)

第一篇文章我似乎无法理解。

something = 0
nothing = 0
factor = 1

nothing = int(raw_input("Enter Something:"))

while (nothing > 0):
    if ((nothing % 10) == 1):
        something = something + factor
    nothing = nothing / 10
    factor = factor * 2

print('Somtheing is {}'.format(something))

如果nothing是10的倍数,那么something会增加1; nothing除以10;它变成小数,永远不会超过10的倍数,所以没有其他事情发生。

如果nothing是10倍乘以10倍的幂,则something增加10乘以10的倍数乘以10的倍数。然后它减少到第一种情况。

对于nothing的任何其他情况,something将为0,因为nothing永远不会超过10的倍数。

理论上这个循环会永远运行,但由于计算机无法存储极小的值,因此重复分割在一段时间后会产生0。

第二篇文章相当简单。

for i in range(10)
    for j in range(i):
        print(i * j)

这确实print 45次。当i = 0内循环运行0次时;当i = 1内循环运行一次时;当i = 2内循环运行两次时; ......当i = 9内循环运行9次时。请注意,range(n) 最多但不等于 n。所以它运行9 + 8 + 7 + ... + 2 + 1 + 0 = 45次。