본문 바로가기

공부노트

12/2, 여섯 번째 날의 TIL

저번주 월요일에 내일배움캠프를 시작하고, 벌써 일주일이 되었다. 느낀 건 시간이 너무도 빨리 가고, 배울 내용은 공부를 아무리 해도 끝이 없다는 점이다. 하지만 이 과정을 반복하면서 하루하루 성장해가고, 더 많은 것을 배워가는 느낌이 좋은 것 같다.

오늘도 공부를 하면서 확실하게 알게 된 점들이 있었는데,


Return, Print 이스케이프 시퀀스에 대해서

파이썬에서는 문자열 내용을 출력하려고 할 때 줄바꿈을 원한다면, 그냥 엔터를 쳤을 때 에러가 난다.

\(역슬래시)를 입력하고 엔터를 치면 에러가 나지 않지만, 결과값에서는 줄이 바뀌어 있지 않다.

여러가지 방법이 있겠지만, 우선

print('안녕하세요 제 이름은')
print('홍길동입니다.')

이렇게 print를 두 번 사용하면 두 줄로 출력이 된다. 혹은,

print('''안녕하세요 제 이름은
홍길동입니다.''')

이런 식으로 따옴표 세 개를 쓰고 안에 내용을 적으면 보이는 대로 출력이 되고, 나머지 하나는

print('안녕하세요 제 이름은\n홍길동입니다.')

이런식으로 \n(탈출 문자)를 사용하면 줄바꿈이 된다. 위 세 코드의 출력값은 모두

안녕하세요 제 이름은

홍길동입니다.

가 되는데, 함수에서 결과값 return을 할 때도 문자열을 출력할 수가 있다.

def greet():
	print('hi\nhello')

이렇게 정의한 함수의 경우, 호출을 하면 

hi

hello

처럼 줄바꿈이 잘 되는데,

def greet():
	return 'hi\nhello'

를 적게 되면, 결과값은

hi\nhello

로, 탈출문자 적용이 되지 않고 \n이 그대로 보이게 된다.

그러면 줄바꿈을 하고 싶은 경우에는 어떻게 해야 할까?

처음처럼 return 없이 print만 사용하거나, 혹은

def greet():
	return 'hi\nhello'
    
print(greet())

이런식으로 return 값 밖에 print를 씌워주면 된다. 하지만 이렇게 하면 번거로우니, 줄바꿈이나 그 외의 탈출문자를 사용하고 싶은 경우에 결과값이 중요한게 아니라면 return 없이 print로 출력만 하는 함수를 만들도록 하자.


While문의 탈출 조건 설정에 대해서

While문의 탈출 조건은 크게 두 가지가 있다.

처음은 break를 사용하는 것인데,

while True:
	answer = input('나가려면 exit를 입력하세요.')
    if answer == 'exit':
    	break

이런식으로  while True를 사용해 계속 무한반복하게 한 후, 조건을 만족하면 break로 나오게 하는 방법이다.

다음은 조건을 사용하는 것인데,

user_input = ""
while user_input != 'exit':  # 조건: 'exit'을 입력하면 종료
    user_input = input('나가려면 exit를 입력하세요.')

print('프로그램 종료')

이런식으로 while문의 반복 조건에 특정 조건을 넣어놓고 반복하다가, 조건을 만족하면 반복 조건이 False가 되어 루프가 멈추는 것이다.

 

이 두 가지의 경우 모두 while문을 탈출할 수 있고 계속 루프 돌다가 break를 사용해서 나오면 더 쉬울 것 같지만, 실제로 개발자들은 첫 번째 방법을 지양한다고 한다.

이는 설정을 잘못했을 경우에 무한루프가 돌 수도 있기 때문에, 그냥 무작정 무한루프를 돌려놓고 탈출하기보다는 특정 조건을 반복 조건에 넣어놓고 탈출하는 방법을 많이 쓰는 것이다.


요즘 캠프를 하고 튜터님들께 조언을 많이 들으면서, 생각이 많이 변하고 있다. '그냥 나 혼자 대충 코딩하고 나중에 찾아보면 되지' 라는 생각이 아니라, 나중에 사람들과 협업할 것을 생각하면서 함수나 변수 이름 정의할 때, 혹은 클래스를 만들거나 문자열을 출력할 경우에도 최대한 보기 쉽게, 직관적으로 코드를 짜려고 한다.

이제 캠프에 적응도 했고 배운 내용도 많아지니, 개발자로써 다른사람과 함께한다는 마인드를 가지고 항상 코드를 짜려고 노력해야겠다.

'공부노트' 카테고리의 다른 글

12/4, 여덟 번째 날의 TIL  (2) 2024.12.04
12/3, 일곱 번째 날의 TIL  (0) 2024.12.03
11/25 ~ 11/29, 첫 주의 WIL  (5) 2024.11.29
11/29, 다섯번째 날의 TIL  (0) 2024.11.29
11/28, 넷째 날의 TIL  (4) 2024.11.28