Python循环不合作

时间:2016-09-22 22:18:29

标签: python

我试图为给定的问题创建一个循环。我需要帮助;它没有以应有的方式打印。

  

给定正整数num_insects,写一个打印的while循环   这个数字加倍而不超过100.用a表示每个数字   空间。

     

例如:如果num_insects = 8,请打印:

8 16 32 64

这是我拥有的

num_insects = 8 # Must be >= 1

print(num_insects, '', end='')

while num_insects <= 100 :

     num_insects = num_insects * 2

     print(num_insects,'', end="")

此代码打印数字128,即使循环设置为100后结束?那是为什么?

4 个答案:

答案 0 :(得分:3)

打印结果后,您希望乘以num_insects。您可以将空字符串传递给end参数,如matt的答案中所述:

num_insects = 8
while num_insects <= 100:        
  print(num_insects,'', end="")
  num_insects = num_insects * 2
print("") # newline

输出:

8 16 32 64 

答案 1 :(得分:2)

print函数隐式添加换行符: https://docs.python.org/2/library/functions.html#print

您可以使用end =参数传递替代结尾;尝试传递None' ',看看是否能让您获得更好的结果。

答案 2 :(得分:1)

这就是您所需要的,而无需添加太多内容,但也可以按照需要的方式打印出来。

num_insects = 8 # Must be >= 1

while num_insects <= 100:
    print(num_insects, end=' ')
    num_insects = num_insects * 2

答案 3 :(得分:0)

哇!我实际上有一些东西需要补充。当我使用上面的代码时,我也得到了答案128,所以我做的是使用break命令。这是我使用的代码,它似乎有效:

    num_insects = 8 # Must be >= 1
    print(num_insects, end=' ')
    while num_insects < 100:
        num_insects = num_insects * 2
        if num_insects <= 100:
            print(num_insects, end=' ')
        else:
            break