SyntaxError:无效语法11,7,\ t \ t \ t \ t \ t \ t \ PHP \ n

时间:2015-08-31 23:29:44

标签: python

我对python不太熟练。我在练习编码中有这个代码。由于这是一个高尔夫代码问题,我想尝试python,因为我对它有一些了解。 这是我的程序

Hack sequence of IndiaHacks-2014 if given as below
Hi = 2014*Hi-1 + 69*Hi-2 for (i>2)
Hi = 1 for (i<=2)

Given n, you need to find nth term of Hack sequence 

我使用了以下代码

T = input()
for i in range(T):
N = int(input())
if N <= 2:
    print 1
else :
    a = [1,1]
    j=2
    while j < N :
        a.append((2014 * a[j-1]) + (69 * a[j-2]))
        j++
    print a[N-1]

但我收到以下错误

SyntaxError:
invalid syntax
11, 7, \t\t\tj++\n

任何人都可以告诉我这段代码有什么问题,为什么我会收到这个错误?

2 个答案:

答案 0 :(得分:2)

使用j += 1代替j++。 python中没有++运算符。

在这种情况下,或者只是不使用手动递增的循环变量:

T = input()
# I'm not sure about this part of your code:
# (indentation and the expected value of T)
for i in range(T):
N = int(input())
# To solve this problem you don't have to populate an array,
# you always need only the last two items:
prev2, prev1 = 1, 1
# We could omit this "if" check because the range(N-2) expression
# generates nothing when the input parameter is zero or less,
# that is: when N <= 2.
if N > 2:
    # Note: in case of python3 use range(), in case of python2 use xrange()
    for _ in range(N-2):
        new = (2014 * prev1) + (69 * prev2)
        prev2, prev1 = prev1, new
print prev1

要解决此问题,您不需要数组,但即使您需要数组,也可以使用j2N-1运行for j in range(2, N):循环变量。请注意,在python中,您只需使用array[-1]array[-2]来处理数组的最后两项,而不是计算绝对索引(如array[N-1])。 Python数组可以使用相对于数组末尾的负数进行索引。

答案 1 :(得分:0)

python中没有j++。使用j += 1