반응형

1. 개요 

- 추상화 (Abstraction) : 복잡한 세부사항을 숨기고, 주요한 기능에만 집중할 수 있게 해주는 개념

=> 변수 (Variable) : 값을 저장

1
2
3
first_name = "지수"
last_namte = "오"
full_name = last_name + first_name
cs

=> 함수(Function) : 명령들을 저장

1
print(1)
cs

=> 객체(Class)


2. 변수 ( 왜 변수는 추상화의 한 종류일까? -> 한 번 변수를 정의하고 나서 이후에 그것을 사용할 시, 변수 이름만 알면 되고 , 그 값 알 필요 없음


(1) 지정 연산자 (Assignment Operator) : 오른쪽에 있는 값을 왼쪽에 있는 변수에 지정해주는 역할

1
2
3
4
5
= 2 + 1
print(x) //3
 
= x + 1
print(x) //4
cs


=> 문자열 포맷팅, 변수 사용하여 아래와 같이 출력

1
2
3
4
5
6
7
8
# Hi, my name is jisu. I'm from Korea.
# My phone number is 010-1234-5678.
 
name = "jisu"
nationallity = " korea"
phone_number = "010-1234-5678"
 
print("Hi, my name is %s . i'm form %s. \n my phone_number is %s" %(name, nationallity ,phone_number ))
cs



3. 함수 기초


 -> 기본 구조

1
2
3
4
5
def 함수이름(파라미터): #header
 
    실행할 문장 1 #body
    실행할 문장 2
    실행할 문장 3
cs

 


파라미터가 없을 때는 함수이름()의 형식으로 함수를 불러올 수 있다.  

반면, 파라미터가 있을 때는 함수이름(파라미터1, 파라미터2, ...)의 형식으로 함수를 불러올 수 있다.


(1) 내장 함Built-in Function) : print / int /str


(2) 문자열 출력 함수 

1
2
3
4
5
6
7
8
#정의 
#header 
def hello():
    #body : 들여쓰기 하고 써야함 
    print("Hello world")
    print("welcome")
 
hello() #hello 라는 함수 돌리기
cs


(3) 파라미터 ( 들여쓰기 정도가 같은 명령들의 집합 : block -> 잘못되면 오류 발생)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def hello(name):
    print("Hello, %s!" % (name))
    print("Welcome to Codeit!")
  
hello("유재석")
hello("김태희")
 
def print_sum(a, b): #6
    print(a + b)
 
def print_product(a, b): #12
    print(a * b)
  
def print_residue(a, b): #1
    print(a % b)
  
def print_average(x, y, z): #10.0
    print((x + y + z) / 3)
 
print_sum(42)
print_product(34)
print_residue(133)
print_average(51015)
 
# 프로필을 출력하는 함수
def print_profile(name, age):
    print(name)
    print(age)
 
my_name = "김연우"
my_age = 45                   
print_profile(my_name, my_age)     
cs


4. syntatic sugar

-> 자주 쓰이는 표현을 더 간략하게 쓸 수 있게 해주는 문법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 다음 두 줄은 같습니다
= x + 1
+= 1
 
# 다음 두 줄은 같습니다
= x + 2
+= 2
 
# 다음 두 줄은 같습니다
= x * 2
*= 2
 
# 다음 두 줄은 같습니다
= x - 3
-= 3
 
# 다음 두 줄은 같습니다
= x / 2
/= 2
 
# 다음 두 줄은 같습니다
= x % 7
x %= 7
cs


5. Optional Parameter

-> 파라미터의 기본값을 설정해두면 함수 호출 할 때 파라미터에 해당되는 값을 넘겨주지 않을 경우, 파라미터가 기본값을 갖게 됨

1
2
3
4
5
6
7
8
9
10
11
12
13
def myself(name, age, nationality = "한국"): #optional parameter은 모두 마지막에 아니면 에러
    print("내 이름은 %s" % name)
    print("나이는 %d살" % age)
    print("국적은 %s" % nationality)
 
myself("오지수"1)            # 기본값이 설정된 파라미터를 바꾸지 않을 때
-> 내 이름은 오지수
   나이는 1살
   국적은 한국
myself("랄라"1"미국")     # 기본값이 설정된 파라미터를 바꾸었을 때
-> 내 이름은 랄라
   나이는 1살
   국적은 
cs


6. 파라미터 연습 문제

1
2
3
4
5
6
7
8
9
10
#파라미터 연습 
 
#문자열 first_name(이름)과 문자열 last_name(성)을 파라미터로 받는 함수 print_full_name 쓰세요
 
def print_full_name(first_name, last_name):
    print(last_name, first_name,)
 
>> print_full_name("윤수","이")
 
// 이 윤수
cs


7. 거스름돈 계산기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#거스롬돈 계산기 
# 33,000원짜리 물건을 사기 위해 100,000원을 냈다면
# 50,000원 1장, 10,000원 1장, 5,000원 1장, 1,000원 2장과 같이 '가장 적은 수'의 지폐를 거슬러 주는 방식입니다.
 
# payment(지불한 금액)와 cost(가격)라는 파라미터 두개를 필요로 하는 함수 calculate_change를 쓰세요. 
# 이 함수는 거스름돈을 위해 50,000원짜리와 10,000원짜리, 5,000원짜리, 1,000원짜리가 각각 몇 장 필요한지 
출력해주는 역할을 합니다.
 
def calculate_change(payment, cost):
    change = payment - cost
    fifty_thousand_count = int(change/50000)
    change = change % 50000
    ten_thousand_count = int(change/10000)
    change = change % 10000
    five_thousand_count = int(change/5000)
    change = change % 5000
    one_thousand_count = int(change/1000)
    print("50000원 지폐: %d장" % (fifty_thousand_count))
    print("10000원 지폐: %d장" % (ten_thousand_count))
    print("5000원 지폐: %d장" % (five_thousand_count))
    print("1000원 지폐: %d장" % (one_thousand_count))
 
>>calculate_change(500000378000)
50000원 지폐: 2장
10000원 지폐: 2장
5000원 지폐: 0장
1000원 지폐: 2장
cs


반응형

'Language Study > Python' 카테고리의 다른 글

6. 모듈  (0) 2019.07.15
5. 제어문  (0) 2019.05.22
4. 추상화 심화  (0) 2019.05.08
2. 자료형  (0) 2019.03.30
1. Python 시작하기  (0) 2019.03.28

+ Recent posts