파이썬 스터디2
seonae's wiki
2019 파이썬 스터디 | |
---|---|
일정 | 2019/1/17 3-5시 |
장소 | 강의동 110호 |
참여인원 | 선애,승진,나라,에릭,인혁 |
내용 | 파이썬기초 : 자료형(문자,리스트) |
자료형:문자
- 문자열 포맷팅(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]로!