2015-12-09 6 views
0

У меня есть небольшой код в Python, который выглядит следующим образом:SyntaxError: неверный синтаксис - Python 3.5

import sys 
def _158a(): 
    n, k = map(int, sys.stdin.readline().split()) 
    data = input().split() 
    a=[] 
    for i in range(n): 
     a.append(int(data[i])) 
    ans=0 
    for i in range(n): 
     if a[i]>=a[k-1] and a[i]: 
      ans+=1 
    return ans 

res = _158a() 
print(res) 

с вводом с клавиатуры:

3 3 
1 2 3 

Когда я запускаю код с выше входом, я получил ошибку:

Traceback (most recent call last): 
    File "/Users/tranhieu/Desktop/Python/158A.py", line 14, in <module> 
    res = _158a() 
    File "/Users/tranhieu/Desktop/Python/158A.py", line 4, in _158a 
    data = input().split() 
    File "<string>", line 1 
    1 2 3 
    ^
SyntaxError: invalid syntax 
Process finished with exit code 1 

Помогите мне исправить эту ошибку?

+1

Это работает для меня. Я не могу воспроизвести это. –

+9

Вы не используете Python 3, вы используете Python 2, где 'input' работает' eval'. –

+0

Попробуйте добавить 'print (sys.version_info)' перед этой строкой и сообщите нам, что вы получаете. – shuttle87

ответ

2

Вы должны использовать raw_input() вместо input(), так как в Python 2.x input() пытается проанализировать ввод. В Python 3.x input() просто возвращает строку, такую ​​как raw_input() в Python 2.x.

+0

Спасибо. Я допустил ошибку. Я запускаю свой код в Python 2.7.1. Он работает в Python 3.5. –