<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8</id>
		<title>선미 파이썬 0328 13일차 - 편집 역사</title>
		<link rel="self" type="application/atom+xml" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8"/>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8&amp;action=history"/>
		<updated>2026-04-03T22:32:45Z</updated>
		<subtitle>이 문서의 편집 역사</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8&amp;diff=164&amp;oldid=prev</id>
		<title>Azuremei: 판 1개를 가져왔습니다</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8&amp;diff=164&amp;oldid=prev"/>
				<updated>2018-04-05T06:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;판 1개를 가져왔습니다&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ko'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018년 4월 5일 (목) 06:46 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ko'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(차이 없음)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Azuremei</name></author>	</entry>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8&amp;diff=163&amp;oldid=prev</id>
		<title>Shanmei: 새 문서: ==노트== &lt;pre&gt; #함수에서 여러개의 값 반환 def clac(a, b) :     return a+b, a-b, a*b, a/b #사칙연산의 네 가지 결과를 바환하겠다  print(clac(5, 3)) #clac함...</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0328_13%EC%9D%BC%EC%B0%A8&amp;diff=163&amp;oldid=prev"/>
				<updated>2018-03-29T06:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;새 문서: ==노트== &amp;lt;pre&amp;gt; #함수에서 여러개의 값 반환 def clac(a, b) :     return a+b, a-b, a*b, a/b #사칙연산의 네 가지 결과를 바환하겠다  print(clac(5, 3)) #clac함...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==노트==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#함수에서 여러개의 값 반환&lt;br /&gt;
def clac(a, b) :&lt;br /&gt;
    return a+b, a-b, a*b, a/b&lt;br /&gt;
#사칙연산의 네 가지 결과를 바환하겠다&lt;br /&gt;
&lt;br /&gt;
print(clac(5, 3)) #clac함수는 리턴을 하니까 반환되는 값을 출력(사용)&lt;br /&gt;
#반환된 값 : (8, 2, 15, 1.6666666666666667)&lt;br /&gt;
#&amp;gt;&amp;gt;값이 여러개이면 튜플로 반환된다. &amp;gt;&amp;gt;&amp;gt; 튜플 '하나'로 반환&lt;br /&gt;
####모든 프로그래밍 언어에서 함수가 반환하는 값은 절대로 여러개일 수 없음, 오직 하나 또는 none&lt;br /&gt;
print(clac(5, 3)[0]) # &amp;gt;&amp;gt;인덱싱 가능!!&lt;br /&gt;
&lt;br /&gt;
print()&lt;br /&gt;
print() #매개변수가 없으면 단순개행&lt;br /&gt;
print(1) # 매개변수로 전달한 값 : 1&lt;br /&gt;
print(1, 2, 3) # 정수 1, 2, 3 출력(매개변수로 값이 3개출력)&lt;br /&gt;
#함수는 정의해놓은대로 사용하는데 print만 매개변수가 달라도 사용이 가능하다. &amp;gt;왜?&lt;br /&gt;
&lt;br /&gt;
# 전달되는 값이 몇 개인지 모르거나 몇 개이던 받아야 할 때는 '가변인수'를 사용한다.&lt;br /&gt;
#가변인수 &amp;gt;&amp;gt;&amp;gt; *args(arguments : 입력 인자'들')&lt;br /&gt;
'''&lt;br /&gt;
def add(a, b) :&lt;br /&gt;
    return a+b&lt;br /&gt;
print(add(1, 2)) &lt;br /&gt;
'''&lt;br /&gt;
#만약 이 두 개보다 더 많은 값을 구하고 싶다면?? 프린트처럼&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def add( *args ) : # args라는 이름도 일종의 변수이기 때문에 변경이 가능하다.&lt;br /&gt;
    print(&amp;quot;add의 args : &amp;quot;, args) # args에는 튜플로 전달된 모든 값들이 나열됨 &amp;gt;&amp;gt;&amp;gt;&amp;gt; * = 패킹/언패킹&lt;br /&gt;
    my_sum=0 # 덧셈의 결과를 누적할 변수 생성&lt;br /&gt;
    for i in args : # 튜플(전달된 값)의 모든 요소를 대입&lt;br /&gt;
        my_sum+=i &lt;br /&gt;
    return my_sum&lt;br /&gt;
&lt;br /&gt;
print(add(1, 2, 3, 4, 5))&lt;br /&gt;
#프린트도 동일한 가변인수를 사용한것(print(v, ....... ))&lt;br /&gt;
#print()에서 아무것도 넣지 않았는데 개행이 되는 이유는 print 안에 end=&amp;quot;\n&amp;quot;가 적용되어 있기 때문&lt;br /&gt;
&lt;br /&gt;
print()&lt;br /&gt;
&lt;br /&gt;
#매개변수 이름을 '키워드'로 사용하여 함수 호출&lt;br /&gt;
&lt;br /&gt;
def print_info(name, age, phone) :&lt;br /&gt;
    print(&amp;quot;이름 : &amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;나이 : &amp;quot;, age)&lt;br /&gt;
    print(&amp;quot;전화번호 : &amp;quot;, phone)&lt;br /&gt;
    #반환없음&lt;br /&gt;
&lt;br /&gt;
print_info(&amp;quot;쿠로코&amp;quot;, 18, &amp;quot;010-0415-0411&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print_info(age=18, name=&amp;quot;쿠로코&amp;quot;, phone=&amp;quot;010-0415-0411&amp;quot;)&lt;br /&gt;
# 매개변수를 알면 순서와 상관 없이 수행할 수 있다.&lt;br /&gt;
#문자열 포매팅과 비슷&lt;br /&gt;
print(&amp;quot;{a}, {b}&amp;quot;.format(b=2245, a=588))&lt;br /&gt;
&lt;br /&gt;
print(1, 2, 3, sep=&amp;quot;&amp;quot;) #sep에는 원래 ' '공백이 있었는데 빈 문자를 전달함, 즉 sep나 end도 매개변수이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#매개변수에 초기값(기본값) 넣기&lt;br /&gt;
&lt;br /&gt;
#기본값 넣는것은 매개변수 뒤에 대입을 해주면 됨, ㅁ는 ㅇ 이런식으로...&lt;br /&gt;
&lt;br /&gt;
def print_info(name, age, phone=&amp;quot;010-xxxx-xxxx&amp;quot;) :&lt;br /&gt;
    print(&amp;quot;이름 : &amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;나이 : &amp;quot;, age)&lt;br /&gt;
    print(&amp;quot;전화번호 : &amp;quot;, phone)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print_info(&amp;quot;쿠로코&amp;quot;, 18)&lt;br /&gt;
#이런식으로 매개변수를 입력하지 않으면 기본값이 전달된다. 이 때 폰 부분에 &amp;quot;zzzzz&amp;quot;를 치면 기본값을 덮고 &amp;quot;ㅋㅋㅋㅋ&amp;quot;가 출력된다.&lt;br /&gt;
#print()함수의 정의된 구조 예쌍&lt;br /&gt;
#def print(sep=&amp;quot;&amp;quot;, end=&amp;quot;\n&amp;quot;, .....)&lt;br /&gt;
# 기본값을 적용할 매개변수를 맨 뒤에 위치시켜야 한다. (print처럼???)&lt;br /&gt;
'''&lt;br /&gt;
def test(a=1, b) :&lt;br /&gt;
    print(a, b)&lt;br /&gt;
test(2)&lt;br /&gt;
'''&lt;br /&gt;
#오류! 컴파일 오류 : 실행하려 했는데 문법오류가 난 것, 실행하기도 전에 오류가 났다.(파이썬에는 없는 개념이지만 문법적 오류로 실행조차 되지 않는 것이 컴파일 오류이다.) /실행 도중에 오류가 난 것(런타임 오류)&lt;br /&gt;
&lt;br /&gt;
def test(a, b=1) :&lt;br /&gt;
    print(a, b)&lt;br /&gt;
test(2)&lt;br /&gt;
&lt;br /&gt;
#전역변수, 지역변수&lt;br /&gt;
#전역변수 : 전체 영역 &amp;gt;&amp;gt;전체 영역에서 사용 가능한 변수이다.&lt;br /&gt;
#지역변수 : 특정 지역에서만 사용 가능&lt;br /&gt;
    #특정 지역이란? : 어떠한 문법의 수행문 예) (:) 이후의 들여쓰기 구문&lt;br /&gt;
# 전역변수는 우리가 여태 사용하던 형태&lt;br /&gt;
#전역이냐 지역이냐에 따른 사용을 논하는 것 &amp;gt;&amp;gt;&amp;gt;&amp;gt; 변수 위치! 정확히는 변수의 생성 위치에 따라 사용하느냐 마느냐&lt;br /&gt;
&lt;br /&gt;
value = &amp;quot;전역변수&amp;quot; # 우리가 사용하는 위치, 제일 앞 들여쓰기&lt;br /&gt;
def fun1() :&lt;br /&gt;
    print(value)&lt;br /&gt;
&lt;br /&gt;
fun1()&lt;br /&gt;
#코드의 흐름상 위에만 있으면 사용이 가능하다.&lt;br /&gt;
'''&lt;br /&gt;
def fun2():&lt;br /&gt;
    val_fun2 = &amp;quot;fun2의 지역변수&amp;quot;&lt;br /&gt;
    print(val_fun)&lt;br /&gt;
&lt;br /&gt;
fun2()&lt;br /&gt;
'''&lt;br /&gt;
#print(val_fun2) # 오류! 이때는 존재하지 않는 지역변수이기 때문에 사용할 수 없다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def fun2():&lt;br /&gt;
    val_fun2 = &amp;quot;fun2의 지역변수&amp;quot;&lt;br /&gt;
    print(val_fun2)&lt;br /&gt;
    value=&amp;quot;fun2의 벨류&amp;quot;&lt;br /&gt;
    print(value) # 이 때의 벨류는 새로 생성된 지역변수로 위의 벨류 변수와는 이름만 같다.&lt;br /&gt;
#fun2에서 벨류 변수를 주석했을때와 하지 않았을 때를 비교해보자&lt;br /&gt;
    &lt;br /&gt;
fun2()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def fun3():&lt;br /&gt;
    #지역변수를 전역변수로 만들기&lt;br /&gt;
    global val_fun3&lt;br /&gt;
    val_fun3 = &amp;quot;fun3의 지역변수&amp;quot;&lt;br /&gt;
    print(val_fun3)&lt;br /&gt;
print(&amp;quot;====3===&amp;quot;)&lt;br /&gt;
fun3()&lt;br /&gt;
&lt;br /&gt;
print(val_fun3) # global로 호출하면 지역변수를 전역변수로 전환되어 밖에서도 사용할 수 있음. 그러나 파이썬은 위에서부터 아래로 연산하는 프로그램이므로 호출은 반드시 출력 전에 해야 한다.&lt;br /&gt;
&lt;br /&gt;
#재귀함수 ㅣ 함수의 수행문에서 자기 자신 함수를 다시 호출하는것 &amp;gt;&amp;gt;&amp;gt;나를 다시 호출 : 재귀호출(명칭)&lt;br /&gt;
#명칭일 뿐이고 특별한 기술이 들어가는 것은 아님&lt;br /&gt;
#함수에 대한 이해가 선행되어야 함&lt;br /&gt;
# &amp;gt;함수는 호출하면, 함수의 수행문으로 점프(이동)하고 수행문이 끝나면 호춯했던 위치로 다시 돌아오는것&lt;br /&gt;
'''&lt;br /&gt;
def count_down(count) :&lt;br /&gt;
    print(&amp;quot;카운트다운 : &amp;quot;, count)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;함수호출 전&amp;quot;)&lt;br /&gt;
count_down(2)&lt;br /&gt;
print(&amp;quot;함수호출 후&amp;quot;)&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
def count_down(count) :&lt;br /&gt;
    print(&amp;quot;카운트다운 : &amp;quot;, count)&lt;br /&gt;
&lt;br /&gt;
    #이렇게 하면 숫자가 점점 작아지다 오류가 난다.&lt;br /&gt;
    #재귀함수는 나 자신을 반복해서 호출하기 때문에 반복문과 유사함.(반복문도 수행 코드를 반복 수행) &amp;gt;&amp;gt; 반복문처럼 반복이 끝나는 시점을 만들어줘야 한다.&lt;br /&gt;
    if count ==0 :&lt;br /&gt;
        return # 이렇게 리턴을 뒤에 값 없이 그냥 쓰면 함수를 끝내라, 아무 값 없이 변환할 수 있다.&lt;br /&gt;
    ######카운트를 이프 위에 쓰면 오류남...&lt;br /&gt;
    count_down(count-1) # 나 자신을 다시 호출(재귀호출)&lt;br /&gt;
print(&amp;quot;함수호출 전&amp;quot;)&lt;br /&gt;
count_down(2)&lt;br /&gt;
print(&amp;quot;함수호출 후&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print()&lt;br /&gt;
def func(n) :&lt;br /&gt;
    print(&amp;quot;fonc({}) 시작&amp;quot;.format(n))&lt;br /&gt;
&lt;br /&gt;
    if n==0 :&lt;br /&gt;
        print(&amp;quot;n==0 이때부터 끝&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    func(n-1) # 재귀함수&lt;br /&gt;
    print(&amp;quot;fonc({}) 끝&amp;quot;.format(n))&lt;br /&gt;
&lt;br /&gt;
#(1) f2 를 호출 (2) f2함수 내부에서 f1을 호출 ㄹ2는 끝난게 아님 (3) ㄹ1함수 내부에서 ㄹ0을 호출 (4)ㄹ0은 조건식에 만족해서 리턴(종료) (5)ㄹ0을 호출했던 ㄹ1로 돌아간다&amp;gt;&amp;gt;&amp;gt;func(n-1)&amp;gt;&amp;gt;&amp;gt;f1끝 출력됨 (6) ㄹ1을 호출한ㄹ2로 돌아간다(&amp;gt;&amp;gt;&amp;gt;&amp;gt;려ㅜ(ㅜ-1)&amp;gt;&amp;gt;펑2끝이 출력됨 (7)ㄹ2를 호출했던 바깥의 ㄹ2로 돌아간다.)&lt;br /&gt;
    #&amp;gt;&amp;gt;&amp;gt;어느 코드에서 함수를 호출했는지에 따라 돌아가는 위치가 다르다&lt;br /&gt;
    &lt;br /&gt;
print(&amp;quot;func(2)호출 전&amp;quot;)&lt;br /&gt;
func(2)&lt;br /&gt;
print(&amp;quot;func(2)호출 후&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
#함수는 호출되면 stack이라는 메모리(기억공간)에 정보가 쌓이고 수행이 완료되면 stack의 정보가 삭제됨&lt;br /&gt;
&lt;br /&gt;
# stack의 자료구조는? : 한 쪽이 막혀있기 때문에 나중에 들어온 자료가 먼저 나감 예) 1. 2. 3 이 쌓인다면 3. 2. 1로 나감.&lt;br /&gt;
# [참고] queue자료구조도 있음 아래가 뚫혀있기 때문에 먼저 들어온 자료가 먼저 나감 예) 1, 2, 3이 있다면 1, 2, 3 순으로&lt;br /&gt;
&lt;br /&gt;
#함수 연습 2&lt;br /&gt;
'''&lt;br /&gt;
    4. 소수 출력하기&lt;br /&gt;
      소수(prime no.) : 1 혹은 자신으로만 나눠떨어지는 수 (1은 소수가 아니다.)&lt;br /&gt;
&lt;br /&gt;
        1)1부터 입력받은 수 까지 소수 출력&lt;br /&gt;
          함수&lt;br /&gt;
            &amp;gt;&amp;gt;이름 :is_prime_number&lt;br /&gt;
            &amp;gt;&amp;gt;기능 : 매개변수 전달받은 1개의 숫자가 소수인지 아닌지 판별하여 그 결과를 반환&lt;br /&gt;
                소수ㅇ : True&lt;br /&gt;
                소수x : False&lt;br /&gt;
            is_prime_number(10) --&amp;gt; return false&lt;br /&gt;
            is_prime_number(11) --&amp;gt; return true&lt;br /&gt;
[출력 결과]&lt;br /&gt;
숫자 입력 : 20&lt;br /&gt;
소수 : 2 3 5 7 11 13 17 19&lt;br /&gt;
힌트 : 1~입력받은 수까지 반복수행하는 for문이 잇어야 함, for문 수행은 안에서 함수를 호출하여 하나씩 확인&lt;br /&gt;
&lt;br /&gt;
    5. 재귀함수를 이용하여 팩토리얼 구하기&lt;br /&gt;
      팩토리얼이란 : 1부터 특정 수까지 모든 숫자를 곱한 결과 값(5!=5*4*3*2*1)&lt;br /&gt;
&lt;br /&gt;
      함수&lt;br /&gt;
          이름 : get_factorial&lt;br /&gt;
          기능 : 매개변수로 전달 받은 숫자의 팩토리얼 결과값 구해서 반환&lt;br /&gt;
&lt;br /&gt;
[결과값]&lt;br /&gt;
숫자 입력 ! 5&lt;br /&gt;
5!=120&lt;br /&gt;
힌트 : 3! = 3*2*1 = 3*2! = 3*2*1!&lt;br /&gt;
        1! = 1&lt;br /&gt;
      &lt;br /&gt;
'''&lt;br /&gt;
input_num = int(input(&amp;quot;숫자 입력 : &amp;quot;))&lt;br /&gt;
def is_prime_number(input_num) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==강의내용==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible  mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shanmei</name></author>	</entry>

	</feed>