학습목표
- 문자열을 다양한 방법으로 활용할 수 있다.
- 집합(set) 자료구조를 활용할 수 있다.
학습하기
학습목표
학습하기
문자열 서식화
문자열을 출력할 때 여러 변수의 값을 이용해야 하는 경우가 있습니다.
print("Max between " + str(x0) + " and " + str(x1) + " is " + str(val))
문자열 포맷 연산자 %를 사용하면 더 쉽고 간단하게 문자열을 출력할 수 있습니다.
print("Max between %d and %d is %g" % (x0, x1, val))
포맷 연산자는 다음처럼 사용합니다.
format_string % (arg0, arg1, .... )
포맷 연산자가 사용하는 튜플의 원소들이 format_string 안의 문자열 포맷코드들의 값에 일대일로 지정됩니다. 자료형에 따라 다른 문자열 포맷코드를 사용합니다.
* %d: 10진법 정수
* %g: 실수
* %.2f: 소수점 자리수가 설정된 실수 (이 경우는 소숫점 둘째 자리까지)
* %s: 모든 자료형 (문자열 등)
하나의 문자열 포맷 코드만 사용하는 데는 튜플을 쓰지 않아도 됩니다.
print("Maximum is %g" % val)
각 문자열 포맷 코드가 나타낼 문자열이 차지하는 영역의 크기를 설정할 수 있습니다.
다음처럼 문자열 포맷 코드가 나타낼 문자열을 왼쪽으로 정렬시킬 수도 있습니다.
문자열
문자열은 시퀀스입니다.
def is_palindrome(s):
for i in range(len(s) // 2):
if s[i] != s[len(s) - i - 1]:
return False
return True
문자열은 불변 객체입니다.
문자열에는 in 연산자를 사용할 수 있습니다.
리스트와 튜플에서는 in 연산자가 리스트/튜플의 원소를 대상으로 하지만, 문자열에서는 부분 문자열을 대상으로 합니다.
문자열의 멤버 함수
문자열 객체에서는 다음과 같은 멤버 함수를 사용할 수 있습니다.
* upper(), lower(), capitalize()
* isalpha(), isdigit()
* startswith(prefix), endswith(suffix)
* find(str1), find(str1, start), find(str1, start, end)
* replace(str1, str2)
* rstrip(), lstrip(), strip()
* split(), split(sep)
* join(list1)
모든 멤버 함수는 Python에서 제공하는 문서에도 설명되어 있습니다.
집합
집합(Set)은 수학의 집합과 관련된 자료들을 쉽게 처리하기 위한 자료 구조입니다.
집합은 서로 다른 여러 객체들로 이루어져 있습니다 (중복된 자료가 없습니다).
집합은 중괄호 { } 나 set() 함수를 이용해서 만들 수 있습니다.
리스트는 집합으로 변환할 수 있습니다.
문자열 또한 집합으로 변환할 수 있습니다.
집합의 원소에는 순서가 없기 때문에 원소의 위치를 특정할 수 없습니다.
하지만, in 연산자는 사용할 수 있습니다.
집합의 멤버 함수
집합 객체 s에는 다음과 같은 멤버 함수들을 사용할 수 있습니다.
* s.add(v): 원소 v를 집합 s에 추가한다.
* s.remove(v): 원소 v를 집합 s에서 제거한다.
* s.pop(): 무작위 원소를 집합 s에서 제거하고 그 원소를 반환한다.
* s.intersection(k): 집합 s, k의 공통 원소를 반환한다. (s∩k)
* s.union(k): 집합 s, k의 합집합을 반환한다. (s∪k)
* s.difference(k): 집합 k에 있는 원소들을 s에서 제거한다. (s∩k^c)
다음은 멤버 함수들의 사용 예시입니다.
참고자료
comment
pop() 사용 시 작은수 부터 빠지는거 같네요
randomset = {10,3,5,2,4,8,7,9}
print(randomset.pop())
randomset = {3,5,4,2,8,7,9,10}
print(randomset.pop())
randomset = {5,4,8,2,7,9,3,10}
print(randomset.pop())
randomset = {2,10,3,5,4,8,7,9}
print(randomset.pop())
randomset = {10,3,2,5,2,4,8,7,9}
print(randomset.pop())
모두 2만 빠지네요 ^^;
if s[i] != s[len(s) - i - 1]: 을
if s[i] !=s[-i-1] 로 해도 되는데 len(s)를 넣는 이유가 있을까요?
멤버함수들이 강력해요
감사합니다.
감사합니다