사전스터디 3주차 - 파이썬 기초 공부 (문자열)

김현우·2020년 6월 23일
0

문자열


첫번째로, 문자열에 대해서 알아볼게요~😀

우선 문자열이란?

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미


문자열 슬라이싱

a[0:5]
'Life '

a[0] + a[1] + a[2] + a[3] + a[4]와 동일해요!



format 함수를 사용한 포매팅

(1) 숫자 바로 대입

"I eat {0} apples".format(3)
'I eat 3 apples'

(2) 문자열 바로 대입

"I eat {0} apples".format("five")
'I eat five apples'

(3) 2개 이상의 값 넣기

number = 10
day = "three"
"I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

(4) 왼쪽 정렬

"{0:<10}".format("hi")
'hi '

(5) 오른쪽 정렬

"{0:>10}".format("hi")
' hi'

(6) 가운데 정렬

"{0:^10}".format("hi")
' hi '

f 문자열 포매팅
파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용가능

(1) 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용

name = '홍길동'
age = 30
f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

(2) 딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형

d = {'name':'홍길동', 'age':30}
f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

(3) f 문자열을 이용한 정렬

f'{"hi":<10}' # 왼쪽 정렬
'hi '
f'{"hi":>10}' # 오른쪽 정렬
' hi'
f'{"hi":^10}' # 가운데 정렬
' hi '

(4) 공백 채우기

f'{"hi":=^10}' # 가운데 정렬하고 '=' 문자로 공백 채우기
'====hi===='
f'{"hi":!<10}' # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!!!!!'

문자열 관련 함수

(1) count => 문자 개수 세기

a = "hobby"
a.count('b')
2

문자열 중 문자 b의 개수를 돌려줍니다!

(2) find => 위치 알려주기

a = "Python is the best choice"
a.find('b')
14
a.find('k')
-1

문자열 중 문자 b가 처음으로 나온 위치를 반환해줍니다.
찾는 문자나 문자열이 존재하지 않는다면 -1을 반환해요.

(3) index = > 위치 알려주기

a = "Life is too short"
a.index('t')
8
a.index('k')
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found

리스트 자료형


두번째로, 리스트에 대해서 알아볼게요~😀

(1) 사용 방법

리스트명 = [요소1, 요소2, 요소3, ...]

(2) 리스트 반복하기

a = [1, 2, 3]
a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

(3) 리스트 길이 구하기

a = [1, 2, 3]
len(a)
3

튜플 자료형


세번째로, 튜플에 대해서 알아볼게요~😀

튜플과 리스트의 차이점!!!

리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러쌈
리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없음!!

(1) 자, 먼저 튜플의 모습은~~?

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))

단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다!
t4 = 1, 2, 3처럼 괄호( )를 생략해도 무방하다

(2) 인덱싱하기

t1 = (1, 2, 'a', 'b')
t1[0]
1
t1[3]
'b'

(3) 슬라이싱하기

t1 = (1, 2, 'a', 'b')
t11:

(4) 길이 구하기

t1 = (1, 2, 'a', 'b')
len(t1)
4

딕셔너리 자료형


네번째로, 딕셔너리에 대해서 알아볼게요~😀

(1) 딕셔너리의 기본 모습

{Key1:Value1, Key2:Value2, Key3:Value3, ...}

리스트와 튜플과 다르게 {key : value}로 저장됩니다!

예시

dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}

(2) 딕셔너리 추가하기

a = {1: 'a'}
a[2] = 'b'
a
{1: 'a', 2: 'b'}

딕셔너리 a에 Key와 Value가 각각 2와 'b'인 2 : 'b'라는 딕셔너리 쌍이 추가됨!

(3) 딕셔너리 요소 삭제하기

del a[1]
a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}

(4) Key를 사용하여 Value 얻기

grade = {'pey': 10, 'julliet': 99}
grade['pey']
10
grade['julliet']
99

Key의 Value를 얻기 위해서는 딕셔너리변수이름[Key]를 사용한다!!

(5) 딕셔너리 생성시 주의 사항
Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시됨.
Key에 리스트는 쓸 수 없지만 튜플은 Key로 쓸 수 있다 => 리스트는 값이 변할 수 있기 때문에 불가!

(6) Key 리스트 만들기

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])

(7) Value 리스트 만들기

a.values()
dict_values(['pey', '0119993323', '1118'])

(8) Key, Value 모두 얻기

a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

(9) Key로 Value 얻기

a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
a.get('name')
'pey'
a.get('phone')
'0119993323'

집합 자료형


다섯번째로, 집합 자료형에 대해서 알아볼게요~😀

(1) 집합 자료형의 특징

  • 중복을 허용하지 않는다.
  • 순서가 없다.
  • set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없음

(2) 교집합, 합집합, 차집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

교집합

s1 & s2
{4, 5, 6}

또는

s1.intersection(s2)
{4, 5, 6}
합집합
s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}

합집합

s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}

또는

s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}

차집합

s1 - s2
{1, 2, 3}

s2 - s1
{8, 9, 7}

또는
s1.difference(s2)
{1, 2, 3}

s2.difference(s1)
{8, 9, 7}

출처 : https://wikidocs.net/16

profile
코딩을 잘하는 개발자가 되자!

0개의 댓글