获取多个输入并在不使用数学的情况下检查它们是否是完美正方形

Getting Multiple Inputs and checking if they are Perfect squares or not without using math

def isPerfectSquare(n) :
 
    i = 1
    while(i * i<= n):
        if ((n % i == 0) and (n / i == i)):
            return True
        i = i + 1
    return False

lst=[]
n=int(input())
for i in range(0,n):
  ele=int(input("Enter: "))
  lst.append(ele)
for i in lst:
  isPerfectSquare(i)
  if (isPerfectSquare(n)):
    print("Perf")
  else:
    print("Not")

我是一名新的 python 程序员,所以我正在尝试不同的低级问题。我首先尝试使用 for 循环,但无法弄清楚如何使用多个输入来做到这一点。 我哪里做错了?当我输入一个完美的正方形时,它不起作用。

问题是 if (isPerfectSquare(n)): 您总是只是传递输入并检查它是否是完美正方形。您应该像这样传递列表的每个元素 if isPerfectSquare(i):

def isPerfectSquare(n):
    i = 1
    while i * i <= n:
        if (n % i == 0) and (n / i == i):
            return True
        i = i + 1
    return False


lst = []
n = int(input())
for i in range(0, n):
    ele = int(input("Enter: "))
    lst.append(ele)
for i in lst:
    if isPerfectSquare(i):
        print("Perf")
    else:
        print("Not")

输出:

3
Enter: 1
Enter: 4
Enter: 10
Perf
Perf
Not