울산과학고등학교 파이썬 시각화 수업
파이썬 기초
강사 : 신재춘, 박은상
파이썬 기초
1. 기초 연산 및 단일 자료형
2. 복수 자료형
3. 조건문, 반복문 / 함수
4. Numpy, Pandas
5. 클래스
*참고사이트 : https://wikidocs.net/12
1. 기초 연산 및 단일 자료형
• 변수선언/프린트
• 숫자의 자료형/사칙연산
• 문자의 자료형/문자의 연산
변수선언/프린트
• 변수 선언 :
임의의 문자나 단어에
값을 대입하는것.
• 프린트 :
파이썬 사용자가 볼 수
있게 값을 프린트 하는 것
자료형(숫자)
• int : 정수
• float : 실수
• 사칙연산 : +,-,*,/
//, % : 몫, 나머지
자료형(문자)
• 문자(string) :
str, ‘’, “” 을 이용해
생성가능
• 문자의 연산 : +,*
를 사용할 수 있으며
숫자연산과 차이가
있음
자료형(문자)
• 문자의 인덱싱(위치)
및 길이 -
a[0] : 첫번째 문자
a[-1] : 마지막 문자
• 슬라이싱
• [from:to:by]
문제
• a=‘ab c de’ 일 때,
a[3] = ?
• int(10/3)=?
• “1”+1=?
2. 복수 자료형
• 리스트(list)
• 딕셔너리(dict)
• 튜플(tuple)
• 집합(set)
리스트(list)-1
• 리스트 : 여러개의
원소들을 담을 수
있다.
• 원소 교체 및
인덱싱/슬라이싱
• 원소 추가 및
리스트끼리의
연산
리스트(list)-2
• 리스트 원소 삭제
• a[1:3]=[] : 해당하는
위치의 원소 삭제
• a.remove(10) :
리스트에서
첫번째로나오는 10 삭제
• a.sort() : 오름차순 정렬
• a.count(20) : 해당 원소
개수 반환
• a.index(20) :
해당원소의 위치 반환
• 리스트 안의 리스트
문제
• a=[1,2,3[4,5],[6,7]]
에서 a[2]+a[4][1]=?
• a=[5,4,1,10,2,4,2]
에서 최솟값과 최댓값은?
• [1,2,3,4,5,6,7,8,9][?]
=[2,4,6,8]
딕셔너리(dict)
• 딕셔너리 :
key와 value를
쌍으로 갖는 자료형
• 원소 추가,삭제 :
a[“x”], del a[“x”]
• key, value 확인 :
a.keys(), values(), items()
튜플(tuple), 집합(set)
• 튜플 : 리스트와
유사하지만 그 안의
값들을 생성, 삭제,
수정할 수 없다.
• 집합 : 중복이 없는 원소들로
이루어져있다.
• 교집합, 합집합, 차집합은 각각
&,|,- 로 표현할 수 있다.
• 문제
a={1,2,3,4}
b={2,3,4,5} 일때, a-b, a+b?
a=[1,2,2,3,5]
b=[2,5,6,1,4,5]
에서 a,b에 공통으로 포함된
원소는?
3. 조건문, 반복문, 함수
• 비교연산자 및 논리연산자
- <, ==, !=, or(|), and(&) 등
• 조건문 - if, else문
• 반복문 ­ for문, while문
• 함수
비교연산자 및 논리연산자
• 비교연산자 • 논리연산자
or=|, and=&, not=!
• 포함 관계
Q. [1,2] in a
조건문
• if와 else
• False=0,
True=나머지
• elif • 문제
반복문
• for문
for 변수 in (리스트 or 튜플,
문자열)
• while문
while(조건)
조건이 참이면 계속 반복
모든 while문은 for문으로
변환가능하고 그 역도 성립한다.
• 이중 for문, break
Q. 위의 문제를 for문으로?
문제
문제
• 1. 1x2x…x20=?
hint :
• 0이 100개 들어가있는
리스트 [0,0,0…,0] 만들기
• 1+2+3+…+x <10,000 을
만족하는 가장 작은 정수 x=?
hint : 조건문과 while문 or
break 이용
• * 피보나치 수열
[1,1,2,3,5,8,13,21…] 리스트
만들기(length = 20)
함수
• f(x)=3x+5 처럼
x값의 변화에 따라 값을
반환하는 것
• 입력값이 없거나
여러개일 수 있다.
문제
• def f(x,y): 에서
f(10,20) 을 넣으면
20,10 이 반환되게 하는
함수 f(x,y)를 구현
• def maximum(x,y):
두개의 숫자중 큰값 반환
• 임의의 리스트 (예 : [5,2,3,4,5])
를 넣으면 가장 작은 값을 반환하고,
원소에 문자가 포함되어있으면
0을 반환하는 함수
hint : type(‘a’) = str
함수 - 재귀함수
• 재귀함수 : 함수안에서
그 함수를 또 호출하는 것
• 탈출조건 필수
문제
피보나치 수열을
return하는 함수 fib()는?
ex) fib(2) = 1, fib(3)=2
…,fib(7)=13
4. Numpy, Pandas
• Numpy
• Pandas
• 문자의 자료형/문자의 연산
Numpy
• list와 유사한
복수자료형
• 연산 속도가 list에
비해 빠름.
• 다양한 연산이 가능
Numpy
• 이외에도 수학관련 기능,
랜덤함수, 행렬 연산 등
다양한 기능 지원
Pandas
- 행렬 데이터(엑셀파일 등)를 다룰 때
주로 사용하는 자료형
• Series 생성
• DataFrame 생성
*DataFrame은 Series의 합
DataFrame-1
• Indexing, slicing
• 열 추가 • 행 추가
DataFrame-2
• 조건
• 계산
DataFrame-example
• 데이터 불러오기
• plot 그리기
?
DataFrame-example
• 문제
showTm >= 100 인
dataframe ?
장르가 코미디면서
관객수가 500만이상인
영화는?
관객수 Top 10 영화는?
df.sort_values(“audiAcc”,
ascending = False”)
DataFrame-3
• 데이터프레임 결합 • concatenate • merge
- pd.concat([df1,df2],axis=0) = ?
문제
아래 데이터프레임에서
age가 4의 배수인
age,name 데이터는?
hint : %
5. 클래스
- 함수와 변수들의 집합
• 함수의 모음(add,sub)
• 함수와 변수의 모음
(a,b, add, sub)
*__init__ 은
클래스를 호출하면
바로실행되는 함수
객체 : 인스턴스(변수)+메소드(함수)
• 사각형, 원/넓이를
dict를 사용해 정의
• 사각형, 원/넓이를
객체를 사용해 정의
파일 입출력
• 현재 작업중인
폴더위치확인/현재
폴더에 ‘data’라는 폴더
생성
• 파일 저장 • 파일 불러오기
파일 입출력-데이터프레임
• 문제
다음 내용이 들어있는
txt파일을 만드시오.
100 200
200 300
...
900 1000
Hint :
f.write(1) : X
f.wrtie(str(1)) : O
Plotly example
• https://www.kaggle.com/mervebdurna/visualizing-world-university-
data-with-
plotly?select=education_expenditure_supplementary_data.csv

Python basic grammer