1번 문제. to_snake_str() 구현하기
- Camel형태의 문자열을 입력받으면 Snake형 문자열로 변경하는 함수 구현
- 예시) 입력: HelloPython 출력: hello_python
- 과정 : 대문자를 소문자로 고치면서 “_”문자를 더한다. => 가장 앞에 있는 “_”는 없앤다.
- Hint) str.isupper(), str.replace(), str.lower(), str.strip(‘_’)
def to_snake_str(camelStr):
resultStr = camelStr
for i in resultStr:
if(i.isupper()):
resultStr = resultStr.replace(i, "_"+i.lower())
return resultStr .strip('_')
1번 설명
- string을 한글자씩 돌면서, 대문자인 경우엔
- 해당 문자(i) 대신 “_”와 i를 소문자로 바꿔서 대체한다.(replace(), lower())
- return할 때 strip함수로 가장자리의 “_”를 제거한다. (사실 본 문제에서는 왼쪽의 “_”만 있기 때문에 lstrip()을 써도 상관없다.)
2번 문제. to_camel_str() 구현하기
- Snake형태의 문자열을 입력받으면 Camel형 문자열로 변경하는 함수 구현
- 예시) 입력: hello_python 출력: HelloPython
- 과정: 단어가 시작하는 첫문자를 대문자로 바꾸고 “_”문자를 제거한다.
- Hint) str.title(), str.replace()
def to_camel_str(snakeStr):
return snakeStr.title().replace("_", "")
선생님은 또 한줄에 끝내셨다… 함수 알고 응용하는것이 힘!!!!!!!!!!!
2번 설명
- 단어의 첫 문자를 대문자로 바꾸는건 title()함수로 너무 쉽게 구현됐다. 아마 단어 사이의 스페이스나 특정 문자를 기준으로 capitalize해주는 듯 하다.
- 1번 문제에서 한 것 처럼 “_”를 공백으로 대체! 문자에 더하고 빼는건 replace()가 유용하다.
3번 문제. fix_sentence()구현하기
- 문자열을 올바른 문장으로 고치는 함수 구현
- 예시) 입력: hello, everyone 출력: Hello, everyone.
- 과정: 문장의 첫 글자를 대문자로 고치고, 문장의 끝에 마침표가 없으면 더해준다.
- Hint) str.capitalize(), str.endswith()
def fix_sentence(text):
return text.capitalize() if text.endswith(".") else text.capitalize() + "."
이번 한줄은 내가 했다. 한줄로 줄였다고 성능이 더 좋아진건 아니지만 그래도 뿌우우우우우우우우ㅜㅜㅜㅜㅜㅜㅜㅜ듯
3번 설명
- endswith()함수는 지정된 접미사(“.”)로 문장이 끝날 경우 true 아니면 false를 반환한다.
- 따라서 true일 경우, 마침표가 있으므로 첫문장을 대문자로 바꾸기만 한다(capitalize())
- false일 경우엔 capitalize 후에 마침표를 더한다.
그동안 python string 함수를 그냥 찾아만보고 따로 공부한 적은 없는데 문제를 풀면서 공부의 필요성을 느꼈다.
모든 함수를 공부하진 못하더라도, 수업시간에 배운거와 추가로 찾아보는 것들은 꼭 알아둬야겠다.
오늘의 Python String 함수
- str.isupper() : 문자가 대문자인지 검사해 boolean값 반환
- str.replace(“old char”, “new char”) : 문자 교환
- str.lower() : 소문자로 반환
- str.title() : 문장 내 모든 단어의 첫 글자를 대문자로 반환
- str.capitalize() : 문장의 첫 글자를 대문자로 반환
- str.endswith(“.”) : 문장의 접미사를 검사해 boolean값 반환
파이썬에서의 삼항연산자
3번 문제에서 파이썬에서 처음 삼항 연산자를 구현하려고 했는데, 계속 에러가 발생했다. 찾아보니 파이썬은 삼항 연산자가 다른 형태로 있는데
true if condition else false 이 형태이다.
java나 javascript처럼 else뒤에 다시 문장을 반복해 여러가지 조건을 연산할 수 있다.