파이썬 사용자 입력



자신이 만든 프로그램에 사용자가 입력 할 수 있도록 하는 방법에 대해 알아보겠다.


사용자의 입력을 받기 위해 input(), raw_input() 함수를 사용한다.


사용자 입력 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


print "숫자를 입력 하세요(1~3)"

number = input()


print "문자를 입력하세요 (a~c)"

char = raw_input()


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)

1

문자를 입력하세요 (a~c)

a

number[1] char[a]

==========================================================


숫자를 입력 받을 때는 input 함수를 문자 및 문자열을 입력 받을려면 raw_input을 사용 한다.


해당 부분은 어디까지나 파이썬 2.7 버전에만 해당 되는 내용이며 3.x에서는 둘다 input 함수로 가능 하다.



사용자 입력 예제2

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


number = input("숫자를 입력 하세요(1~3)")


char = raw_input("문자를 입력하세요 (a~c)")


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)1

문자를 입력하세요 (a~c)a

number[1] char[a]

==========================================================


input 함수에 질문을 넣어서 질문을 따로 print를 사용하지 않아도 동작 하게 할 수 있다.



반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]클래스 (1)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11

파이썬 함수 사용법




전 강좌에 이어 여러가지 함수 쓰임새를 소개 하겠다.


이번엔 여러 인자값을 받는 함수에 대해 설명 하겠다.


여러 인자를 받는 함수

더하기 함수 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintAllValue(*args) :

    print "start"

    for i in args :

        print i

    print "end"

PrintAllValue(6,7)

PrintAllValue(1,2,3)


==========================================================

결과 :  

start

6

7

end

start

1

2

3

end

==========================================================


위와 같이 함수에 인자를 몇개를 줘야 할지 모를때


함수 인자 부분에 *변수명 즉 


def 함수명(*인자명) 으로 정의 하면 인자 여러 인자를 받아서 처리 할 수 있다.



함수의 인자에 초기 값을 설정하여 사용자가 함수 호출 시 인자를 넣지 않아도 동작을 

하도록 설정 할 수 있다.


인자 초기 값 설정

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintValue(a=1,b=2,c=3) :

    print "a=%d,b=%d,c=%d"%(a,b,c)


PrintValue()

PrintValue(4)

PrintValue(4,5)

PrintValue(4,5,6)


==========================================================

결과 :  

a=1,b=2,c=3

a=4,b=2,c=3

a=4,b=5,c=3

a=4,b=5,c=6

==========================================================


총 함수를 4번 호출 한다.


첫번째 함수( PrintValue() )는 인자 값을 넣지 않아 함수의 초기값


def PrintValue(a=1,b=2,c=3) 이 그대로 출력 이 되었다.


우선 결과를 보면


a=1,b=2,c=3   ===========> PrintValue()        인자 값이 없어 초기에 설정된 a=1,b=2,c=3 출력

a=4,b=2,c=3   ===========> PrintValue(4)       첫 번째 인자만 넣어서 a가 4로 들어가 a=4,b=2,c=3 출력

a=4,b=5,c=3   ===========> PrintValue(4,5)

a=4,b=5,c=6   ===========> PrintValue(4,5,6)   3개의 인자값을 다 넣어서 초기에 설정된 값이 아닌 a=4,b=5,c=6 출력



퀴즈를 풀어보자

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam1(val) :

    val = val + 1


globalexam1(val)

print val


==========================================================

결과 :  

?? 풀어보자..

==========================================================


결과 값이 무엇일까?


힌트는 print val에 대한 출력 값이다.


....


함수 안에서 val = val + 1을 하며 val의 초기 값은 0이다. 


그럼 print 의 결과 값은 0 + 1 을 더한 값이니 1일 것이라 생각 들겟지만


정답은 0이다.


왜그럴까? 함수 밖에 변수 명과 함수 안의 변수 명이 같더라도 파이썬에서는


다른 값으로 인식한다. 


즉 함수 안에 변수 값과 함수 밖의 변수 명이 같아도 서로 다른 값이다.


val = val + 1 계산을 해도 해당 변수는 함수가 종료 되면 사라지는 변수 값이다.


그래서 함수 밖의 val 값은 어떠한 계산이 되지 않는다.


그럼 함수 밖의 값을 함수 안에서 사용하려면 어떻게 할까?



global의 사용법

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam3() :

    global val

    val = val + 1


val = 0

globalexam3()

print val

==========================================================

결과 :  

1

==========================================================


함수 안에서 함수 밖의 변수를 사용하고 싶으면 global이라는 예약어를 사용 하면 된다.


함수 안에서 계산 되었지만 global로 선언 되어서 출력값이 0이 아닌 1로 되었다.


이전 함수 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]파일(File) 사용법  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11

파이썬 함수 사용법




앞에서 예제가 조금 어려웠던 것 같다. 


쉬운 예제로 함수의 다양한 쓰임세를 알아보면서 다시 한번 함수에 대해 이해를 돕도록 하겠다.


앞선 함수 강의가 어려 웠다면 우선 이것만 기억 하자 (입력, 처리, 출력)


다시 복습하는 차원으로 더하기 함수를 만들어 보자


더하기 함수 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum(i,j) :         #입력

    sum_val = i + j     #처리

    return sum_val    #출력


result = sum(1,2)      #함수 호출

print result

==========================================================

결과 :  

3

==========================================================


def sum(i,j) :         #입력

   def 는 함수 정의 하는 단어 프로그램에서는 예약어라고 한다.

   함수를 정의하는 예약어라고 생각 하면 된다.

   sum_val = i + j     #처리

   함수 정의 된 부분(def)라고 쓰인 라인 다음 줄에 들여쓰기를 해서 처리 부분을 구현

   return sum_val    #출력

   return이라는 예약어가 있으면 출력 부분이다. 


result = sum(1,2)      #함수 호출

1과2를 입력 값으로 주어 sum 함수에서 처리 하게 한 수 result라는 값으로 받는다.

   A. 1,2를 입력 값으로 넣는다.

   B. result 값은 함수에서 return 한 값을 받는다.



출력 값이 없는 함수

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum(i,j) :           #입력

    sum_val = i + j      #처리

    print sum_val


sum(1,2)     #함수 호출

==========================================================

결과 :  

3

==========================================================


함수는 입력, 처리, 출력이라더니 출력 값이 없는 함수는 무슨 소리인가?


함수의 기본 요소는 입력, 처리, 출력 이지만 때에 따라서 입력 혹은 출력, 둘다 생략이 가능 하다.


sum_val = i + j      #처리

print sum_val


처리 부분을 보면 return을 하지 않고 바로 print 를 호출하여 console 화면에 값을 나오게 한다.


sum(1,2)     #함수 호출

함수 호출 부분은 함수에 return이 없기 때문에 result = 가 사라진것을 확인 할 수 있다. 

return을 안하는데 result = 를 넣으면 에러가 난다.


인자, 출력 값이 없는 함수

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum() :           

    sum_val = 1 + 2       #처리

    print sum_val


sum()    #함수 호출

==========================================================

결과 :  

3

==========================================================


def sum() :  

함수 정의 부분에 입력 값이 사라져 있다.


sum_val = 1 + 2       #처리

print sum_val

입력 값이 없으니 i,j 대신 1,2를 넣었다.


sum()    #함수 호출

함수 호출할 때는 인자값 출력값 둘다 존재하지 않는다.


이전 함수 설명 가기 ====> click

다음 함수 설명 가기 ====> click


반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (1)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11
[Python] 제어문 while  (0) 2016.09.07

파이썬 함수 사용법




함수는 자판기와 비유 할 수 있다.


=================================================

1. 동전 넣는다.


2. 원하는 상품을 골라 버튼을 누륵다.


3. 자판기에서 상품이 나온다.

=================================================

1. 입력


2. 기능 수행


3. 출력

=================================================


즉 함수는 입력 값을 넣으면 어떠한 기능을 수행 후 결과를 출력해 준다.




 

그럼 함수는 언제 사용 하는가?


프로그램을 하다 보면 내가 만든 특정 기능을 반복해서 사용하는 경우가 있다.


반복해서 사용 해야 하는 기능을 계속 다시 손으로 코딩 혹은 복사 붙이기를 해야 사용이 가능한데


함수라는 것을 이용하면 편리하게 특정 기능을 반복해서 사용 할 수 있다.





예를 들어 보자 


3명의 학생의 각각 시험 결과 평균을 내야 한다고 치자


평균을 구한다는 기능을 반복적으로 만들어야 한다.


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

student = ['철수','영희','그사람']

score = [[10,20,30],[50,60,7],[20,50,90]]


sum = score[0][0] + score[0][1] + score[0][2]

print "%s 평균 %d"%(student[0], sum/3)


sum = score[1][0] + score[1][1] + score[1][2]

print "%s 평균 %d"%(student[1], sum/3)


sum = score[2][0] + score[2][1] + score[2][2]

print "%s 평균 %d"%(student[2], sum/3)

==========================================================

결과 :  

철수 평균 20

영희 평균 39

그사람 평균 53

==========================================================


위의 코드를 함수를 이용해서 다시 만들어 보자


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

student = ['철수','영희','그사람']

score = [[10,20,30],[50,60,7],[20,50,90]]


def average(score_tuple) :      #함수 정의 및 입력 값

    sum = 0                    #기능 수행

    count = 0                  

    for i in score_tuple :

        sum = sum + i

        count += 1

    return sum/count           #출력 값


i = 0

for s in score :

    avr = average(s)

    print "%s 평균 %d"%(student[i], avr)

    i += 1

==========================================================

결과 :  

철수 평균 20

영희 평균 39

그사람 평균 53

==========================================================


1. def average(score_tuple) : 이부분이 함수다.


def 

average

(score_tuple) :

함수라고 정의하는 단어

사용자가 정의한 함수 명

함수의 인자 값 ( 입력 값 )


2. for s in score : 에서 s는 다음과 같다.

   1번째 실행 [10,20,30] 

   2번째 실행 [50,60,7]

   3번째 실행 [20,50,90]


3. avr = average(s)에서 average 함수 호출 시 s값을 넣는다.


4. average 함수는 총 3번 호출 되며 score_tuple 값은 다음과 같다.

   1번째 실행 [10,20,30] 

   2번째 실행 [50,60,7]

   3번째 실행 [20,50,90]


5. average 함수는 tuple의 값을 모두 합친다.


6. return sum/count 은 모두 더한 값을 점수 개수 만큼 나눠서 출력 한다.



다음 함수 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11
[Python] 제어문 while  (0) 2016.09.07
[Python] 문자열 다루기  (0) 2016.09.05

+ Recent posts