2017-03-18 11 views
-1

파이썬 2 컴파일러의 "Dividing Sequences"에서 파이썬 3의 코드를 실행하려고했습니다. 그것은 올바르게 컴파일되지만 대답은 Python 3 컴파일러에 표시 될 때 필요하지 않습니다.파이썬 3 코드와 파이썬 2의 차이점은 무엇입니까?

파이썬 2 컴파일러에서 실행하기 위해 내 코드에서 어떤 변화를 줄 수 있습니까?

n = int(input()) 
ar = [] 
bestvals = [] 
best_stored = [] 
for x in range(n): 
    ar.append(int(input())) 
    best_stored.append(0) 

best_stored[0] = 1 

for i in range(n): 
    maxval = 1 
    for j in range(i): 
    if ar[i] % ar[j] == 0: 
     maxval = max(maxval,(best_stored[j])+1) 
    best_stored[i] = maxval 

print(max(best_stored)) 

입력은

9 
2 
3 
7 
8 
14 
39 
145 
76 
320 

이고 이것의 출력은 3 상 3 pyhton

+0

@ tamjd1 : 하나의 값을 가진'print'의 경우, 괄호는 아무 것도 변경하지 않습니다. 게다가'__future__ import print_function'을 파일의 맨 위에 추가하여 Py2/Py3 호환으로 유지할 수 있습니다. Py2에서 Py3'print'를 사용할 수 있습니다. – ShadowRanger

+1

재생할 수 없습니다. 이 코드는 Python 2에서 잘 돌아 간다. 개선 할 수있는 것들이 있지만, 파이썬 2에 주어진 것과 똑같이 작동합니다. – ShadowRanger

답변

1

변경 n = int(input())에서 n = int(raw_input())에 첫 행 하였다.

+0

실제로는 중요하지 않습니다. 그것은 좋은 습관이지만 Py2'input'은 합법적 인 int 값을 int로 평가하고 int() 포장은 중복되지만 동작을 변경하지는 않습니다. – ShadowRanger

0

이 코드는 파이썬 2에서 잘 실행해야하지만 n = int(input()) 파이썬 2에서 파이썬 2 input() 파이썬 3는 문자열 반면 숫자되면서 n = input()로 변경하고, raw_input() 할 수는 동일한 기능을 제공하는 input()