1. 자료형
1-1. 딕셔너리
dict1 = {'name': 'Chicken', 'age':100, 'grade' : [3.0, 4.0, 4.5, 3.5]}
dict1.key()
> dict_keys(['name', 'age', 'grade'}
dict1.values()
> dict_values(['chicken', 100, [3.0, 4.0, 4.5, 3.5]])
dict1.items()
> dict_items([('name', 'Chicken'), ('age', 100), ('grade', [3.0, 4.0, 4.5, 3.5])])
#딕셔너리의 키, 값, 키-값 쌍을 나타내는 특수한 데이터 타입이므로 dict_key, dict_values, dict_items로 표현
2. 제어문
2.1 for 반복문
num_list = [1,2,3]
for num in num_list: #num_list배열 안에 있는 원소는 num
print(num)
> 1
2
3
2-2. while 반복문
num = 1
while num < 4;
print(num)
num += 1
> 1
2
3
2-2-1. break 명령
num = 1
double = []
while True:
double.sppend(num * 2)
if len(double) == 3:
break
num += 1
print(double)
> [2, 4, 6]
2-2-2. continue 명령
num_range = range(1,46)
num_list = list(num_range)
print(num_list)
>[1,2,3,4,......,43,44,45]
import random
random.shuffle(num_list)
print(num_list)
> [3,5,43,37, ..... 1~45랜덤으로 추출]
word = []
while len(word) < 7:
random.shuffle(num_list)
num_selected = num_list[0]
if num_selected in word:
continue # if문 수행 시 반복문 처음으로 돌아가서 재실행
word.append(num_selected) #if문 수행 안될 시 실행
print(num_selected)
print(word)
> 35
18
25
43
45
11
[35, 18, 25, 43, 35, 11]
2-3. 예외처리 (try ~ except)
data = {'name' : 'Chicken', 'age' : 100, 'grade' : [3.0, 4.0, 4.5, 3.5]}
try :
print('주소', data['address'])
except:
print('주소 정보가 없습니다.')
> 주소 정보가 없습니다.
# 딕셔너리에 'address'라는 키가 존재하면 매칭된 값 출력(try~부분)
# 오류 발생 시 (except~부분) 출력
data = {'name' : 'Chicken', 'age' : 100, 'grade' : [3.0, 4.0, 4.5, 3.5]}
try :
print('이름', data['name'])
except:
print('이름 정보가 없습니다.')
finally: #오류 발생 여부와 관계없이 반드시 실행
print('모든 작업이 완료되었습니다.')
> 이름 : Chicken
모든 작업이 완료되었습니다.
3. 함수
3-1. 람다 (lambda) 함수
def add_ont(num):
return num + 1
answer = add_one(1)
print(answer)
> 2
add_one_list []
for x in [1, 2, 3]:
y = add_one(x)
add_one_list.append(y)
print(add_one_list)
> [2, 3, 4]
add_one_lambda = []
add_fuinc = lambda x:add_one_lambda.append(x+1)
for x in [1, 2, 3]:
add_func(x)
print(add_one_lambda)
> [2, 3, 4]
new_add_func = lambda x, y:x+y
answer = new_add_func(2, 3)
print(answer)
> 5
3-2. enumerate 함수
: 리스트, 튜플 등 원소값에 순서(인덱스)가 있는 자료형을 입력받아 개별 원소를 인덱스 숫자와 함께 반환
# 아래 코드에서 for 반복문은 인덱스 위치와 원소값을 구분하여 처리할 수 있음 (i: 인덱스, num: 원소값)
for i, num in enumerate(nums):
print(i, num)
> 0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
3-3. map 함수
: 여러 개의 원소를 갖는 자료형(리스트, 튜플 등)과 이들 원소를 입력값으로 받는 함수를 매개변수로 가짐
#1. 아래 코드에서 map 함수는 add_one함수와 nums(리스트)를 입력받음
#2. nums 리스트의 원소들은 하나씩 add_one 함수에 입력되고, 함수를 실행한 결과값 (1을 더한 값)이 순서대로 반환
add_one = lambda x:x+1
results = map(add_one, nums)
print(list(results))
> [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
3-4. filter 함수
: map함수와 비슷하게 반복 가능한 여러 원소를 갖는 자료형과 각 원소를 입력받을 수 있는 함수를 매개변수로 입력받음
#1. 아래 코드에서 nums 리스트의 원소들은 하나씩 even_num 함수에 입력됨
#2. even_num의 출력값이 True일 때만 filter 함수의 출력값에 포함
#3. 2로 나눈 나머지가 0이 되는 수(짝수)들만 results 변수에 저장
even_num = lambda x:x%2 == 0
results = filter(even_num, nums)
print(list(results))
> [2, 4, 6, 8, 10]
5-5. reversed 함수
: 원소 순서 정반대로 뒤집음
print(list(reversed(nums))
> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
3-6. sorted 함수
: 배열의 순서 오름차순 정렬
sorted([3, 2, 1])
> [1, 2, 3]
3-7. zip 함수
: 원소 개수가 같은 자료형들에 대해 각 원소들을 인덱스 순서대로 매핑하여 짝지음
chars = ['a', 'b', 'c']
nums = [1, 2, 3]
pairs = zip(chars, nums)
print(list(pairs))
> [('a', 1), ('b', 2), ('c', 3)]
3-8. eval 함수
: 문자열을 압력받아 파이썬 코드로 변환하여 실행
#print(nums)를 매개변수에 전달하면 print 명령을 실행, nums 변수의 값인 리스트가 출력
eval('print(nums)')
> [1, 2, 3,4 ,5 ,6 7, 8, 9, 10]