所以我有一个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(非常肯定),但我想知道原因。
答案 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次。