"get_find" 함수를 작성하세요.
문자와 문자열이 주어졌을때, "get_find" 함수는 주어진 문자열에서 함께 주어진 문자가 나타나는 첫번째 위치를 반환합니다.
Notes:
output = get_find('a', 'I am a hacker')
print(output) # --> 2
내 풀이 틀렸음
def get_find(char, str):
# 아래 코드를 작성해주세요.
for i in str:
if i ==char:
return str.index(i)
break
else:
return -1
print(get_find('a', 'i am a hacker'))
-> -1만 나옴
정답코드1
def get_find(char, str):
# 아래 코드를 작성해주세요.
for i in str:
if i == char:
return str.index(i)
if i != char:
return -1
print(get_find('a', 'i am a hacker'))
-> 2 나옴
해석: 내풀이를 보면 return= -1 되어 함수가 종료되었다.
retuen은 함수를 종료시키기 때문에 for문이 반복 되지않고 -1을 출력된것이다.
그래서 else문을 지우고 if를 한번 더써서 -1값을 리턴받았다.
정답코드2
def get_find(char, str):
try:
return str.index(char)
except:
return -1
해석: 예외처리를 통해 try블록을 수행하여 오류가발생하면 except가 실행되여 -1을 리턴하고
try블록이 오류가 발생하지않으면 except가 실행되지 않는다.
def sqare(x):
print("시작")
print x * x
print("끝")
print(sqare(3))
print("hello world")
retrun 문이 함수를 즉시 종료시키기 때문에
Dead Code(의미없는 코드)가 되어 출력되지 않는다.
시작
9
hello world
print와의 차이점
def print_squre(c):
print ( c * c)
def get_squre(c):
return c * c
-> 파라미터에 3 전달시
9
None
None이 출력되는 이유?
함수 이름처럼 get은 그 값을 가지고 있지만 출력되지 않아 None이라고 표시되는듯하다.