Python基础知识打印1到100

use*_*308 19 python

def gukan(count):
    while count!=100:
      print(count)
      count=count+1;
gukan(0)
Run Code Online (Sandbox Code Playgroud)

我的问题是:当我尝试增加3或9而不是1时,count=count+1我得到一个无限循环 - 为什么会这样?

Jon*_*nts 18

这里的答案已经指出,由于增加后指望它不等于正好 100,然后为准则不能满足其不断去(这可能是你想要<说的小于 100).

我只想补充一点,你应该真正关注Python的内置range函数,它从起始值生成一系列整数,直到(但不包括)另一个值,以及一个可选步骤 - 所以你可以从添加1或3进行调整或者一次9个......

0-100(但不包括100,默认值从0开始,步进1):

for number in range(100):
    print(number)
Run Code Online (Sandbox Code Playgroud)

0-100(但不包括并确保数字不超过100),步骤为3:

for number in range(0, 100, 3):
    print(number)
Run Code Online (Sandbox Code Playgroud)


Nig*_*nel 11

当你count = count + 1改为count = count + 3或者count = count + 9,count永远不会等于100.最好是99.这还不够.

你在这里得到的是无限循环的经典案例:count永远不会等于 100(当然,在某些时候它将大于100,但你的while循环不会检查这个条件)并且while循环继续上.

你想要的可能是:

while count < 100: # Or <=, if you feel like printing a hundred.
Run Code Online (Sandbox Code Playgroud)

不:

while count != 0:  # Spaces around !=. Makes Guido van Rossum happy.
Run Code Online (Sandbox Code Playgroud)

现在循环将终止count >= 100.

看看Python 文档.

  • 啊,但如果OP确实使用了"+ 3"或"+ 9",那么循环将是无限的. (2认同)

小智 5

第一行定义了变量。第二行将其循环到 100,第三行将 a 加 1,第四行将 a 除以 3,如果没有余数 (0),它将打印该数字,否则将打印一个空行。

 a = (0)

for i in range(0,100):
     a = a + 1
if a % 3 == 0:
    print(a)
else:
    print("")
Run Code Online (Sandbox Code Playgroud)