我如何制作一个要求用户提供限制的程序,

时间:2018-08-15 21:49:08

标签: python-3.x numbers square-root

我得到了这段代码,要求用户提供限制,然后打印出小于或等于所提供限制的平方数序列。

tidyr

这是我当前的代码,它的工作原理如下:

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

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

2 个答案:

答案 0 :(得分:0)

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

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 :(得分:0)

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

关于打印其余值,您将需要做三件事:

  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

如果您有任何疑问,请告诉我,我们很高兴澄清所有仍然没有意义的内容!