我如何制作一个程序,要求用户限制和

How do I make a program that asks the user for a limit and

我有这段代码要求用户输入一个限制,然后打印出小于或等于提供的限制的平方数序列。

n=int(input("Limit: "))
counter = 2
while counter <= n:
    a = counter*counter
    counter=a
    print(a)

这是我当前的代码,它应该像这样工作:

Max: 100
1
4
9
16
25
36
49
64
81
100

我卡住了,我该如何解决?谢谢!

您实际上并不是在计算连续的方块。您应该找到 counter 的平方,然后将 counter 增加一个

n=int(input("Limit: "))
counter = 1
sq = counter**2
while sq <= n:
    print(sq)
    counter += 1
    sq = counter**2

有趣的 itertools 解决方案:

from itertools import accumulate, count, takewhile

for i in takewhile(n.__gt__, accumulate(count(1, 2))):
    print(i)

首先,您需要从 1 开始 counter 变量,否则您将无法获得“1”作为平方值。

就打印其余值而言,您需要做 3 件事:

  1. 检查计数器的平方是否小于限制。
  2. 如果超过限制,打印counter * counter的结果。
  3. 计数器加 1 <-- 这很重要!

将计数器加 1,将允许您检查可能存在于指定限制以下的每个可能的方块。以下代码提供了一种与上面的伪代码相匹配的实现此目的的简单方法:

n=int(input("Limit: "))
counter = 1
while counter <= n:
    if counter * counter <= n:
        print(counter * counter)
    counter += 1

如果您有任何问题,请告诉我,我很乐意澄清任何仍然不明白的地方!