找到 while 循环给出的序列中的最大数字

问题描述 投票:0回答:4

我目前正在学习 Python,更具体地说,学习 while 循环是如何工作的。据我所知,这个循环可用于创建具有特定条件的数字序列。例如,

n=1

while n < 10:
    n = n*2
    print(n)

这给出了 2 到 16 的幂:

2
4
8
16

但是我想知道是否有一种方法可以让循环仅打印序列中的最大数字,在本例中为 16。这是我的尝试,

n=1
bigNumber = 0
while n <= 10:
    bigNumber = n
    n = n*2
    if n < bigNumber:
        print(bigNumber)

然而,这不起作用。有人可以指出错误是什么吗?

python loops if-statement while-loop
4个回答
0
投票

您的代码无法按预期工作,因为

if
语句的条件从未得到满足。就举个例子吧
n=4
。然后在循环中,您首先分配
bigNumber = 4
,然后将
n
增加到
8
。在这一点上,总是
n > bigNumber

获得正确答案的最简单方法是在循环后打印

n
(已在评论中提到),因为
n
始终递增。


0
投票

您可以通过两种方式做到这一点。

如果您只想打印最终值,您可以省略部分代码:

n=1

while n < 10:
    n = n*2

print(n)

如果您想保留所有值然后显示最高的值:

n=1
num_list = []

while n < 10:
    num_list.append(n)
    n = n*2

print(f'From the numbers {num_list} the highest is {max(num_list)}')

max()
函数旨在查找列表中的最高值。

输出应该是:

From the numbers [1, 2, 4, 8] the highest is 8

0
投票

print
while
循环结束后的数字。

n=1
bigNumber = 0
while n <= 10:
    bigNumber = n
    n = n*2
print(bigNumber)

0
投票

(还有一种选择,如果你告诉脚本打印出数字加1,它会告诉你158729然后停止)下面的脚本↓↓↓

i = 1 当我 < 9999999999: print(i) i += 1

如果这就是你所说的最大数字的意思,即使这个只是让脚本结束,但这也可能与你运行它的Python程序的版本或类型有关

© www.soinside.com 2019 - 2024. All rights reserved.