2014-12-02 3 views
1

나는 다음과 같은 작동하지 않는 이유에 대해 확실하지 오전 :문자열에 return 문을 사용하려면 어떻게해야합니까? - 파이썬

def main(): 
    userInputs() 
    print(firstColour) 

def userInputs(): 
    validColours = ['red', 'green', 'blue', 'yellow', 'magenta','cyan'] 
    while True: 
     firstColour = input('Enter the 1st colour: ') 
     secondColour = input('Enter the 2nd colour: ') 
     thirdColour = input('Enter the 3rd colour: ') 
     fourthColour = input('Enter the 4th colour: ') 
     if firstColour in validColours: 
      if secondColour in validColours: 
       if thirdColour in validColours: 
        if fourthColour in validColours: 
         break 
     else: 
      print('Invalid colours.Enter the colours again between red, green, blue, yellow, magenta, cyan') 
     return firstColour, secondColour, thirdColour, fourthColour 

나는 내가 메인 함수를 호출하면 나는 firstColour로 입력 무엇이든, 그것은 인쇄 것이라고 생각?

+0

print (firstcolor) befo 다시 깨기 – Hackaholic

+0

나는 그것을 다른 것으로 사용할 계획이므로 내 userInput 함수에서 인쇄 할 필요없이 인쇄해야한다. 난 그냥 여기에 내 문제를 단순화했습니다 – Konan

+0

다음 firstColor를 반환하거나 사실을 반환 – Hackaholic

답변

3

첫 번째 색상을 인쇄 할 경우, 다음 사항을 확인하시기 바랍니다

def main(): 
    firstColour, secondColour, thirdColour, fourthColour = userInputs() 
    print(firstColour) 

당신이 함수에 파이썬에서 여러 값을 반환 할 때, 값 목록 간단히 말하자면이다 "튜플"라는 뭐죠로 팩. 그들을 사용하려면 "포장을 풀어야"합니다.

또한 userInputs 함수에 논리 오류가있는 것으로 보입니다. 반환 함수가 너무 많이 들여 쓰기 때문에 다시 시도하는 대신 첫 번째 시도 후에 항상 반환됩니다. 당신은이 같은 뭔가 위의 교체 4 개 변수를 반환하지만, 그들에게

userInputs() 

를 사용하지 않는

return firstColour, secondColour, thirdColour, fourthColour 

을 :

def userInputs(): 
    validColours = ['red', 'green', 'blue', 'yellow', 'magenta','cyan'] 
    while True: 
     firstColour = input('Enter the 1st colour: ') 
     secondColour = input('Enter the 2nd colour: ') 
     thirdColour = input('Enter the 3rd colour: ') 
     fourthColour = input('Enter the 4th colour: ') 
     if firstColour in validColours: 
      if secondColour in validColours: 
       if thirdColour in validColours: 
        if fourthColour in validColours: 
         break 
     else: 
      print('Invalid colours.Enter the colours again between red, green, blue, yellow, magenta, cyan') 
    return firstColour, secondColour, thirdColour, fourthColour 
0

당신은 당신이 반환 값을 사용하고 있지 않을 :

firstColour, secondColour, thirdColour, fourthColour = userInputs() 
관련 문제