Python 기본 다지기

  • 함수
    • 왜 함수를 사용할까?
    • 매개변수와 인수
    • 함수의 여러종류의 형태
  • 사용자 입력과 출력 - input(), print()
  • 파일 읽고 쓰기

함수를 사용하는 이유

  • (가) 반복적으로 사용하는 부분을 함수로 만들어서 반복작업을 줄일 수 있다.
  • (나) 나중에 수정이나 기능을 추가하려고 할때 손쉽게 가능하다.

기본적인 함수 유형

### 기본적인 함수 유형
### 방법 : def 함수이름(매개변수1, 매개변수2)
def sum(a,b):
    print(a+b)

### 기본적인 함수 유형-값을 돌려줄때
### return 을 이용하여 값을 돌려준다.
def sum(a,b):
    return a+b

### 정의된 함수를 사용할 때, 
### 방법 : [함수이름](인수1, 인수2)
sum(3,5)

### 값을 돌려받아 변수에 저장
result = sum(3,5)
print(result)
In [3]:
def sum(a,b):
    print(a+b)
    
sum(3,4)
7
In [4]:
def sum(a,b):
    return a+b
    
result = sum(3,4)
print(result)
7

전달되는 값이 있을 수도, 없을 수도 있음.

In [5]:
def say():
    return 'Hi'

say()
Out[5]:
'Hi'
In [7]:
def say(name):
    return 'Hi' + name

say("toto")
Out[7]:
'Hitoto'

전달되는 값(인수가 여러개일 경우)는 어떻게 할까?

In [8]:
def sum_many(*args):
    sum = 0
    for i in args:
        sum = sum + i
    return sum
In [10]:
a = sum_many(3,4,5,6,9)
*args처럼 입력 변수명 앞에 *를 붙이면 입력값들을 전부 모아 튜플로 만들어준다.
In [11]:
def sum_mul(choice, *args):
    if choice == "sum":
        result = 0
        for i in args:
            result = result + i
    elif choice == "mul":
        result = 1
        for i in args:
            result = result * i
    return result
In [12]:
## 값들의 합을 구하기
result = sum_mul('sum', 1,2,3,4,5)
print(result)
15
In [14]:
## 값들의 곱을 구하기
result = sum_mul('mul', 1,2,3,4,5)
print(result)
120
In [16]:
### 함수를 활용한 데이터 확인
import pandas as pd

국내 음식점 데이터 가져오기

In [38]:
dat = pd.read_csv("2016 전국 음식점 정보.csv", engine='python')
dat.head(3)
Out[38]:
제목 카테고리1 카테고리2 카테고리3 지역명 시군구명 개요
0 엄마손충무김밥 음식 음식점 한식 경상남도 통영시 KBS "1박2일" 욕지도 복불복에 추천된 충무김밥집이다.
1 평창동의 봄 음식 음식점 한식 서울 종로구 평창동의 명소, 평창동 언덕마을에 유럽풍의 아름다운 음식점 & 카페. 1층에는 커피...
2 음봉가든 음식 음식점 한식 경기도 가평군 음봉가든 (구, 진짜네집)은 자연산 민물고기만을 고집하는 50년 전통의 진정한 매운...
In [39]:
dat.count()
Out[39]:
제목       6109
카테고리1    6107
카테고리2    6107
카테고리3    6109
지역명      6108
시군구명     6108
개요       6074
dtype: int64
In [40]:
dat_p = dat.loc[dat.제목=="평창동의 봄", ]
len(dat_p)
Out[40]:
1
In [35]:
def search(query):
    dat_p = dat.loc[dat.제목==query, ]
    if len(dat_p) < 1:
        print("당신이 찾는 음식점이 없어요")
    else:
        return dat_p
In [36]:
query = input("당신이 찾는 음식점 이름 ?")
search(query)
당신이 찾는 음식점 이름 ?토토
당신이 찾는 음식점이 없어요

실습해보기

  • '카테고리 3'가 '한식'인 것만 검색해 보자.

도전문제

  • 자신이 검색한 정보를 excel 파일로 만들어보자.