关于#list#的问题,如何解决?(语言-python)

问题遇到的现象和发生背景

Write a function that returns a list of numbers, such that 𝑥𝑖=(𝑖−2)2−4 , for 1≤𝑖≤𝑛 . Make sure it handles the case where 𝑛<1 or 𝑛 is not an integer by raising a ValueError.

问题相关代码,请勿粘贴截图

def parabola(n):

运行结果及报错内容

File "", line 5
xi=(i−2)**2−4
^
SyntaxError: invalid character in identifier

我的解答思路和尝试过的方法

def parabola(n):
xi=[]
if n>=1 and n==int:
for i in range(1,n+1,1):
xi=(i−2)**2−4
return list.append(xi)
else:
raise ValueError


def parabola(n):
    xi=[]
    if n>1 and n<0xffffffff:
        for i in range(1,n+1,1):
          xi.append((i-2)**2-4)
        return xi
    else:
        raise ValueError

n = int(input())
print(parabola(n))
def parabola(n):
    xi=[]
    if type(n) == int and n>=1:
        for i in range(1,n+1,1):
            x=(i-2)**2-4
            xi.append(x)
        return xi
    else:
        raise ValueError

if n>=1 and n==int:
for i in range(1,n+1,1):
xi=(i−2)**2−4
xi是列表,应该在循环中把(i−2)**2−4添加进列表,代码为xi.append((i−2)**2−4)
另外,n==int不会成立,int是类,n是整数,这样判断不了n是不是整数,可能你是想写n==int(n)

应该是这样的:

def parabola(n):
    xi=[]
    for i in range(1,n+1,1):
        if n>=1 and isinstance(n, int):
            xi.append((i-2)**2-4)
        else:
            raise ValueError
    return xi


n = int(input())
print(parabola(n))


报错原因是xi=(i−2)**2−4中的−是横线,不是减号-


可以查看手册:python-Python 语言服务 中的内容