Python循环不合作

2024-09-22 16:38:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为给定的问题创建一个循环。我需要帮助,它没有按原样印刷。

Given positive integer num_insects, write a while loop that prints that number doubled without exceeding 100. Follow each number with a space.

Ex: If num_insects = 8, print:

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="")

即使循环设置为100后结束,此代码也会打印128号?为什么?


Tags: loopnumberthatintegerprintsnumgivenwrite
3条回答

哇!我真的有什么要补充的。当我使用上述代码时,我也得到了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

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

您可以传递一个以end =参数结尾的可选结果;尝试传递None' ',看看是否能得到您更喜欢的结果。

在打印出结果后,您需要乘以num_insects。您可以按照matt的回答将空字符串传递给end参数:

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

输出:

8 16 32 64 

相关问题 更多 >