2017-10-07 1 views
-1

私は以下のコードを対話モードで実行しているときに、望ましい出力を出しています。しかし、私は関数を呼び出すことによってそれを実行しようとしているとき、何も返されていません。なぜそれが起こっているのですか?私の関数は何も返されませんが、私は対話モードで実行しているときに戻ります。

def alt_ele(): 
    mylist=list(input("Enter the elements: ")) 
    newlist=[int(i) for i in mylist] 
    try: 
     for x in range(len(newlist)): 
      newlist.pop(0) 
      newlist.pop() 
    except IndexError: 
     pass 
+2

あなたは 'return'ステートメントを持っていません。関数から値を返すには、 'return'とvalueを記述する必要があります。 'return newlist.pop()' – Vinny

+1

質問を明確にしてください。 *あなたは何を返すと期待していますか?*。あなたの関数は '' None''を返します。入力をどのようにフォーマットする必要がありますか? '' 1 2 3 4''はスペースのためにValueErrorを発生させます。 '' 1234''は '' newlist = [1,2,3,4] ''を返します。 '' newlist''を返そうとすると、空のリストが得られます。 –

+0

入力を1234としたいのですが、出力が1423であることを期待しています。 –

答えて

1

はあなたのfunctionreturnステートメントを追加する必要があります。 interactiveモードでは、functionsの出力が変数に割り当てられていない場合、それらはprintedです。たとえば、次のように

>>> 3 + 5  //no variable assignment prints out the result 
8 

しかし、あなたはちょうど3 + 5pythonファイルの行を持っていた場合は、interactiveモードでなくなったとして、その後、8printedがないではないでしょうでしょう。

この同じロジックがfunctionに適用されます。あなたはnew_listからpoppedを印刷する値をしたい場合は、どちらかprintは、それらを直接それらのラインが読み変更することでできます。

print(new_list.pop(0)) 
print(new_list.pop()) 

か、functionの終わりにreturn文を追加することができます。私はこれが役に立てば幸い

は、しかし、私はあなたがreturn(例えばlistまたは単に最初pop())したいのか分からないので、私は本当にreturn文で助けることができません!

+0

ありがとうございました。私はPythonのノブです。私はポップが直接価値を返すという印象を受けました。助けてくれてありがとう。 –

+0

@SnehasishSahaあなたの歓迎は投票していただき、感謝の気持ちを表明してください**:)** –

関連する問題