파이썬 스터디2

seonae's wiki
이동: 둘러보기, 검색

스터디 홈


자료형:문자

  • 문자열 포맷팅(Formatting) : 쉽게 말해 문자열 내에 어떤 값을 삽입하는 방법[1]


    • 1) 포맷팅 연산자 사용
>>>"I eat %d apples." % 3 #직접 넣기-숫자
>>>"I eat %s apples." % "five" #직접 넣기-문자열
>>>"I eat %d apples." % number #변수로 입력

#2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)

#공백 넣기
>>> "%10s" % "hi"
#정렬하기
>>> "%10s" % "hi" #오른쪽
"%-10sjane." % 'hi' #왼쪽


    • 문자열 포맷코드 : %s(문자열), %d(정수),  %%(%문자)
>>> "Error is %d%." % 98


    • 2) format 함수 사용
>>> "I eat {0} apples".format(3) #직접 넣기-숫자
>>> "I eat {0} apples".format("five") #직접 넣기 - 문자
>>> number = 3
>>> "I eat {0} apples".format(number) #변수로 입력

#2개 이상의 값 넣기-인덱스
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)

#2개이상의 값 넣기 - 이름
"I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)

#정렬
>>> "{0:<10}".format("hi") #:<왼쪽
>>> "{0:>10}".format("hi") #:>오른쪽
>>> "{0:^10}".format("hi") #:^ 가운데

#{ 또는 } 문자 넣기
>>> "{{ and }}".format()


    • f문자열을 이용(ver 3.6 이상)
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'

>>> f'나는 내년이면 {age+1}살이 된다.'

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


  • 문자열 메소드
    • 메소드(method) : 자체적으로 가지고 있는 함수. 내장함수 함수(인수)/method(parameter)
>>> a = "Python is the best choice"

>>> a.count('b') #문자 갯수 세기
>>> a.find('b') #문자 위치1 (처음 나온 위치, 없으면 -1)
>>> a.index('t') #문자 위치2 (처음 나온 위치, 없으면 오류)

>>> ",".join('abcd') #문자열 삽입/결합
>>> ",".join(['a','b','c','d']) #join은 리스트도 가능. 

>>> a.upper() #대문자 변환
>>> a.lower() #소문자 변환
>>> a.swapcase() #거꾸로 변환
>>> a.capitalize() #첫문자만 대문자로
>>> a.title() #단어의 첫문자만 대문자로

>>> " hi ".lstrip() #왼쪽 공백 제거
>>> " hi ".rstrip() #오른쪽 공백 제거
>>> " hi ".strip()  #양쪽 공백 제거
>>> '><>abc<><><>'.strip('<>') #특정 문자열 제거
>>> '><>abc<><><>\n'.strip('<>')

>>> a.replace("Python", "Learning") #문자열 바꾸기
>>> a.split() #문자열 나누기
>>> b = "a:b:c:d"
>>> b.split(':')
>>> lines = '''
first line
second line
third line'''
>>> lines.splitlines() #줄단위로 분리

>>> s = 'i like programming, i like swimming.'
>>> s.startswith('i like') #~로 시작하는지?
>>> s.endswith('swimming.') #~로 끝나는지?
>>> startswith('progr', 7) #7번째 문자열이 ~로 시작하는지?
>>>s.endswith('like', 0, 26) #0~26사이의 문자열이 ~로 끝나는지?

#판별 메소드
>>> '1234'.isdigit()
>>> 'abc'.islower()
>>> 'abc'.isupper()
>>> '\t\r\n'.isspace()


연습문제2

  • a:b:c:d를 a#b#c#d로 바꾸기 : 1) replace 사용 2) split과 join사용
  • s = '/usr/local/bin/python'에서 분리하기 : 'usr', 'local', 'bin', 'python'
m = '''
first line
second line
third line'''

first line:second line:third line #출력형태 1
first:line:second:line:third:line #출력형태 2

자료형:리스트

  • 리스트(List) : 순서를 가지는 객체들의 집합. 시퀀스 자료형. 변경가능. []
  • 기본 형식
리스트명 = [요소1, 요소2, 요소3, ...]
>>> a = [] #빈 리스트, 리스트 선언(declaration)
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]

>>> a = list() #빈 리스트.


  • 인덱싱
>>> a = [1, 2, 3]
>>> a[0]
>>> a[0] + a[2]
>>> a[-1]

#중첩 리스트(nested lists)
>>> a = [1, 2, 3, ['a', 'b', 'c']]
>>> a[0]
>>> a[-1]
>>> a[-1][0]


  • 슬라이싱
>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
>>> b = a[:2]
>>> c = a[2:]

#중첩 리스트(nested lists)
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
>>> a[3][:2]
  • 리스트 연산
#더하기
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b

#반복하기
>>> a = [1, 2, 3]
>>> a * 3

#길이 구하기
>>> len(a)
#멤버십 테스트(membership test)
>>> 3 in a

#여기서 잠깐! 아래의 결과는?
>>> a[2] + "hi"


  • 수정과 삭제
>>> a = [1, 2, 3, 4, 5]
>>> a[2] = 4 #교체
>>> a
>>> a[0:2] = [7]

>>> del a[1] #삭제
>>> a
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:] #여러개 삭제
>>> a
>>> a[0] = []


  • 메소드
#요소 추가하기 append()
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
>>> a.append([5,6])
>>> a

#정렬하기
>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
>>> b = ['a', 'c', 'b']
>>> a.sort()
>>> b

#역순 정렬
>>> a.reverse()
>>> a
>>> b.reverse()
>>> b

#위치 반환 : 리스트에 x값이 있으면 x의 위치 반환
>>> a = [1,2,3]
>>> a.index(3)
>>> a.index(1)
>>> a.index(0)

#삽입하기 insert(a,b) a번째 위치에 b를 삽입.
>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a

#제거하기 remove(x) 첫번째로 나오는 요소 x를 삭제.
>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a

#꺼내기 : 맨 마지막 요소를 꺼내는 것(요소를 반환하고(return) 삭제)
>>> a = [1,2,3]
>>> a.pop()
>>> a
>>> a = [1,2,3]
>>> a.pop(1)
>>> a

#요소 x의 갯수세기
>>> a = ['ㄱ', 'ㄴ', 'ㄷ', 'ㄴ', 'ㄱ']
>>> a.count('ㄱ')

#리스트 확장(extend) : 리스트를 더하는 것
>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
>>> b = [6, 7]
>>> a.extend(b)
>>> a

연습문제

  • ['Life', 'is', 'too', 'short'] 라는 리스트를 Life is too short라는 문자열로! (join 이용)
  • [1, 3, 5, 4, 2]라는 리스트를 [5, 4, 3, 2, 1]로!
  • https://wikidocs.net/13#_15