728x90
리스트 사용
List
- 여러개의 값을 담을 수 있는 변수
list1 = [1,2,3,4,5]
- 값 읽어오기
- 리스트를 사용할때는 0번째가 첫번째
- 첫번째 값 list1[0]
- 두번째 값 list1[1]
- 뒤에서 첫번째 값 list1[-1]
- 뒤에서 두번째 값 list1[-2]
- 리스트에 들어있는 값 보다 큰 값을 읽어오려고 하면 에러
- 예. 위의 list1에서 list1[5] 또는 list1[-6]은 에러
- 값 쓰기
- 변수와 같이 list1[0]=10이라고 하면 list의 첫번째 값이 10으로 변경
리스트 수정
리스트에 새로운 값을 추가하는 방법
- list1=[1,2,3]이라고 할 때
- append를 이용
- list1.append(4)
- append를 이용하면 리스트에 새로운 값이 추가된다.
- 뒤에 새로운 리스트를 더하기
- list2=list1+[4]
- list1은 그대로 두고, 새로운 리스트를 만들어 낸다.
리스트에 값이 들어있는지 확인하는 방법
- in 연산을 이용
#12라는 값이 리스트에 들어있는지 확인하는 코드 n=12 if n in list1: print('{}가 리스트에 있다.'.format(n))
리스트에서 필요 없는 값을 지우는 방법
- del을 이용해서 특정 위치의 값을 지우기
- del list1[10] 리스트의 10번째 값을 지워라
- remove를 이용해서 특정 값을 지우기
- list1.remove(40)을 하면 리스트에 40이라는 값이 있는경우 삭제
- 여러개의 값이 있는 경우 가장 앞에 있는 하나만 지워짐
for in list
for in 반복문
- 코드를 필요한만큼 반복해서 실행
-
for pattern in patterns: print (pattern)
- 리스트 patterns의 값을 하나씩 꺼내 pattern으로 전달
- 리스트의 길이만큼 print (pattern) 실
for in range
range 함수
- 필요한 만큼의 숫자를 만들어내는 유용한 기능
for i in range(5):
print(i)
enumerate
- 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능
names = ['철수', '영희', '영수']
for i, name in enumerate(names):
print('{}번: {}'.format(i + 1, name))
모듈 사용하기
모듈
- 미리 만들어진 코드를 가져와 쓰는 방법
- import 모듈이름
- 사용 방법: 모듈이름.모듈안의 구성요소
-
math.pi random.choice()
모듈의 예
- import math
- 수학과 관련된 기능
- import random
- 무작위와 관련된 기능
- import urllib.request
- 인터넷의 내용을 가져오는 기능
딕셔너리 만들기
딕셔너리
- 여러 값을 저장해 두고 필요한 값을 꺼내 쓰는 기능
- 이름표를 이용하여 값을 꺼내 사용
- 사용할 때는 리스트와 비슷한 방식
wintable = {
'가위' : '보',
'바위' : '가위',
'보' : '바위',
}
print(wintable['가위'])
딕셔너리 수정하기
- 추가
-
dict['three'] = 3
- 수정
-
dict['one'] = 11
- 삭제
-
del(dict['one']) dict.pop('two')
딕셔너리와 반복문
딕셔너리 반복문 활용
- 경우에 따라 가져올 값을 정할 수있다.
for value in ages.values(): print(value)
-
for key in ages.keys(): # keys() 생략 가능 print(key)
- key와 value 둘다 가져올 수 있다.
-
for key, value in ages.items(): print('{}의 나이는 {} 입니다'.format(key, value))
- 딕셔너리는 값의 순서를 지키지 않는다.
리스트와 비교
공통점
List | Dictionary | |
생성 | list = [ 1, 2 ,3 ] | dict = { 'one':1, 'two':2 } |
호출 | list[ 0 ] | dict[ 'one' ] |
삭제 | del( list[ 0 ] ) | del( dict[ 'one' ] ) |
개수 확인 | len( list ) | len( dict ) |
값 확인 | 2 in list | 'two' in dict.keys( ) |
전부 삭제 | list.clear( ) | dict.clear( ) |
차이점
List | Dictionary | |
순서 | 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀐다 | key로 값을 가져오기 때문에 삭제 여부와 상관없다 |
결합 | list1 + list2 | dict1.update( dict2 ) |
튜플 만들기
튜플
- 한번 정해진 순서를 바꿀 수 없다.
- 튜플 선언
-
tuple1 = (1, 2, 3, 4) tuple2 = 1, 2, 3, 4 mylist = [1,2,3,4] tuple3 = tuple(mylist)
- 튜플은 값의 변경과 삭제가 불가능
packing, unpacking
packing
- 하나의 변수에 여러개의 값을 넣는 것
unpacking
- 패킹된 변수에서 여러개의 값을 꺼내오는 것
c = (3, 4)
d, e = c # c의 값을 언패킹하여 d, e에 값을 넣었다
f = d, e # 변수 d와 e를 f에 패킹
튜플의 활용
- 두 변수의 값을 바꿀 때 임시변수가 필요 없다.
- 함수의 리턴 값으로 여러 값을 전달할 수 있다.
튜플을 이용한 함수의 리턴값
튜플 리스트 활용
for a in enumerate(list):
print('{}번째 값: {}'.format(a[0], a[1]))
for a in enumerate(list):
print('{}번째 값: {}'.format(*a))
튜플 딕셔너리 활용
for a in dict.items():
print('{}의 나이는:{}'.format(a[0], a[1]))
for a in dict.items():
print('{}의 나이는:{}'.format(*a))
while문 쓰기
while문
- 조건이 참인 경우 계속 실행하는 반복문
-
while selected not in ['가위', '바위', '보']: selected = input('가위, 바위, 보 중에 선택하세요>')
- for 반복문으로 작성한 코드는 while 반복문으로 작성 할 수 있다.
break, continue
break
- 반복문을 종료시키는 기능
continue
- 반복문의 나머지 부분을 보지 않고, 반복문의 처음으로 돌아가는 기능
try except
예외 처리
try:
# 에러가 발생할 가능성이 있는 코드
except Exception: # 에러 종류
#에러가 발생 했을 경우 처리할 코드
- 경우에 따라 예외 처리 대신 if else를 사용 할 수 있다
예외의 이름을 모를 때
예외 이름을 모르는 경우 처리 방법
try:
# 에러가 발생할 가능성이 있는 코드
except Exception as ex: # 에러 종류
print('에러가 발생 했습니다', ex) # ex는 발생한 에러의 이름을 받아오는 변수
raise
예외 발생
- 사용자가 직접 에러를 발생시키는 기능
- raise Exception # 에러 종류
- 많이 사용하면 코드를 읽기 어려워진다.
논리연산 더 알아보기
and or 두개의 논리 연산
단락평가
- 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 보지 않고 값을 결정
- 복잡한 코드를 단순하게 하는 방식
bool 값과 논리연산
bool([2]) => True
bool('') => False
true, false
- 숫자 0을 제외한 모든 수 - true
- 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트 - true
- 아무 값도 없다는 의미인 None - false
- 빈문자열을 제외한 모든 문자열 - true
List의 다양한 기능
List의 기능
- list.index( value ) : 값을 이용하여 위치를 찾는 기능
- list.extend( [value1, value2] ) : 리스트 뒤에 값을 추가
- list.insert( index, value ) : 원하는 위치에 값을 추가
- list.sort( ) : 값을 순서대로 정렬
- list.reverse( ) : 값을 역순으로 정렬
List와 문자열
List와 String
- 리스트와 문자열은 유사하다.
- 서로 변환이 가능하다.
- list = str.split( ) : 문자열에서 리스트로
- " ".join( list ) : 리스트에서 문자열으로
Slice
slicing
- 리스트나 문자열에서 값을 여러개 가져오는 기능
text = "hello world"
text = text[ 1:5 ]
list = [ 0, 1, 2, 3, 4, 5 ]
list = list[ 1:3 ]
- slice를 하면 해당하는 부분의 리스트나 문자열을 새로 만들어 준다.
- 시작과 끝부분을 얻어 오는 방법
- list[ 2: ] : 2번째부터 끝까지 반환
- list[ : 2 ] : 처음부터 2번째 까지 반환
- list[ : ] : 처음부터 끝까지 전부 반환
Slice의 step
step
- slice한 값의 범위에서 step 값을 주어 그 값만큼 건너뛰어 가져오는 기능
- list[ 시작값:끝값:step ]
Slice로 리스트 수정하기
slice 활용
- 삭제
- del list[ :5 ] : 처음부터 5번째까지 삭제
- 수정
- list[ 1:3 ] = [ 77, 88 ]
- list[ 1:3 ] = [ 77, 88 ,99 ] : 더 많은 개수로 변환
- list[ 1:4 ] = [ 8 ] : 더 적은 개수로 변환
728x90
'파이썬' 카테고리의 다른 글
파이선 입문 1일차 (0) | 2023.11.07 |
---|