파이썬 초보 : 리스트의 두 원소의 합을 테스트하는 함수
조회수 533회
리스트에서 서로 다른 두개 원소를 더해서 그 값이 K가 되면 1을 return하고 그렇지 않으면 -1을 return하는 함수인데요, K에 무슨값을 넣어도 -1만 리턴되네요. 어딜고쳐야 제대로 돌아갈까요 이거
def doublek(myl,k):
for i in range(len(myl)):
for j in range(len(myl)-1):
if myl[i]+myl[j]==K:
return(1)
else:
return(-1)
myl=[1,3,5,7,9,11,21]
print(doublek(myl,K)). #여기서 K에 뭘 넣어도 -1이 나옵니다..
핸드폰으로 작성한거라 들여쓰기가 제대로 들어갔는지는 모르겠습니다만, 실제 코드에선 들여쓰기 맞게 넣었으니 어디를 고쳐야 저게 제대로 돌아갈지 알려주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
if myl[i]+myl[j]==K:
-->if myl[i]+myl[j]==k:
- def doublek(myl,K)인데 대문자로 안썼네요 지금보니..하지만 실제코드에선 제대로 K로 다 맞춰져 있거든요..어디가문젠지 감을 못잡겠네요.. 알 수 없는 사용자 2021.1.28 10:01
- vscode 를 사용하고 있다면, 브레이크 포인트를 걸고, 디버깅모드로 실행하여 문제를 찾아보세요. 디버깅모드로 실행하여 버그를 찾아보는 스킬 매우 유용합니다. 그리고, 컴퓨터가 내놓은 결과 앞에 겸손해야 합니다. 컴퓨터는 거짓말을 하지 않습니다. nowp 2021.1.28 10:35
-
그냥 코드를 잘못 짜셨는데요.
def doublek(myl,K): for i in range(len(myl)): # i = 0 for j in range(len(myl)-1): # j = 0 if myl[i]+myl[j]==K: # 1+1=2이기때문에 k가 2가 아니라면 (-1) 리턴하고 함수 종료 return(1) else: return(-1) myl=[1,3,5,7,9,11,21] print(doublek(myl,K))
댓글 입력