2017-07-10 7 views
-3

こんにちはみんなを関数の戻り値を取り、別の関数でそれを使用して、私はこののpython:私はそれをしたいように、上記のコードが動作する

spam = '' 
def enterList (names): 
    newList = [] 
    while True: 
     names = raw_input('list a series of items and press blank when finished: ') 
     if names == '': 
      break 
    newList = newList + [names] 

    a = '' 
    finalText = '' 
    listOfStuff = [] 
    item = 0 
    for i in newList: 
     if item < len(newList)-2: 
      a = (i + ', ') 
      listOfStuff.append(a) 
      item +=1 
     elif item == len(newList)-2: 
      a = (i + ' and ') 
      listOfStuff.append(a) 
      item +=1 
     else: 
      a = i 
      listOfStuff.append(a) 
      break 
    finalText = finalText.join(listOfStuff) 
    return finalText 

print enterList(spam) 

ある1つの関数にすべてのものを置くことによって動作するように私のコードを持ってに。しかし、私は2つの別々の関数を持つことによって同じことをしようとしていました。私が持っていた問題は、関数の戻り値を取って次の関数で使うことができないということでした。

これは私が私が間違ってやってそれをこのように何をしているのかわからないんだけど、古いコード

spam = '' 

def enterList (names): 
    newList = [] 
    while True: 
     names = raw_input('list a series of items and press blank when finished: ') 
     if names == '': 
      break 
     newList = newList + [names] 

    return newList 

print enterList(spam) 

def newFunc(Addand): 
    a = '' 
    finalText = '' 
    listOfStuff = [] 
    item = 0 
    for i in spam: 
     if item < len(spam)-2: 
      a = (i + ', ') 
      listOfStuff.append(a) 
      item +=1 
     elif item == len(spam)-2: 
      a = (i + ' and ') 
      listOfStuff.append(a) 
      item +=1 
     else: 
      a = i 
      listOfStuff.append(a) 
      break 
    finalText = finalText.join(listOfStuff) 
    return finalText 


newFunc(spam) 

print newFunc (spam) 

です。 このアプローチでエラーを回避する助けをいただき、ありがとうございます。あなたの最初の関数で

+0

'print enterList(spam)'を 'spam = enterList(spam)'に変更しました。 –

+0

うわー、それが私の問題を解決しました。どうもありがとうございます。 – Shan

答えて

-1

第二の機能は、実際に呼び出されることはありませんので、それは働いていないreturn文

return newFunc(newlist) 

を作ります。

+0

あなたは間違っています。 'return' _ works_ちょうどその値は次の関数に渡されません(私はdownvoteしませんでした)。 –

+0

スクロールバーがわからないので、私はOPが2つの機能を1つしか使用しない – Ahmed

関連する問題