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中的−是横线,不是减号-