我正在从python页面进行本教程,无论我多么努力,我都不明白这段代码的输出是16。 (不必说我在这里询问之前先用Google搜索(DuckDuckGo))。
class MyClass:
i = 12345
def f(self):
return 'hello world'
x = MyClass()
x.counter = 1
while x.counter < 10:
x.counter = x.counter * 2
print(x.counter)
这是“ Python教程” https://docs.python.org/3.7/tutorial/classes.html#class-objects
中的页面答案 0 :(得分:1)
这很简单,通过在乘法之前和之后的每次迭代过程中打印x.counter的值,我们可以获得x.counter的以下值:
class MyClass:
i = 12345
def f(self):
return 'hello world'
x = MyClass()
x.counter = 1
while x.counter < 10:
print('before', x.counter)
x.counter = x.counter * 2
print('after, x.counter)
print(x.counter)
before 1
after 2
before 2
after 4
before 4
after 8
before 8
after 16
16
我们看到x.counter的值在每次迭代中加倍。上次输入为8
,然后加倍以提供给我们16
。 while循环指定x.counter小于10时它将继续,现在达到16则将停止。