-1

我在 python 中学习课程,当我阅读文档时,我发现了这个我不理解的例子:

class MyClass:
    """A simple example class"""
    def __init__(self):
        self.data = []
        i = 12345
    def f(self):
        return 'hello world'

那么如果我们分配:

x = MyClass()
x.counter = 1

现在如果我们实现 while 循环:

while x.counter < 10:
       x.counter = x.counter * 2

所以 x.counter 的值将是:

16

而例如,如果我们有一个变量 y :

y = 1
while y < 1 :
   y = y *2

那么如果我们寻找 y 的值,我们会找到它

1

所以我不知道 counter 的值是如何变成 16 的。

谢谢

4

2 回答 2

3

这实际上与课程没有任何关系,但这就是正在发生的事情......

x == 1 # x is less than 10, so it is doubled
x == 2 # x is less than 10, so it is doubled
x == 4 # x is less than 10, so it is doubled
x == 8 # x is less than 10, so it is doubled
x == 16 # now x is greater than 10, so it is not doubled again
于 2012-11-20T17:07:08.587 回答
1
y = 1
while y < 1 :
   y = y *2

如果您想要相同的输出,请始终提供相同的输入。

您会看到您正在检查y < 1哪些在第一次运行时会失败。做到这一点y < 10,就像你的x.counter情况一样。

y = 1
while y < 10:
   y = y *2
于 2012-11-20T16:59:10.387 回答