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
- 물리 계층 (Physical layer)
- 데이터 링크 계층 (Data Link layer)
- 네트워크 계층 (Network layer)
- 전송 계층 (Transport layer)
- 세션 계층 (Session layer)
- 표현 계층 (Presentation layer)
- 응용 계층 (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회 이상 누적되면 프로그램이 종료된다.
반응형
'Programming > Python' 카테고리의 다른 글
좋은 모듈, 나쁜 모듈 (결합도와 응집도 / 시간적, 우연적 응집도의 차이) (0) | 2024.04.08 |
---|---|
Random Library and Methods (0) | 2023.12.01 |