핌이의 일상

Programming/Python

Python | 1. 번호 입력받고 인덱싱 값 출력하기

핌이 (Pimgrim) 2024. 2. 26. 20:09
def osi(user):
  osi7 = ['Physical(물리)', 'Datalink(데이터링크)', 'Network(네트워크)', 'Transport(전송)', 'Session(세션)', 'Presentation(표현)', 'Application(응용)']
  if 1 > user > 7:
    print("The OSI Model has only 7 layers.")
  else:
    print(osi7[user-1])

def execute():
  osi(int(input("Enter a number between 1 and 7: ")))
  print("The program has ended.")
  exit()

try:
  execute()

except ValueError:
  print("Please enter a valid number.")
  execute()

except IndexError:
  print("Please enter a valid number.")
  execute()

 

Open System Interconnection

 

  1. 물리 계층 (Physical layer)
  2. 데이터 링크 계층 (Data Link layer)
  3. 네트워크 계층 (Network layer)
  4. 전송 계층 (Transport layer)
  5. 세션 계층 (Session layer)
  6. 표현 계층 (Presentation layer)
  7. 응용 계층 (Application layer)

정수값 아니면 오류 알리고 3번 더 기회를 주는 걸로 바꿨다

그리고 계속 반복...

 

def osi(user):
  osi7 = ['Physical(물리)', 'Datalink(데이터링크)', 'Network(네트워크)', 'Transport(전송)', 'Session(세션)', 'Presentation(표현)', 'Application(응용)']
  if 1 <= user <= 7:
    print(osi7[user-1])


def execute():
    countError = 4
    while True:
        try:
            user_input = int(input("Enter a number between 1 and 7: "))
            osi(user_input)
            
        except ValueError:
            print("Please enter a valid number.")
            countError = countError-1
        if countError == 0:
            print("You have entered an invalid number 4 times. The program will now end.")
            break


execute()

 

 

내 친구는 내 코드를 이렇게 수정했다. 

 

def osi(user):
  osi7 = ['Physical(물리)', 'Datalink(데이터링크)', 'Network(네트워크)', 'Transport(전송)', 'Session(세션)', 'Presentation(표현)', 'Application(응용)']
  if 1 <= user <= 7:
    print(osi7[user-1])


def execute():
  countError = 4           

  while True:
      try:
          user_input = int(input("Enter a number between 1 and 7: "))
          if 1 <= user_input <= 7:
              osi(user_input)
          elif user_input < 1 or user_input > 7 and countError > 0:
              print("Please enter a valid number.")
              countError = countError - 1

      except ValueError:
          print("Please enter a valid number.")
          countError = countError-1
      if countError == 0:
          print("You have entered an invalid number 4 times. The program will now end.")
          break
        
execute()

 

유효한 입력에 대해서 횟수가 자유로워졌으며, 범위밖 정수, 기호, 문자 등의 오류를 모두 처리한다.

입력오류가 4회 이상 누적되면 프로그램이 종료된다. 

 

반응형