인원 : 4명
일시 : 2017년 6월 28일 수요일 / 09 : 00 ~ 12 : 00
장소 : 바르바커피 구로디지털점 / 서울특별시 관악구 시흥대로 550
- 진행 순서 -
1. 소개
2. 파이썬이란?
3. 파이썬 기초 공부
4. 파이썬 실습
- 내용 정리 -
1. 자료형
2. 리스트
3. 리스트 - in 연산
4. for in 반복문
5. 문자열 . format
6. 에러 조심
< 자료형 (Data type) >
variable type이라서 자동으로 정해진다.
숫자를 넣으면 숫자형으로 자동으로 정해지고, 문자를 넣으면 문자형으로 정해진다.
서로 다른 자료형으로 바꾸는 강제 캐스팅이 있다.
같은 형끼리는 연산이 가능하다.
int : 정수형
→ 1, 5, 142, -623, 0, 𝌀
float : 소수까지 가능
→ 0.0, 3.14, -51.9, 𝌀
bool : 진리값
→ true, false
str : 문자열
→ ‘스터디’, “정보컴퓨터공학부”, 𝌀
list : 리스트
< 리스트 (List) >
Alice의 배열(array)과 비슷하다.
리스트 안에 여러 자료형(int, str, list 등)을 동시에 넣을 수 있다.
리스트 list1에 있는 데이터를 불러올 때는 list1[숫자]라고 쓴다.
0번 칸이 첫 번째 데이터가 들어가는 곳이다.
다른 자료형과 마찬가지로 리스트끼리 연산 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | list1 = [1, 42, 52, 12, 3] # 리스트 1 list2 = [0, '스터디', 2, list1] # 리스트 2 print(list2) # 리스트 2 모두 출력 print(list2[0:]) # 리스트 2 모두 출력 print(list2[1]) # 리스트 2의 2번째 칸 출력 print(list2[2]) # 리스트 2의 3번째 칸 출력 print(list2[2:3]) # 리스트 2의 3번째 칸부터 4번째 칸 전까지 출력 print(list2[1:3]) # 리스트 2의 2번째 칸부터 4번째 칸 전까지 출력 print() print() n = 12 # n을 12로 선언 if n in list1 : # 만약 리스트 1에 n이 있다면(즉 12가 있다면) 실행 print('리스트 1의 세 번째 칸에는 {}가 있다' .format(list1[2])) # 리스트 1의 첫 번째 칸 출력 print('리스트에 {}가 있다' . format(n)) # n 출력 | cs |
[0, '스터디', 2, [1, 42, 52, 12, 3]]
[0, '스터디', 2, [1, 42, 52, 12, 3]]
스터디
2
[2]
['스터디', 2]
리스트 1의 세 번째 칸에는 52가 있다
리스트에 12가 있다
list1.append(4) : 리스트 list1 맨 뒤에 4를 추가한다.
del list1[2] : 리스트 list1 3번 칸을 지운다.
list1.remove(10) : 리스트 list1에 10이 있다면 가장 앞에 있는 10을 지운다.
| list1 = [1, 2, 3] list1.append(4) n = 12 list1.append(n) # 리스트 1에 n을 추가한다. if n in list1 : print('{}가 리스트에 있다.' .format(list1)) del list1[0] # 리스트 1의 1번 칸을 지운다. if n in list1: print('{}가 리스트에 있다.' .format(list1)) list1.remove(4) # 리스트 1에 4가 있을 경우 가장 앞에 있는 4를 지운다. if n in list1 : print('{}가 리스트에 있다.' .format(list1)) | cs |
[1, 2, 3, 4, 12]가 리스트에 있다.
[2, 3, 4, 12]가 리스트에 있다.
[2, 3, 12]가 리스트에 있다.
< 리스트 – in 연산 >
리스트 안에 물어본 데이터가 있는지 없는지 확인하는 코드
리턴 값은 bool type
< for in 반복문 >
Alice의 for in each와 비슷하다.
리스트의 길이만큼 반복문 안의 코드를 반복 실행한다.
| list1 = [1, 25, 3, 51,] for i in list1 : print (i) | cs |
| for i in range(5) : print(i) print() list1 = ['철수', '영희', '바둑이'] for i, name in enumerate(list1): print('{}번: {}'.format(i + 1, name)) | cs |
0
1
2
3
4
1번: 철수
2번: 영희
3번: 바둑이
< 문자열 . format >
자료형에 상관없이 중괄호 {} 순서에 따라서 온점 . 뒤에 있는 것을 차례로 넣는다.
온점 < . >은 출력형식과 데이터 구분
쉼표 < , >는 출력형식끼리, 데이터끼리 구분
문자열의 대괄호 자리에 format 뒤의 괄호 안에 들어있는 값을 하나씩 넣는다.
문자열에 포함된 대괄호 개수 보다 format안에 들어 있는 값의 수가 많으면 정상 동작
< 에러 조심 >
스페이스바 4번과 탭은 다르게 인식된다.
따옴표 < ‘ ’ >를 출력하고 싶으면 역슬래시 < \ >를 쓰거나 “ ”로 감싸야한다.
따옴표 < “ ” >를 출력하고 싶으면 역슬래시 < \ >를 쓰거나 ‘ ’로 감싸야한다.
print(‘나는 \'학생\'이다.’) → 나는 ‘학생’이다.
print(“나는 ‘학생’이다.”) → 나는 ‘학생’이다.
- 예제 -
| for i in range(1, 10) : print(2, '*', i, '=', 2*i) | cs |
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
| for i in range(1, 10) : for j in range(1, 10) : print(i, '*', j, '=', i*j) print() | cs |
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
| for i in range(3) : for j in range(1,10) : for k in range(1,4) : print("%d * %d = %d" %(i*3 + k, j, (i*3 + k)*j), end = ' ') print() print() | cs |
1 * 1 = 1 2 * 1 = 2 3 * 1 = 3
1 * 2 = 2 2 * 2 = 4 3 * 2 = 6
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27
4 * 1 = 4 5 * 1 = 5 6 * 1 = 6
4 * 2 = 8 5 * 2 = 10 6 * 2 = 12
4 * 3 = 12 5 * 3 = 15 6 * 3 = 18
4 * 4 = 16 5 * 4 = 20 6 * 4 = 24
4 * 5 = 20 5 * 5 = 25 6 * 5 = 30
4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
4 * 7 = 28 5 * 7 = 35 6 * 7 = 42
4 * 8 = 32 5 * 8 = 40 6 * 8 = 48
4 * 9 = 36 5 * 9 = 45 6 * 9 = 54
7 * 1 = 7 8 * 1 = 8 9 * 1 = 9
7 * 2 = 14 8 * 2 = 16 9 * 2 = 18
7 * 3 = 21 8 * 3 = 24 9 * 3 = 27
7 * 4 = 28 8 * 4 = 32 9 * 4 = 36
7 * 5 = 35 8 * 5 = 40 9 * 5 = 45
7 * 6 = 42 8 * 6 = 48 9 * 6 = 54
7 * 7 = 49 8 * 7 = 56 9 * 7 = 63
7 * 8 = 56 8 * 8 = 64 9 * 8 = 72
7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
- 알고리즘 문제 -
number_generator함수는 x와 n을 입력 받습니다.
2와 5를 입력 받으면 2부터 시작해서 2씩 증가하는 숫자를 5개 가지는 리스트를 만들어서 리턴합니다.
[2,4,6,8,10]
4와 3을 입력 받으면 4부터 시작해서 4씩 증가하는 숫자를 3개 가지는 리스트를 만들어서 리턴합니다.
[4,8,12]
이를 일반화 하면 x부터 시작해서 x씩 증가하는 숫자를 n개 가지는 리스트를 리턴하도록 함수 number_generator를 완성하면 됩니다.
| def number_generator(x, n): list_A = [] for i in range(n) : list_A.append(x*(i+1)) return list_A print(number_generator(3,5)) | cs |
def average(list):
함수를 완성해서 매개변수 list의 평균값을 return하도록 만들어 보세요.
어떠한 크기의 list가 와도 평균값을 구할 수 있어야 합니다.
| def average(list): sum = 0 count = 0 for i in list : sum = sum + i count = count + 1 aver = sum / count return aver list = [5,3,4] print("평균값 : {}".format(average(list))); | cs |
- 과제 -
개인 프로젝트(파이썬) 주제 정하기
파이썬 예제 3 문제 풀기