2.2 문자열(Strings) #Writing Idiomatic Python 3.1

oen·2022년 2월 22일
0

1. 문자열을 연속적으로 변경할 때 함수들을 Chain

👎

info = ' Hello: oen'
formatted_info = info.strip()
formatted_info = formatted_info.upper()
formatted_info = formatted_info.replace(':', '!')

print(formatted_info)
'HELLO! OEN'

문자열을 연속으로 변경해야 할 때, 이렇게 각 단계에서 임시 변수를 만들지 말고

👍

info = ' Hello: oen'
formatted_info = info.strip.upper().replace(':', '!')

print(formatted_info)
'HELLO! OEN'

함수를 이어서(Chain) 사용하자

2. ''.join 사용

👎

result_list = ['True', 'False', 'File not found']
result_string = ''
for result in result_list:
	result_string += result
    
print(result_string)
'TrueFalseFile not found'

list 의 원소들을 연결해서 하나의 스트링으로 변환할 때에는

👍

result_list = ['True', 'False', 'File not found']
result_string = ''.join(result_list)

print(result_string)
'TrueFalseFile not found'

''.join()을 사용하면 더 빠르고 메모리도 덜 사용한다.
물론 '' 자리에는 '' 말고도 연결할 기호를 넣으면 된다.

3. ord 사용 => 문자를 아스키 코드로 변환, 아스키코드를 문자로 변환

ord 함수: 문자 => 아스키코드
chr 함수: 아스키코드 => 문자

👎

character_hash = {
	'a': 97,
    'b': 98,
    'c': 99,
    # ...
    'y': 121,
    'z': 122,
}

r = character_hash['c']

print(r)
99

👍

r = ord('c')

print(r)
99

4. 문자열 포맷 함수

문자열 포맷팅에는 크게 3가지 방법이 있다.

  • + 로 연결(최악)
  • % 사용
  • format 함수 (추천)

👎 +

'Name: ' + user.name + ', Age: ' + str(user.age)

👎 %

'Name: %s, Age: %i' % (user.name, user.age)

👍 format 함수

'Name: {user.name}, Age: {user.age}'.format(user=user)

+

👍👍 f-string

책에는 안 나와있는데, f-string은 훨씬 더 간단하다.

f'Name: {user.name}, Age: {user.age}'
profile
🐾

0개의 댓글