일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 콘솔 가상환경 # 콘솔 #가상환경
- 튜토리얼
- #undef
- 환경변수 설정
- VS Code
- openweathermap
- 성능지표
- #endif
- bootstrap4 패키지
- flask
- OpenCV + Flask
- OpenCV
- javascript
- PyQt5
- Django
- 명령어
- #ifdef
- Action
- #if
- href
- heroku
- 사이트 도메인
- DB 데이터 저장
- #else
- jinja2
- #ifndef
- bootstrap
- MySQL 세팅
- 실시간 시계
- DB 데이터
- Today
- Total
PROGRAMMING
문자열과 바이트, 조건문과 반복문 본문
1. 문자열 포맷팅
- 일정한 포맷에 맞춰 문자열을 조합하는 것을 문자열 포맷팅이라고 하며, 문자열 포맷 템플릿 안에 대입값이 들어갈 자리를 지정한 후 나중에 그 값을 채워넣는 방식을 사용한다.
ex)
p = "이름: %s 나이: %d" % ("김유신", 65)
print(p)
# 출력: 이름: 김유신 나이: 65
p = "X = %0.3f, Y = %10.2f" % (3.141592, 3.141592)
print(p)
# 출력: X = 3.142, Y = 3.14
2. 문자열 클래스(str)
- 문자열은 내부적으로 str이라는 클래스 타입을 지닌다. 파이썬의 문자열은 기본적으로 유니코드이며, 한 번 설정될 경우 다시 변경이 불가한 immutable 타입이다.
파이썬에서는 C, C#등에 존재하는 문자(char) 타입이 존재하지 않는다.
문자열을 표현할 때, r'문자열'과 같이 사용하면, 이는 Escape Sequence를 표현하지 않고 Raw String을 직접 사용한다는 것을 의미한다.
ex)
path = r'C:\Temp\test.csv'
print(path)
※ escape sequence docs.microsoft.com/ko-kr/cpp/c-language/escape-sequences?view=msvc-160
이스케이프 시퀀스
이스케이프 시퀀스Escape Sequences 이 문서의 내용 --> 백슬래시( \ ) 뒤에 한 문자나 숫자 조합이 오는 문자 조합을 "이스케이프 시퀀스"라고 합니다.Character combinations consisting of a backslash (\) followed by
docs.microsoft.com
3. 자주 사용되는 str 메서드
(1) str.join()
: join() 메서드는 문자열을 결합하는데 사용되는 Separator를 join 메서드 앞에 사용한다.
ex)
s = ','.join(['가나','다라','마바'])
print(s)
# 출력: 가나,다라,마바
s = ''.join(['가나','다라','마바'])
print(s)
# 출력: 가나다라마바
(2) str.split()
: split() 메서드는 join() 메서드의 반대로써 특정 separator를 기준으로 문자열을 분리하여 리스트를 리턴
ex)
items = '가나,다라,마바'.split(',')
print(items)
# 출력: ['가나', '다라', '마바']
(3) str.partition()
: partition() 메서드는 문자열을 partition() 메서드의 첫 번째 파라미터로 분리하여 그 앞부분(prefix), partition 분리자(separator), 뒷부분(suffix) 등 3개의 값을 Tuple형태로 반환한다.
아래의 예시는 Dash (-)로 분리한 것이며, 일반적으로 separator는 사용하지 않아서 _를 사용하였다.
ex)
departure, _, arrival = "Seattle-Seoul".partition('-')
print(departure)
# 출력: Seattle
(4) str.format()
: str 클래스에서 가장 많이 사용되는 메서드 중의 하나. 다양한 방식의 문자열 포맷팅을 지원하는 메서드로, 아래 예시에 3가지 방식을 사용했다.
ex)
# 위치를 기준으로 한 포맷팅
s = "Name: {0}, Age: {1}".format("강정수", 30)
print(s) # 출력: Name: 강정수, Age: 30
# 필드명을 기준으로 한 포맷팅
s = "Name: {name}, Age: {age}".format(name="강정수", age=30)
print(s) # 출력: Name: 강정수, Age: 30
# object의 인덱스 혹은 키를 사용하여 포맷팅
area = (10, 20)
s = "width: {x[0]}, height: {x[1]}".format(x = area)
print(s) # 출력: width: 10, height: 20
★ 최근 나온 f-string을 활용하면 좀 더 가시적인 효과도 거둘 수 있으므로 f-string 사용을 권장합니다. :)
4. bytes (바이트 클래스)
- bytes 클래스는 일련의 바이트들을 표현하는 클래스로서 bytes는 한 번 설정되면 다시 변경이 불가한 immutable 타입이다. bytes 클래스와 비슷한 클래스로 bytearray 클래스가 있고, 두 클래스의 차이점이라면 bytearray는 바이트 객체의 요소를 변경할 수 있는 mutable 타입이라는 점이다.
문자들을 바이트들로 표현하기 위해 b'문자들'과 같이 접두어 b를 앞에 붙인다. 이렇게 접두어 b를 붙여 바이트 리터럴을 만들 때, 각 문자는 ASCII 코드를 갖는 문자로 처리된다.
ex)
text = b"Hello"
for c in text:
print(c)
...
72
101
108
108
111
str 타입의 문자열을 bytes 타입의 바이트들로 변경하기 위해서는 str 클래스의 인코딩 메서드 encode()를 사용,
대조적으로 bytes 타입 바이트들을 str 타입 문자열로 변경하기 위해 bytes 클래스의 디코딩 메서드 decode()를 사용함
메서드를 사용한 인코딩, 디코딩 시 특별히 파라미터를 지정하지 않을 경우 디폴트 인코딩을 사용하나, 지정도 가능하다.
ex)
s = "Hello"
b = s.encode()
print(b) # b'Hello'
s2 = b.decode()
print(s2) " 'Hello'
# 특정 인코딩 방식을 지정한 경우
x = "안녕".encode("UTF-8")
y = x.decode("UTF-8")
문자열 안에서 유니코드값을 사용하기 위해서는, \u에 이어 유니코드값을 적으면 된다.
5. 조건문(if, elif, else)
- 파이썬의 경우 switch 문이 존재하지 않기 때문에 if ... elif ... elif 문으로 수행한다.
if 문에서 특정 블럭/문장을 수행하지 않고 그냥 Skip하기 위해 pass라는 키워드를 사용할 수 있다.
6. 반복문(while, for, break, continue, range)
'Python' 카테고리의 다른 글
Collection: Dictionary (0) | 2020.11.01 |
---|---|
Collection: Tuple (0) | 2020.11.01 |
Collection: List (0) | 2020.11.01 |
연산자 (0) | 2020.11.01 |
환경 설정, 단축키, 파일 크롬으로 보는 법 (0) | 2020.11.01 |