-
파이썬 - string 내용물 검사 // Error 와 false 차이문제풀이/PYTHON 2024. 4. 19. 19:23
코딩테스트 연습 - 문자열 다루기 기본 | 프로그래머스 스쿨 (programmers.co.kr)
#기존코드 def solution(s): if len(s) == 4 or len(s) ==6 : try: sum(s)>=0 return True except TypeError: return False else : return False #예시 #s = 'a234' , '1234'
def solution(s): if len(s) == 4 or len(s) ==6 : try: int(s) return True except : #ValueError return False return False
본 본인의 답안은 gpt의 첨삭을 받았다는 것을 인증합니다
사유 : int(s) 말고 sum(s)를 사용하려고 함.
근거 : sum(s)>=0 return True 가 왜 불가능한지 이해를 못함
해설 :
이 함수는 문자열 s가 길이가 4 또는 6이고 숫자로만 이루어져 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 하지만 이 코드에는 몇 가지 문제가 있습니다.
- sum() 함수는 숫자 리스트의 합을 계산하는 함수입니다. 그러나 여기서 s는 문자열이므로 sum() 함수에 전달할 수 없습니다. 따라서 TypeError가 발생할 것입니다.
- try 블록에서 return 문을 사용하고 있습니다. 만약 try 블록 내에서 예외가 발생하고 except 블록으로 이동한다면, 해당 예외가 발생하더라도 return 문이 실행되어 함수가 종료될 것입니다. 따라서 except 블록에 있는 return False는 필요하지 않습니다.
문제가 있어도 항상 return true만 발생한다는것
false로 처리되는것은 오직 4,6의 길이를 가지지 않은 s 대상이라는 것.
Error 와 false의 차이를 알아야 해결되는 문제
- 에러(Error): 에러는 프로그램 실행 중에 발생하는 문제를 가리킵니다. 이는 문법 오류(Syntax Error)나 런타임 오류(Runtime Error)일 수 있습니다. 문법 오류는 코드가 파이썬 구문 규칙에 어긋나는 경우에 발생하며, 코드를 실행하기 전에 발생합니다. 런타임 오류는 프로그램이 실행되는 동안 발생하며, 예를 들어 잘못된 변수 참조, 0으로 나누기 등이 있습니다. 에러가 발생하면 파이썬 인터프리터가 해당 오류 메시지와 함께 프로그램을 중단시킵니다.
- False: False는 불리언(Boolean) 데이터 유형의 값 중 하나로, 거짓을 나타냅니다. True와 마찬가지로 불리언 값 중 하나입니다. 파이썬에서 False는 예약어로서 사용되며, 조건식의 결과가 거짓일 때 반환됩니다. 예를 들어, if 문에서 조건식이 False이면 해당 문장이 실행되지 않습니다.
간단히 말하자면, 에러는 프로그램 실행 중에 발생하는 문제를 가리키고, False는 불리언 값 중 하나로, 거짓을 나타냅니다.
프로그램의 중단 vs 값의 반환 과 실행취소
참고
도메인 확장 - 용어 정의
false positive vs false negative
'문제풀이 > PYTHON' 카테고리의 다른 글
파이썬 - while (1) 2024.04.26 파이썬 - 행렬 덧셈 (0) 2024.04.22 파이썬 - 약수 갯수와 덧셈(for문 반복 / 초기화) (0) 2024.04.17 파이썬 - 숫자에 부호 붙이기(불리언 배열) (0) 2024.04.11 파이썬 - list comprehension (0) 2024.04.08