파이썬에서 함수 안에 if 조건문 썼을 때 돌아가지 않는 이유...

조회수 2457회

이미지

위 코드는 잘 돌아갑니다. 여기서 choice==1을 했을 때 손님이 검색하려는 영화 제목이 movie 딕셔너리 안에 key값이 아닐 때 print('해당 영화는 없습니다.')기능을 추가하고 싶습니다. 이미지

그래서 위처럼 쓰면 빨간색 저 부분에서는 invalid syntax가 뜨고 제대로 돌아가질 않습니다. 닥터스트레인지로 붙여쓰면 함수가 search==input('')부분까지만 출력되고 그 뒷 부분은 출력되지 않습니다.

  • 대체 뭐가 문제일까요?
  • 파이썬 함수에서는 if 조건문을 쓰면 안되는 건가요?
  • 저 기능을 추가하려면 코딩을 대체 어떻게 해야 하는 걸까요?

참고로 저는 이번에 컴퓨터공학과에 입학하게 되어서 파이썬을 처음 배우는 중이에요!

1 답변

    1. 에러 메시지에서 어디에서 문제가 발생했는지, 어떤 에러가 발생했는지를 잘 읽어보아야 합니다. 문제가 해결되었을 때, 그냥 넘아가지 말고, 이전에 문제 상황일 때 나왔던 에러 메시지가 왜 나왔는지 이해하는 것이 중요합니다.
    2. search==닥터 스트레인지 에서 신택스 에러가 발생한 것입니다. 따옴표로 감싸진 "닥터 스트레인지"은 문자열이지만, 따옴표가 없으면, 인터프리터는 변수나 함수 이름으로 해석하려 합니다. 닥터라는 이름의 변수, 함수가 없고, 또, 변수와 함수이름 등을 그냥 빈칸으로 띄어 이어쓰는 문법은 없기 때문에 신택스에러가 발생한 것일 겁니다.
    3. 파이썬 함수에서 if 조건문 써도 됩니다.
    4. search in movie 또는 search in movie.keys() 로 하면 아마 될 겁니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)