2017-03-18 9 views
-1

私はpython 3のコードをPython 2コンパイラの "Dividing Sequences"で実行しようとしています。それは正しくコンパイルされますが、Python 3コンパイラに表示されているので、答えが必要ではありません。私のpython 3のコードとpython 2の違いは何ですか?

Python 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 

であり、このため出力がpyhton 3に3

+0

@ tamjd1:単一の値を持つ 'print'の場合、括弧は何も変更しません。さらに、 '__future__ import print_function'をファイルの先頭に追加することで、Py2/Py3との互換性を保つことができ、Py2上でPy3' print'を使うことができます。 – ShadowRanger

+1

再生できません。このコードはPython 2でうまく動作します。あなたが改善できることがありますが、それはPython 2で与えられたとおりに動作します。 – ShadowRanger

答えて

1

変更n = int(input())からn = int(raw_input())の最初の行でした。このコードは、Python 2でうまく実行する必要

+0

それは実際には問題ではありません。それはよい習慣ですが、Py2の 'input'は' int'値を 'int'に '評価'し、' int() 'は重複しますが、動作を変更しません。 – ShadowRanger

0

しかしパイソン3に、それは文字列のためのものであるのに対し、Pythonの2 input()は数字のためだったとしてn = int(input())は、n = input()に変更することができる、とPython 2におけるraw_input()input()同じ機能を提供しました

関連する問題