[이전글]
2.12 f 문자열 포매팅
문자열 앞에 접두사 f를 붙이면 f 문자열 포매팅이 가능하다.
확실히 함수, 포매팅 을 사용할 수록 표현이 간결해지고 쉬워지는 기분은 든다.
>>> name= "마린"
>>> building="배럭"
>>> f'{name}을 생산하기 위해서는 {building}이 있어야 합니다.'
'마린을 생산하기 위해서는 배럭이 있어야 합니다.'
표현식
f 문자열 포매팅은 중괄호 안의 변수를 계산식으로도 지원해주는 표현식을 지원한다.
>>> f'라바 1기를 저글링으로 변형시키면 {larva+1}기가 된다.'
'라바 1기를 저글링으로 변형시키면 2기가 된다.'
딕셔너리
딕셔너리는 Key와 Value라는 것을 한쌍으로 가지는 자료형이며 f 문자열 포매팅에서 쓰일 수 있다.
뒤에서 자세히 다룰 예정이나 아직까지는 딕셔너리는 어렵다.
여러 그룹의 변수중에 원하는 변수를 하나 찾아 쓰는 것 같긴 하다
>>> f'마린은 {d["unit"]} 입니다. 미네랄은 {d["mineral"]} 입니다.'
'마린은 테란 입니다. 미네랄은 50 입니다.'
정렬 및 공백 채우기
표기만다를 뿐 정렬, 공백채우기는 비슷하다.
>>> f'{"GG":<10}'
'GG '
>>> f'{"GG":>10}'
' GG'
>>> f'{"GG":&^10}'
'&&&&GG&&&&'
소숫점 표현
>>> x=1.234567
>>> f'{x:.5f}'
'1.23457'
>>> f'{x:^10.3f}'
' 1.235 '
아직은 익숙치 않지만 함수를 이용하니 확실히 가독성이 커지는 것 같다.
2.13 문자열 관련 함수
Count - 문자 개수 세기
>>> a="간장공장공장은 강공장장이며"
>>> a.count("장")
5
문장을 변수로 부여한 후 변수 뒤에 '.'을 붙이고 count 함수를 적용했다.
"장" 이라는 단어의 수를 세어준다. 신박하다.
Find - 위치 찾기
>>> a="간장공장공장은 강공장장이며"
>>> a.find("공")
2
>>> a.find("된")
-1
찾는 단어가 가장 처음 나오는 위치를 찾을 수 있다. 만약 없는 단어를 검색하면 -1이 출력된다.
Index - 위치 찾기2
>>> a="간장공장공장은 강공장장이며"
>>> a.index("공")
2
>>> a.index("된")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
기본적으로 find와 같은 출력값을 가진다. 다만 값이 없는 문자를 찾는다면 find 처럼 -1이 출력되는 것이 아닌 오류가 난다.
Join - 문자열 삽입
>>> "?".join("와이라노")
'와?이?라?노'
join 함수를 사용하여 ?를 문자열 안의 각 단어 사이사이에 추가로 배치했다.
아직 이 기능을 어디다 쓰는지는 모르겠지만 신기하긴 하다.
Upper, Lower 대문자, 소문자 바꾸기
>>> a="STAR"
>>> a.lower()
'star'
>>> a="star"
>>> a.upper()
'STAR'
lower 함수는 대문자를 소문자로, upper 함수는 소문자를 대문자로 바꿔준다.
Strip - 공백 지우기
>>> a=" GG "
>>> a.lstrip()
'GG '
>>> a.rstrip()
' GG'
>>> a.strip()
'GG'
공백이 있는 문장에서 lstrip은 왼쪽공백, rstrip은 오른쪽공백, strip은 양쪽 공백을 지우는 기능을 한다.
Replace - 문자열 바꾸기
>>> a="저그는 최고의 종족입니다."
>>> a.replace("저그","테란")
'테란는 최고의 종족입니다.'
특정 단어를 바꿔치기 할 수 있다.
Split - 문자 나누기
>>> a="간.다.와 다 다 다 다 다 다 다"
>>> a.split()
['간.다.와', '다', '다', '다', '다', '다', '다', '다']
>>> a.split(".")
['간', '다', '와 다 다 다 다 다 다 다']
공백을 기준으로 split 함수는 각각의 문자로 나뉘어준다. 스플릿 함수 내에 "."을 입력해주니 입력해준 값을 기준으로 문자를 나누어준다.
3.1 리스트
리스트는 말 그대로 변수에 ","를 포함하여 여러 요소를 가지고 있는 값이다. 아무것도 없는 공백으로 나타낼 수도 있고, 문자, 숫자도 가능하다.
3.2 리스트 인덱싱 및 슬라이싱
리스트 인덱싱
>>> list=[1,2,3,4,5,6,7,8,9,10]
>>> list[0]
1
>>> list[5]
6
지금까지는 변수에 1개의 숫자, 문자만 나열했었는데 변수에 리스트를 나열하여 해당하는 순서의 데이터를 출력할 수 있다. 호기심에 아래처럼 문자로도 해봤는데 잘 적용된다.
>>> list=["저글링","마린","질럿"]
>>> list
['저글링', '마린', '질럿']
>>> list[1]
'마린'
추가로 리스트 안에 또 리스트를 만들 수 있다.
리스트 속의 리스트를 또 불러올 수 있다. 잘은 모르겠지만 유용하게 쓰일 수 있을 것 같다!
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list=[2]
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list[2]
['뮤탈', '레이스', '스카웃']
>>> list[1][1]
'마린'
리스트 슬라이싱
기본적으로 숫자, 문자를 슬라이싱 했을때와 동일한 형식의 명령으로 가능하다.
중복되어있는 리스트 내의 문자열에서도 사용이 가능하다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list[0:2]
[['드론', 'SCV', '프로브'], ['저글링', '마린', '질럿']]
>>> list[1][0:2]
['저글링', '마린']
3.3 리스트 연산
리스트 더하기와 반복하기
두개의 리스트의 항목을 연산하여 하나로 나타낼 수 있다.
변수가 리스트화가 되었을 뿐 어지간한 기능은 다 되는 것 같다.
>>> a=["SCV","드론","프로브"]
>>> b=["마린","저글링","질럿"]
>>> a+b
['SCV', '드론', '프로브', '마린', '저글링', '질럿']
>>> a*3
['SCV', '드론', '프로브', 'SCV', '드론', '프로브', 'SCV', '드론', '프로브']
리스트 길이
리스트의 길이 또한 len 함수를 통해 구할 수 있다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> len(list)
3
2.4 리스트 수정 및 삭제
리스트 수정
리스트 내의 값을 직접 다른 값으로 바꿀 수 있다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list[1]=["이상해씨","파이리","꼬부기"]
>>> list
[['드론', 'SCV', '프로브'], ['이상해씨', '파이리', '꼬부기'], ['뮤탈', '레이스', '스카웃']]
리스트 삭제
del 함수를 사용하여 리스트를 삭제할 수 있다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> del list[1]
>>> list
[['드론', 'SCV', '프로브'], ['뮤탈', '레이스', '스카웃']]
2.5 리스트 관련 함수
Append - 리스트 요소 추가
변수 뒤에 .append() 함수를 사용하여 리스트 요소를 추가할 수 있다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list.append("배틀크루져")
>>> list
[['드론', 'SCV', '프로브'], ['저글링', '마린', '질럿'], ['뮤탈', '레이스', '스카웃'], '배틀크루져']
Sort - 리스트 정렬
변수뒤에 .sort() 함수를 사용하여 리스트를 숫자, 문자 순서대로 정렬한다.
list 요소의 가장 앞 글자가 순서대로 정렬되었다. 드-뮤-저 순으로!
[['드론', 'SCV', '프로브'], ['저글링', '마린', '질럿'], ['뮤탈', '레이스', '스카웃'], '배틀크루져']
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list.sort()
>>> list
[['드론', 'SCV', '프로브'], ['뮤탈', '레이스', '스카웃'], ['저글링', '마린', '질럿']]
Reverse - 리스트 뒤집기
리스트의 순서를 뒤집을 수 있다.
[['드론', 'SCV', '프로브'], ['뮤탈', '레이스', '스카웃'], ['저글링', '마린', '질럿']]
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list.reverse()
>>> list
[['뮤탈', '레이스', '스카웃'], ['저글링', '마린', '질럿'], ['드론', 'SCV', '프로브']]
Index - 인덱스 반환
해당 요소가 어느 자리에 있는지 출력된다. 값이 없다면 에러가 난다.
>>> list=[["드론","SCV","프로브"],["저글링","마린","질럿"],["뮤탈","레이스","스카웃"]]
>>> list.index(["저글링","마린","질럿"])
1
>>> list.index("파이어뱃")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: '파이어뱃' is not in list
Insert - 리스트 요소 삽입
원하는 자리에 원하는 요소를 삽입할 수 있다.
>>> list=["마린","메딕","마린","메딕","메딕","마린"]
>>> list.insert(3,"파이어뱃")
>>> list
['마린', '메딕', '마린', '파이어뱃', '메딕', '메딕', '마린']
Remove - 리스트 요소 제거
요소중 가장 첫번째에 나오는 요소를 삭제할 수 있다.
>>> list=["마린","메딕","마린","메딕","메딕","마린"]
>>> list.remove("메딕")
>>> list
['마린', '마린', '메딕', '메딕', '마린']
Pop - 리스트 요소 뽑아내기
Pop 함수로 특정 리스트 요소만 뽑아낼 수 있다.
>>> list=["마린","메딕","마린","메딕","메딕","마린"]
>>> list.pop(4)
'메딕'
>>> list
['마린', '메딕', '마린', '메딕', '마린']
Count - 요소 세기
Count 함수로 리스트에 포함된 요소의 갯수를 셀 수 있다.
>>> list=["마린","메딕","마린","메딕","메딕","마린"]
>>> list.count("마린")
3
Extend - 다른 리스트 확장하기
extend 함수로 a 함수에 b 함수를 추가한 리스트를 생성할 수 있다.
>>> a=["마린","메딕","파이어뱃"]
>>> b=["시즈탱크","벌쳐","골리앗"]
>>> a.extend(b)
>>> a
['마린', '메딕', '파이어뱃', '시즈탱크', '벌쳐', '골리앗']
생각보다 어렵고 자료가 방대하긴 하지만 그래도 점점 재밌어진다. 더 열심히 해보자!
'공부 > 전자컴퓨터공학' 카테고리의 다른 글
프로그램(Program)이란? 웹(Web)이란?웹 개발, 웹 디자인을 위한 기초 지식 쌓기 (0) | 2024.04.30 |
---|---|
컴퓨터(Computer)란? 웹 개발, 웹 디자인을 위한 기초 지식 쌓기 web design web development (0) | 2024.04.29 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (2) (1) | 2024.04.25 |
Do it! 점프 투 파이썬 - 2장. 파이썬 프로그래밍의 기초, 자료형 (1) (0) | 2024.04.24 |
Do it! 점프 투 파이썬 - 1장. 파이썬이란 무엇인가? (1) | 2024.04.09 |