반응형

1. return문

- 함수 호출 부분(return call)을 return을 따르는 값으로 대체 

- 현재 함수 실행 멈추고 함수 호출 끝나는 지점부터 다시 진행

def f(x):
    print("F 시작")
    return x+1
    print("f 끝"//return x+1이 실행되고나서, f함수의 실행은 중단되고 함수가 
                    불러온 print(f(2))의 뒷부분부터 파이썬 다시 진행
                    -> dead code라고 함
 
 
def g(x):
    print("g 시작")
    return x*x-1
    print("g끝")
 
print(f(2)) // = print(3)
print(g(3// = print(8)
print(f(2+ g(3)) // print(3+8)
 
>>
f 시작
3
g시작
8
f시작
g시작
11
cs


2. return VS print

1) 사례 1

def print_square(x): //파라미터 제곱 출력, 리턴값 지정되어있지 않으므로 함수 리턴 값 = none
    print(x * x)
  
def get_square(x): //파라미터 제곱 리턴, 출력값 X
    return x * x
 
print_square(3)    // print(x*x)에 의해 9 출력
print("----------"
get_square(3)       // return 문에 의해 9로 대체, 그러나 대체된 값을 출력하라는 명령 x -> 아무것도 출력X
print("----------")
print(get_square(3)) //get_square 함수의 return 문에 의해 대체된 값을 출력하는 명령 -> 9 출력
print("----------")
print(print_square(3)) //print_square함수의 print(x*x)에 의해 9 출력 , 함수 호출 부분은 리턴값 대체
                       // 함수 리턴 값은 none -> none도 함께 
cs


2) 사례 2

def secret_number():
    print("우리의 비밀번호는 = ")
    return 486
 
print(secret_number())
 
>> 우리의 비밀번호는 =
486
 
//함수정의 건너뛰고 print문 도착 -> secret_number()라는 함수 호출 때문에, 다시 정의로 올라감
//첫번째 프린트문 출력 -> 486리턴 명령 O -> 
//1.함수 실행 중단 , 2. 함수 호출한 secret_number()라는 부분 486로 대체되어 출력
cs


3) 사례 3

//함수 내부에서 print문과 return문의 순서가 바뀌었다면?
 
def secret_number():
    return 486
    print("우리의 비밀 번호는: ">> dead code
 
print(secret_number())
 
>>486만 출력됨
>>왜? 486리턴되서 함수 실행이 종료 
cs


3. global vs local 변수

1) local 변수

-함수 안에서 사용하는 변수는 일반적으로 함수 내부에서만 유효하여 함수 밖에서는 쓸 수 없음

def x_is_one():
    x = 1
 
= 5 //x를 함수 바깥으로 빼면 함수 바깥에 정의된 5가 
x_is_one()
print(x)
 
>>5
cs


2) global 변수

-함수 안의 x와 함수 밖의 x가 통일하려면 

- 하나의 변수를 다른 여러 함수안에서 사용하고 싶을때, 함수 내 변수가 global 변수라고 표시해줘야함

def x_is_one():
    global x
    x =1
 
=5
x_is_one()
print(x)
 
>>1
cs


3) 사례 1

def next_number():
    global x
    x = x+1
 
=0 
next_number()
print(x) 
 
>>1
cs


## 여러 함수에서 통일된 global 변수를 쓰면 프로그램 전체에 영향을 줄 수도 있으니 주의!


4. 상수(global 변수의 좋은 예)

-프로그램 내내 변화하지 않는 변수 값 

-처음에 값을 정의하고 나서 끝날때 까지 계속 같은 값을 갖고 있는 것

/ 꼭 대문자로 정의 / 이름만 대문자로 쓴 변수 일 뿐, 함수 안에서 다시 정의해도 오류 X


PI = 3.14   # 원주율
 
def calculate_area(r):
    return PI * r * r
 
radius = 6    # 반지름
print("반지름이 %.2f면 원 넓이는 %.2f" % (radius, calculate_area(radius)))
 
 
radius = 12   # 반지름
print("반지름이 %.2f면 원 넓이는 %.2f" % (radius, calculate_area(radius)))
 
>>반지름이 6.00면 원 넓이는 113.04
반지름이 12.00면 원 넓이는 452.16
cs


5. 코드를 짤 때는 누구나 보기 쉽게 해야하는 스타일이 존재!

#이름 규칙 : 모든 변수, 함수 이름은 소문자 / 여러 단어일 경우 _로 나누기

#모든 상수 이름은 대문자/ 여러 단어일 경우 _로 나누기

#의미있는 변수 , 함수 이름 

# bad
= 2
= 3.14
print(b * a * a)
 
# good
radius = 2
pi = 3.14
print(pi * radius * radius)
cs

#화이트 스페이스 : 적당한 띄어 쓰기, 엔터키

#적당한 추상화, 적당한 코멘트 

# good(설명이 부족하거나 많지 않음)
PI = 3.14   # 원주율
 
# 반지름이 r인 원의 둘레 계산
def calculate_circumference(r):
    return 2 * PI * r
 
# 반지름이 r인 원의 넓이 계산
def calculate_area(r):
    return PI * r * r
 
# 반지름이 r인 구의 부피 계산
def calculate_volume(r):
    return 4 / 3 * PI * r * r * r
 
# 반지름이 4인 경우
radius = 4    # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))
print(calculate_volume(radius))
 
# 반지름이 8인 경우
radius = 8    # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))
print(calculate_volume(radius))
cs

#적당한 줄 길이 : 한 줄에 80자는 넘지 말자


##퀴즈 

짝수인지 홀수인지 판단해주는 is_evenly_divisible 함수를 쓰세요. 

is_evenly_divisible는 number(수)를 파라미터로 받습니다. 
짝수인 경우에는, 즉 number가 2로 나누어 떨어질 경우에는 True를 리턴해줍니다. 
홀수인 경우에는, 즉 number가 2로 나누어 떨어지지 않을 경우에는 False를 리턴해줍니다. 

함수 안에는 print문을 사용하시면 안 되고, return문을 사용하여야 합니다. 
'불린' 개념을 사용하면, 함수 단 '한 줄'로 쓸 수 있습니다!



def is_evenly_divisible(number):
  return(number % 2 == 0)
 
print(is_evenly_divisible(3))
print(is_evenly_divisible(7))
print(is_evenly_divisible(8))
cs


반응형

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

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

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
반응형

<개요>

 

1. 자료형 (Data type)

 

     1) 숫자 : 정수 (integer : -3, -2, -1, 0 , 1, 2, 3 ...) / 소수(floating point: 3.14, -7.3, 2.0)

 

     2) 문자 : "Hello", "World", "2" / ex) "hello" + 'world' => "helloworld" / "2" + '5' => "25"(이오)

 

     3) Boolean : True / False

 

 

 

2. 숫자형 (Numbers)

연산자
+덧셈 (addition)
-뺄셈 (subtraction)
*곱셈 (multiplication)
/나눗셈 (division)
%나머지 (modulo)
**거듭제곱 (exponentiation)


 
#덧셈
print(4.0 + 7.0->11.0
 
#뺄셈
print(2-4-> -2
 
#곱셈
print(5*3->15
 
#나머지
print(7%3->1
 
#거듭제곱
print(2**3.0->8.0
 
#나눗셈
print(7/2->3.5
print(6/3-> 2.0
print(7.0/2-> 3.5
print(6.0/2.0-> 3.0
 
#사칙연산 순서
print(2+3*2->8
print(2*(2+3)) ->10
 
#정수형 간의 연산 값은 정수로 나옴
#소수형 간의 연산 값은 소수로 나옴
#정수 + 소수 라면 = 소수 값
#나눗셈 기본 값은 소수값
 
 
cs


3. 문자열

1) 문자열 만드는 방법 : 

'do you want to take cs101?'
"do you want to learn python?"
'코드잇'
"오지수"
 
cs


2) 문자열을 만드는 방법 다양한 이유 -> 문자열 내에  ' 또는 " 를 포함시키고 싶을 때에는, 서로 다른 인용부호 사용

' "" '

" ' ' "


#틀린 예
print('i'm exited to learn python!')
#맞는 예
print("i'm exited to learn python!")
cs


$ python hello.py
i'm exited to learn python!
cs


3) 덧셈을 이용해 문자열 합치기 : 문자열에서 + 은 왼쪽 문자열과 오른쪽 문자열을 이어 연결하라는 의미

print("hello" + "world")
 
language = "파이썬"
print("우리가 배울 것은 " + language + "!")
 
print("3" + "5")
cs


$ python hello.py
helloworld
우리가 배울 것은 파이썬!
35
cs

4) 곱셈을 이용해 문자열 반복하기 : 문자열에서 *은 왼쪽문자열을 오른쪽의 수만큼 반복하라라는 의미

fly = "날아라"
print("떴다 떳다 비행기!")
 
print(fly * 2)
cs

$ python hello.py
떴다 떳다 비행기!
날아라날아라
cs


4. 형변환(type conversion/ type casting) : 논리적으로 가능한 경우에만 가능 진짜 순수 문자열은 숫자로 바뀔 수 없자나용?

#숫자형 -> 숫자형
print(int(3.8)) #int => integer(정수) =>>>3출력
print(float(3)) #float => floating point(소수) =>>>3.0출력
 
#문자열 -> 숫자형
print(int("2"+ int("5")) #print(2 + 5) =>>>7출력
print(float("1.1"+ float("2.5")) #print(1.1 + 2.5) =>>>3.6출력
 
#숫자형 -> 문자열 
#str => String( 문자열로 변형 시켜줌)
print(str(2+ str(5)) #print("2" + "5") =>>>25출력
print("제 나이는 " + str(7+ "살입니다."# =>>>제 나이는 7 살 입니다. 
cs


5. 문자열 포맷팅

코드자료형
%d정수(Integer)
%f소수(Floating point)
%s문자열(String)
year = 2016
month = 1
day = 16
day_of_week = "월"
 
print("오늘은" + str(year) + "년" + str(month) + str(day) + "일" + day_of_week + "요일입니다")
 
print("오늘은 %d년 %d월 %d일 %s요일입니다." % (year, month, day, day_of_week))
#오늘은 2016년 1월 17일 월요일입니다.
 
print(1.0 /3)
 
print("1나누기 3은 %.4f" % (1.0 / 3)) #1 나누기 3은 0.3333
print("1나누기 3은 %f" %(1.0 / 3)) #1 나누기 3은 0.3333333333333333
print("1나누기 3은 %.2f" % (1.0 / 3)) #1 나누기 3은 0.33
cs


6. 불린(boolean)

-명제 : 참 또는 거짓이 확실한 문장

-조건 연산 부호

연산자
>초과 (greater than)
<미만 (less than)
>=이상 (greater than or equal to)
<=이하 (less than or equal to)
==같다 (equal to)
!=같지 않다 (not equal to
  1. 식이 and => 왼쪽과 오른쪽 모두 True여야만 참이고, 나머지 경우에는 모두 False입니다.
  2. 식이 or => 왼쪽과 오른쪽 모두 False여야만 거짓이고, 나머지 경우에는 모두 True입니다.
  3. not True => False /  not False => True입니다.
  4. 괄호가 포함된 연산은, 괄호 안부터 값을 계산하고 그 후 괄호 밖과 연산
= 3
print(x > 4 or (x < 2 or x != 3)) #=> false
 
print((4 < 3 and 12 > 10or 7 == 7# => true
print(not 4 < 3# => true
print(not not True) # => true
cs


7. type함수 : 어떤 값이 무슨 자료형인지 기억나지 않을 때 -> type사용

#각 자료형 별 type 함수
print(type(1))
print(type(1.0))
print(type("1"))
print(type(2>4))
print()
 
#헷갈리는 두 자료형 비교
print(type("True"))
print(type(True))
print()
 
#print함수 type확인
print(type(print))
 
cs


$ python hello.py
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
 
<class 'str'>
<class 'bool'>
 
<class 'builtin_function_or_method'>
cs


8. Floor Division

// : 나눗셈 연산 후 결과값을 내림 => 즉 소수 부분 버리고, 정수 부분만 남겨 둠 

print(7 / 4#1.75
print(int(7 / 4)) # 1
print(7 // 4# 1
 
#소수형 있을 경우 결과값이 소수형으로 나옴
print(5.0 // 2#2.0
print(5 // 2.0#2.0
print(5.0 // 2.0#2.0
cs


9. 반올림

round : 소수형 반올림

print(round(1.4211))      # 1.421을 소수점 1째 자리로 반올림 ->1.4
print(round(2.78622))     # 2.7562를 소수점 2째 자리로 반올림 -> 2.79
print(round(3.1415924))   # 3.141592를 소수점 4째 자리로 반올림 -> 3.1415
print(round(4.34))          # 4.34를 소수점 0번째 자리로 반올림 -> 4
cs


10. 줄바꿈 기호 (newline Character)

print("안녕하세요\n오지수입니다"
#안녕하세요
#오지수입니다
cs


반응형

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

6. 모듈  (0) 2019.07.15
5. 제어문  (0) 2019.05.22
4. 추상화 심화  (0) 2019.05.08
3. 추상화  (0) 2019.04.06
1. Python 시작하기  (0) 2019.03.28
반응형

# python은 간결해서 컴퓨터 과학의 기초와 문제 해결에 집중할 수 있다.

 

#웹 사이트들 언어 수요

출저 : 위키피디아 / 웹사이트 언어 사용 

 

 

#분야별 자주 사용하는 언어

  • 데이터 과학, 공학 => Python, R, MATLAB
  • 웹 프런트엔드 => HTML/CSS + JavaScript
  • 웹 백엔드 (서버) => Python, Ruby, JavaScript, Java, Go, C, C++, PHP 등
  • 아이폰 어플 => Objective-C, Swift (거의 Swift로)
  • 안드로이드 어플 => Java, Kotlin (Kotlin으로)
  • 게임 개발 => C#, C++
  • 임베디드 시스템 => C, C++

1. python 설치

 

Download Python

The official home of the Python Programming Language

www.python.org

 -> Python 3 설치 -> python-3.7.2.exe 다운로드 -> Add Python 3.7 to PATH 체크박스 체크

 -> 계속 동의 

 

2. PyCharm 설치하기 

 

Download PyCharm: Python IDE for Professional Developers by JetBrains

Intelligent Python IDE with refactorings, debugger, code completion, on-the-fly code analysis and coding productivity orientation

www.jetbrains.com

->PyCharm 다운로드 -> Community용 다운로드 -> pycharm-community-2019.1.exe

3. pycharm 사용하기

  • create new project

폴더 및 파일 생성
파일 생성 시 .py -> Run 'hello_world' -> console창에서 실행결과 나옴 

 

반응형

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

6. 모듈  (0) 2019.07.15
5. 제어문  (0) 2019.05.22
4. 추상화 심화  (0) 2019.05.08
3. 추상화  (0) 2019.04.06
2. 자료형  (0) 2019.03.30

+ Recent posts