2017-12-23 19 views
-1

初心者のpythonプログラマーとして、私はいくつかの演習を行っていますが、なぜこのコードが私にとってうまくいかないのか分かりません。重複したコードのデバッグを取り除く

今私の運動はこれです:

が与えられたリストからすべての重複を削除し、元の順序を維持しながら、リストとして残りの要素を返しますremoveDuplicates(somelist)という名前の関数を定義し、テストします。また、指定されたコマンドライン引数に対してremoveDuplicates関数を呼び出してmain()関数を定義し、結果のリストを出力します。

そしてここで、これまでに私のコードです:

import sys 

def main(): 
    userInput = int(input("")) 
    removeDuplicates(somelist) 
    print (unique) 

def removeDuplicates(userInput): 
    duplicate = set() 
    unique = [] 
    for x in userInput: 
     if x not in duplicate: 
      unique.append(x) 
      duplicate.add(x) 

    print (unique) 

def removeDuplicates(somelist): 
    duplicate = set() 
    unique = [] 
    for line in sys.stdin: 
     line = line.rstrip() 
     if x not in sys.stdin: 
      unique.append(x) 
      duplicate.add(x) 

    return unique 

if __name__ =='__main__': 
    main() 

そして私は関係なく、私は何をすべきかのエラーコードを取得していない保ちます。このコードのエラーコードです:あなたはsomelist宣言されていない

Traceback (most recent call last): 
File "removeDuplicates.py", line 31, in <module> 
main() 
File "removeDuplicates.py", line 5, in main 
removeDuplicates(somelist) 
NameError: name 'somelist' is not defined` 
+0

インデントを修正できますか?ポストされたコードは、構文/インデントエラーをスローします。 – MSeifert

+0

誤った字下げによって構文エラーが発生しましたか?私はこの質問が "再現不可能な、またはタイプミス"として閉じられる必要があるのだろうかと思います。 – halfer

答えて

1

、それは

...... 
userInput = int(input("")) 
removeDuplicates(userInput) 
...... 
0

、このようなことがあり、このコードは単純に一意の値のリストを印刷します。

def main(): 
    userInput = input("Enter an integers, separated by spaces(' '):").split() 
    unique = removeDuplicates(userInput) 
    print(unique) 

def removeDuplicates(userInput): 
    unique = [] 
    for i in userInput: 
     if i not in unique: 
      unique.append(i) 
    return unique 

if __name__ =='__main__': 
    main() 

お手伝い願います!

+0

しかし、sysモジュールをインポートする必要はありません。 –

+0

変更内容とその理由を説明するためにこの回答を編集しますか?それは将来の読者にとって有益かもしれません。将来の読者は、あなたの戦略が何であったかをすぐには見ないでしょう。 – halfer

関連する問題