함수실행

조회수 435회
a = float(input("소요량을 입력하세요: "))

c = float(input("환산계수를 입력하세요: "))

def ZEB():

    n = print(a * c) 

    if n < 80:
        print(" 등급은 A 입니다.")

    elif 80 <= n < 140:
        print("등급은 B 입니다.")

    elif n >= 140:
        print("조건에 맞지 않습니다.")

    else:

라고 코드를 짰는데 a와 c까지는 계산이 되는데 그 다음 함수 부분부터 실행이 되지 않습니다. 오류가 뜨는 것은 아닌데 Remote Python engine is active 밖에 뜨지 않습니다. 혹시 제가 무엇을 잘못했는지, 어느 부분을 놓쳤는지 알려주실 수 있을까요 ?

2 답변

  • "Remote Python engine is active" 오류에 대해서는 잘 모르겠고 문법적으로만 검사해 보겠습니다.

        # 문법 틀림
        # 굳이 할거라면 elif 80 <= n and n < 140 형태로 써야 함
        elif 80 <= n < 140:
            print("등급은 B 입니다.")
    
        elif n >= 140:
            print("조건에 맞지 않습니다.")
    
        else:
            # 여기서 뭔가 처리가 있어야 하는데 없으니까 문제가 생기는 것일 수 있음
    

    위 코드를 아래 코드로 교체하고 다시 해보시겠어요?

        # 그나저나 여기서 n >= 80 체크는 불필요
        # (이 부분이 실행된다는 건 n < 80이 아니라는 뜻임 그게 elif 임)
        elif n < 140:
            print("등급은 B 입니다.")
    
        # 같은 원리로 n >= 140을 확인할 필요가 없음
        # n을 검사하는 임계값이 2개뿐이므로 (80, 140) '그밖의 모든 경우' 개념으로 처리 가능
        else:
            # else 블록 아래에 뭔가 처리를 넣어준다
            # 이걸로 문제가 해결되면 다행
            print("조건에 맞지 않습니다.")
    
    • 교체하고 하였는데 실행이 되지 않습니다 소요량을 입력하세요: 100.5 환산계수를 입력하세요: 2.75 >>> 라고 a와 c까지만 실행이 됩니다. a에 100.5라는 값과 c에 2.75라는 값을 넣을 건데 실수라서 문제가 되는걸까요? 알 수 없는 사용자 2021.6.16 13:52
    • @j4826: 함수를 정의만하고, 호출하는 부분의 코드가 없는데 이것이 문제일까요? nowp 2021.6.16 14:50
  • a = float(input("소요량을 입력하세요: "))
    
    c = float(input("환산계수를 입력하세요: "))
    
    def ZEB():
    
        n = a * c
        print(n)
    
        if n < 80:
            print(" 등급은 A 입니다.")
    
        elif 80 <= n < 140:
            print("등급은 B 입니다.")
    
        elif n >= 140:
            print("조건에 맞지 않습니다.")
    
    ZEB()
    

    print(a*c)는 int가 아니라 NoneType이므로 if로 비교가 안됩니다. 따라서, 위와 같이 a*c를 n에 대입해 주시면 해결이 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)