유기농냠냠파이썬 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
8번째 줄: 8번째 줄:


유기농냠냠파이썬은 코딩이 너무 어려워 포기한 분, 또는 코딩을 처음 접하는 분을 위한 강의입니다. 파이썬이라는 프로그래밍 언어의 기초 문법을 쉽게 배울 수 있습니다. 코딩을 왜 배워야 하는지, 왜 필요한지에 대해서 답을 주지는 않지만 코딩이란 이런 거구나, 파이썬이란 이런 거구나 하는 정도의 감을 잡을 수 있습니다.
유기농냠냠파이썬은 코딩이 너무 어려워 포기한 분, 또는 코딩을 처음 접하는 분을 위한 강의입니다. 파이썬이라는 프로그래밍 언어의 기초 문법을 쉽게 배울 수 있습니다. 코딩을 왜 배워야 하는지, 왜 필요한지에 대해서 답을 주지는 않지만 코딩이란 이런 거구나, 파이썬이란 이런 거구나 하는 정도의 감을 잡을 수 있습니다.
인스타그램 김왼손([https://www.instagram.com/lefty_khim/ @lefty_khim])을 팔로우하세요!


* 프로듀서 : [[김왼손]]
* 프로듀서 : [[김왼손]]
86번째 줄: 84번째 줄:


{{소스헤더|C언어}}
{{소스헤더|C언어}}
<syntaxhighlight lang="C">
<source lang="C">
#include <stdio.h>
#include <stdio.h>


95번째 줄: 93번째 줄:
}
}


</syntaxhighlight>
</source>


{{소스헤더|C언어 결과}}
{{소스헤더|C언어 결과}}
<syntaxhighlight lang="C">
<source lang="C">


Hello, World!
Hello, World!


</syntaxhighlight>
</source>


{{소스헤더|파이썬}}
{{소스헤더|파이썬}}
<syntaxhighlight lang="python">
<source lang="python">
print("Hello, World!")
print("Hello, World!")


</syntaxhighlight>
</source>


{{소스헤더|파이썬 결과}}
{{소스헤더|파이썬 결과}}
<syntaxhighlight lang="python">
<source lang="python">
Hello, World!
Hello, World!


</syntaxhighlight>
</source>


* 이렇게 몇 줄을 타이핑하지 않아도 똑같은 결과값을 가져오므로 빠른 시간에 코드를 작성할 수 있습니다.
* 이렇게 몇 줄을 타이핑하지 않아도 똑같은 결과값을 가져오므로 빠른 시간에 코드를 작성할 수 있습니다.
209번째 줄: 207번째 줄:
*파이썬을 처음 받으시고 다운로드 받은 폴더를 여시면 IDLE 라는 파일이 있으실 겁니다. IDLE는 사용자와  상호작용 할 수 있는 파이썬 에디터로 간단한 프로그램을 테스트 하거나, 작성할 때 유용하게 사용하실 수 있습니다.
*파이썬을 처음 받으시고 다운로드 받은 폴더를 여시면 IDLE 라는 파일이 있으실 겁니다. IDLE는 사용자와  상호작용 할 수 있는 파이썬 에디터로 간단한 프로그램을 테스트 하거나, 작성할 때 유용하게 사용하실 수 있습니다.
*앞으로 보여드릴 예제의 일부는 이 IDLE 양식을 사용합니다. 처음에 엔터를 쳐보시면 이런 것이 뜰 것입니다.
*앞으로 보여드릴 예제의 일부는 이 IDLE 양식을 사용합니다. 처음에 엔터를 쳐보시면 이런 것이 뜰 것입니다.
<syntaxhighlight lang="python">
<source lang="python">
>>>
>>>
</syntaxhighlight>
</source>


*저희가 앞으로 예제에 사용하는 방식을 이렇게 해석해주시면 되겠습니다.
*저희가 앞으로 예제에 사용하는 방식을 이렇게 해석해주시면 되겠습니다.


<syntaxhighlight lang="python">
<source lang="python">
>>> #프로그래밍 하는 예제코드
>>> #프로그래밍 하는 예제코드
#결과
#결과
</syntaxhighlight>
</source>


*자세한 것은 여러분들이 실습 하시면서 배우시다 보면 자연스럽게 알게 되실 테니 너무 걱정하지는 마시고 천천히 따라오시기 바랍니다.
*자세한 것은 여러분들이 실습 하시면서 배우시다 보면 자연스럽게 알게 되실 테니 너무 걱정하지는 마시고 천천히 따라오시기 바랍니다.
227번째 줄: 225번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print('유기농냠냠파이썬')
>>> print('유기농냠냠파이썬')
유기농냠냠파이썬
유기농냠냠파이썬
>>>
>>>


</syntaxhighlight>
</source>


* 다른 예제도 확인해보면,
* 다른 예제도 확인해보면,


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print("김왼손")
>>> print("김왼손")
김왼손
김왼손
>>>
>>>


</syntaxhighlight>
</source>


*이렇듯 print는 괄호안의 문자를 출력해주는 역할을 합니다.
*이렇듯 print는 괄호안의 문자를 출력해주는 역할을 합니다.
257번째 줄: 255번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print(1)
>>> print(1)
1
1
266번째 줄: 264번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===<big>더하기, 빼기, 곱하기, 나누기 연산자</big>===
===<big>더하기, 빼기, 곱하기, 나누기 연산자</big>===
272번째 줄: 270번째 줄:
*여기서 주의해야 하실 점은 '''곱하기는 파이썬에서 X가 아닌 *'''라는 점입니다.
*여기서 주의해야 하실 점은 '''곱하기는 파이썬에서 X가 아닌 *'''라는 점입니다.
{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print(1 + 2)
>>> print(1 + 2)
3
3
281번째 줄: 279번째 줄:
>>> print(10 / 2)
>>> print(10 / 2)
5
5
</syntaxhighlight>
</source>


===<big>제곱, 몫, 나머지 연산자</big>===
===<big>제곱, 몫, 나머지 연산자</big>===
*제곱, 몫, 나머지 연산자는 각각 **, //, % 기호로 나타낼 수 있습니다.
*제곱, 몫, 나머지 연산자는 각각 **, //, % 기호로 나타낼 수 있습니다.
{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print(2 ** 3)  #2의 세 제곱을 출력합니다
>>> print(2 ** 3)  #2의 세 제곱을 출력합니다
8
8
295번째 줄: 293번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


==변수==
==변수==
307번째 줄: 305번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_int = 1    #my_int에 1을 할당(저장)합니다.
>>> my_int = 1    #my_int에 1을 할당(저장)합니다.
>>> print(my_int)     
>>> print(my_int)     
316번째 줄: 314번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


*원래 있던 변수에 새로운 값을 할당하면 원래 할당되어 있던 값이 사라집니다.
*원래 있던 변수에 새로운 값을 할당하면 원래 할당되어 있던 값이 사라집니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print(my_int)     
>>> print(my_int)     
1            #원래 my_int에 할당되어 있는 값은 1입니다.
1            #원래 my_int에 할당되어 있는 값은 1입니다.
328번째 줄: 326번째 줄:
2            #원래 있던 1 대신 새로운 값인 2가 할당되어 출력됩니다.
2            #원래 있던 1 대신 새로운 값인 2가 할당되어 출력됩니다.


</syntaxhighlight>
</source>


====<big>복합 할당 연산자</big>====
====<big>복합 할당 연산자</big>====
335번째 줄: 333번째 줄:
*주로 반복을 할 때 자주 쓰입니다.
*주로 반복을 할 때 자주 쓰입니다.
{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> count = 0
>>> count = 0
>>> count = count + 1    # i를 1 증가시켜 주는 구문입니다.
>>> count = count + 1    # i를 1 증가시켜 주는 구문입니다.
343번째 줄: 341번째 줄:
>>> print(count)
>>> print(count)
2
2
</syntaxhighlight>
</source>


==문자열==
==문자열==
356번째 줄: 354번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_str1 = ‘a’
>>> my_str1 = ‘a’
>>> print(my_str1)
>>> print(my_str1)
371번째 줄: 369번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===type 함수===
===type 함수===
*이 함수를 사용하면 변수의 타입(자료형)을 알 수 있습니다. 위의 예제를 가져와 사용해보면
*이 함수를 사용하면 변수의 타입(자료형)을 알 수 있습니다. 위의 예제를 가져와 사용해보면
{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print(my_str2)
>>> print(my_str2)
3.14
3.14
383번째 줄: 381번째 줄:
<class ‘str’>          #여기서 str은 string(문자열)의 줄임말 입니다.
<class ‘str’>          #여기서 str은 string(문자열)의 줄임말 입니다.


</syntaxhighlight>
</source>


*이 type 함수로 인해 my_str2에 3.14가 숫자형으로 들어갔지만 ‘’로 인해 문자열로 받아들인다는 것을 알 수 있습니다.
*이 type 함수로 인해 my_str2에 3.14가 숫자형으로 들어갔지만 ‘’로 인해 문자열로 받아들인다는 것을 알 수 있습니다.
392번째 줄: 390번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_str1 = ‘a’ + ‘b’ + ‘c’
>>> my_str1 = ‘a’ + ‘b’ + ‘c’
>>> print(my_str1)
>>> print(my_str1)
404번째 줄: 402번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===문자열 인덱싱===
===문자열 인덱싱===
412번째 줄: 410번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> alphabet = 'abcde'
>>> alphabet = 'abcde'
>>> print(alphabet[0])
>>> print(alphabet[0])
422번째 줄: 420번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


* 여기서 a = 0, b = 1, c = 2, d = 3, e = 4를 나타냅니다.
* 여기서 a = 0, b = 1, c = 2, d = 3, e = 4를 나타냅니다.
428번째 줄: 426번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> alphabet = 'abcde'
>>> alphabet = 'abcde'
>>> print(alphabet[-0])
>>> print(alphabet[-0])
438번째 줄: 436번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


* 여기서 a = -5, b = -4, c = -3, d = -2, e = -1을 나타냅니다. (0과 -0은 같으므로 -0은 a 입니다.)
* 여기서 a = -5, b = -4, c = -3, d = -2, e = -1을 나타냅니다. (0과 -0은 같으므로 -0은 a 입니다.)
449번째 줄: 447번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_str = 'Hello Python!'
>>> my_str = 'Hello Python!'
>>> print(my_str[0 : 1])    #0번 인덱스의 문자부터 1번 인덱스의 문자 전까지(0~0)
>>> print(my_str[0 : 1])    #0번 인덱스의 문자부터 1번 인덱스의 문자 전까지(0~0)
459번째 줄: 457번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


*콜론(:) 앞에 값이나 뒤에 값을 생략할 수도 있습니다.
*콜론(:) 앞에 값이나 뒤에 값을 생략할 수도 있습니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_str = 'Python'
>>> my_str = 'Python'
>>> print(my_str[:3])      #문자열의 처음부터 3번 인덱스의 문자 전까지(0~3)
>>> print(my_str[:3])      #문자열의 처음부터 3번 인덱스의 문자 전까지(0~3)
473번째 줄: 471번째 줄:
Python
Python
>>>
>>>
</syntaxhighlight>
</source>


* 슬라이싱은 문자를 실제로 잘라 버리는 게 아니라, 자른 만큼 복사해 오는 것입니다. 즉, '''슬라이싱을 해도 원본 문자열은 그대로''' 남아 있습니다.
* 슬라이싱은 문자를 실제로 잘라 버리는 게 아니라, 자른 만큼 복사해 오는 것입니다. 즉, '''슬라이싱을 해도 원본 문자열은 그대로''' 남아 있습니다.
487번째 줄: 485번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> fruit_str = 'apple banana lemon'
>>> fruit_str = 'apple banana lemon'
>>> fruits = fruit_str.split()      #apple, banana, lemon을 나눕니다.
>>> fruits = fruit_str.split()      #apple, banana, lemon을 나눕니다.
498번째 줄: 496번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


====<big>문자열 포맷팅(.format)</big>====
====<big>문자열 포맷팅(.format)</big>====
506번째 줄: 504번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print('Life is {}'.format('Short!'))  
>>> print('Life is {}'.format('Short!'))  
Life is Short!    # 이렇듯 format 메서드는 중괄호 안에 format 뒤에 있는 값을 넣어 문장을 만드는 역할을 합니다.
Life is Short!    # 이렇듯 format 메서드는 중괄호 안에 format 뒤에 있는 값을 넣어 문장을 만드는 역할을 합니다.
>>> print('{} X {} = {}'.format(2, 3, 2 * 3))
>>> print('{} X {} = {}'.format(2, 3, 2 * 3))
2 X 3 = 6          #이렇게 여러개의 값을 넣을 때에는 먼저 입력된 값 부터 차례대로 중괄호에 들어가게 됩니다.
2 X 3 = 6          #이렇게 여러개의 값을 넣을 때에는 먼저 입력된 값 부터 차례대로 중괄호에 들어가게 됩니다.
</syntaxhighlight>
</source>


===<nowiki>여러줄 문자열</nowiki>===
===<nowiki>여러줄 문자열</nowiki>===
518번째 줄: 516번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print('첫 번째
>>> print('첫 번째
Error      #작은따옴표 한 개는 한줄의 문자열만 표현하기 때문에 작은따옴표로 마무리 짓지 않고 엔터를 치면 에러가 나게 됩니다.
Error      #작은따옴표 한 개는 한줄의 문자열만 표현하기 때문에 작은따옴표로 마무리 짓지 않고 엔터를 치면 에러가 나게 됩니다.
535번째 줄: 533번째 줄:
세 번째
세 번째
>>>
>>>
</syntaxhighlight>
</source>


*하지만 작은따옴표와 큰따옴표를 같이 사용하는 이유는 따로 있습니다. 작은 따옴표가 들어가는 문자열을 표현하고 싶을때에 큰따옴표를 사용하기 때문입니다.
*하지만 작은따옴표와 큰따옴표를 같이 사용하는 이유는 따로 있습니다. 작은 따옴표가 들어가는 문자열을 표현하고 싶을때에 큰따옴표를 사용하기 때문입니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang='python'>
<source lang='python'>
>>> print('I'm 김왼손')
>>> print('I'm 김왼손')
Error      #'I'에서 이미 문자열이 끝났기 때문에 이렇게 치면 에러가 날 것입니다.
Error      #'I'에서 이미 문자열이 끝났기 때문에 이렇게 치면 에러가 날 것입니다.
548번째 줄: 546번째 줄:
"왼손아 너 그러면 안돼!" '엄마'가 큰소리로 말하였습니다."  #이럴 때를 위해 '''와 """도 있는 것이죠
"왼손아 너 그러면 안돼!" '엄마'가 큰소리로 말하였습니다."  #이럴 때를 위해 '''와 """도 있는 것이죠
>>>
>>>
</syntaxhighlight>
</source>


*예제를 보시면 좀 복잡하시겠지만 직접 실습하시면 알게 되실 겁니다.
*예제를 보시면 좀 복잡하시겠지만 직접 실습하시면 알게 되실 겁니다.
556번째 줄: 554번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
#한번에 타이핑 했다고 생각해주세요
#한번에 타이핑 했다고 생각해주세요


570번째 줄: 568번째 줄:
# \ = 백슬래쉬입니다. 한글 키보드를 사용하시는 분들이 백슬래쉬를 쓰시고 싶으신 경우 \를 눌러주시면 됩니다.
# \ = 백슬래쉬입니다. 한글 키보드를 사용하시는 분들이 백슬래쉬를 쓰시고 싶으신 경우 \를 눌러주시면 됩니다.


</syntaxhighlight>
</source>


===이스케이프 코드===
===이스케이프 코드===
576번째 줄: 574번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print('줄바꿈\n줄바꿈')
>>> print('줄바꿈\n줄바꿈')
줄바꿈
줄바꿈
583번째 줄: 581번째 줄:
탭    탭
탭    탭


</syntaxhighlight>
</source>




604번째 줄: 602번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
print('Life is %s' % 'Short!')
print('Life is %s' % 'Short!')
print('%d x %d = %d' % (2,3, 2*3))
print('%d x %d = %d' % (2,3, 2*3))


</syntaxhighlight>
</source>


* 두 번째 줄처럼 %를 많이 사용할 수 있습니다. 괄호 안에 있는 수들을 %d에 넣습니다. 2는 첫번째 %d에, 3은 두번째 %d에, 6(2*3)은 세번째 %d에 들어갑니다.
* 두 번째 줄처럼 %를 많이 사용할 수 있습니다. 괄호 안에 있는 수들을 %d에 넣습니다. 2는 첫번째 %d에, 3은 두번째 %d에, 6(2*3)은 세번째 %d에 들어갑니다.
617번째 줄: 615번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> print('안녕!') #인사를 하는 코드  
>>> print('안녕!') #인사를 하는 코드  
안녕!
안녕!
623번째 줄: 621번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


* 신기하게도 #주석을 넣은 첫번째 줄의 '인사를 하는 코드'와, 두번째 줄의 print('안녕!')부분은 보이지 않고 print('안녕!')부문만 결과가 보이게 됩니다.
* 신기하게도 #주석을 넣은 첫번째 줄의 '인사를 하는 코드'와, 두번째 줄의 print('안녕!')부분은 보이지 않고 print('안녕!')부문만 결과가 보이게 됩니다.
636번째 줄: 634번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list1 = []
>>> my_list1 = []
>>> my_list2 = [1,2,3]
>>> my_list2 = [1,2,3]
642번째 줄: 640번째 줄:
>>>
>>>


</syntaxhighlight>
</source>
*빈 리스트를 사용하는 이유는 나중에 값을 추가할 때에 추가할 리스트 즉, 라면을 끓인다고 생각하면 빈 냄비가 있어야 하기 때문입니다.
*빈 리스트를 사용하는 이유는 나중에 값을 추가할 때에 추가할 리스트 즉, 라면을 끓인다고 생각하면 빈 냄비가 있어야 하기 때문입니다.


649번째 줄: 647번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> my_list = [123, 'abc', '김왼손']
>>> my_list = [123, 'abc', '김왼손']
>>> print(my_list[0])
>>> print(my_list[0])
661번째 줄: 659번째 줄:
[3.14, 'abc', 김왼손]  #원래 123이었던 값이 3.14로 바뀐 것을 볼 수  있습니다.
[3.14, 'abc', 김왼손]  #원래 123이었던 값이 3.14로 바뀐 것을 볼 수  있습니다.
>>>
>>>
</syntaxhighlight>
</source>


===리스트 슬라이싱===
===리스트 슬라이싱===
667번째 줄: 665번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang='python'>
<source lang='python'>
>>> my_list = ['a', 'b', 'c']
>>> my_list = ['a', 'b', 'c']
>>> print(my_list[:1])
>>> print(my_list[:1])
674번째 줄: 672번째 줄:
['b']    # 1번 인덱스 부터 2번 인덱스 전까지
['b']    # 1번 인덱스 부터 2번 인덱스 전까지
>>>
>>>
</syntaxhighlight>
</source>


===<big>리스트 메서드</big>===
===<big>리스트 메서드</big>===
685번째 줄: 683번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = []
>>> my_list = []
>>> my_list.append(123)
>>> my_list.append(123)
694번째 줄: 692번째 줄:
[123, 'abc']
[123, 'abc']


</syntaxhighlight>
</source>
*요소를 추가할 수록 원래 있던 요소의 뒤에 붙게 됩니다.
*요소를 추가할 수록 원래 있던 요소의 뒤에 붙게 됩니다.


702번째 줄: 700번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> my_list = [4, 2, 3, 1]
>>> my_list = [4, 2, 3, 1]
>>> my_list.sort()
>>> my_list.sort()
712번째 줄: 710번째 줄:
>>> print(my_list2)
>>> print(my_list2)
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd']
</syntaxhighlight>
</source>


====<big>리스트 요소 지우기(.del)</big>====
====<big>리스트 요소 지우기(.del)</big>====
719번째 줄: 717번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = [123, 'abc', '김왼손']
>>> my_list = [123, 'abc', '김왼손']
>>> del my_list[0]
>>> del my_list[0]
726번째 줄: 724번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


====<big>요소 개수 세기(.count)</big>====
====<big>요소 개수 세기(.count)</big>====
733번째 줄: 731번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = ['a', 'c', 'a', 'b']
>>> my_list = ['a', 'c', 'a', 'b']
>>> print(my_list.count('a'))
>>> print(my_list.count('a'))
743번째 줄: 741번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


====<big>요소의 유무(.in)</big>====
====<big>요소의 유무(.in)</big>====
750번째 줄: 748번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = ['a', 'b', 'c', 'd']
>>> my_list = ['a', 'b', 'c', 'd']
>>> print('a' in my_list)    #'a가 my_list안에 있냐?'라고 물어본다고 생각하시면 됩니다
>>> print('a' in my_list)    #'a가 my_list안에 있냐?'라고 물어본다고 생각하시면 됩니다
760번째 줄: 758번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


====<big>리스트 요소 삭제하기(.remove)</big>====
====<big>리스트 요소 삭제하기(.remove)</big>====
768번째 줄: 766번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = [123, 'abc', '김왼손']
>>> my_list = [123, 'abc', '김왼손']
>>> my_list.remove(123)
>>> my_list.remove(123)
776번째 줄: 774번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


*'''참고사항''' : del과 다른 점 - del같은 경우, 리스트 요소의 지정한 번호를 삭제해주지만, remove는 사용자가 지정한 리스트 값을 삭제해주는 역할입니다.
*'''참고사항''' : del과 다른 점 - del같은 경우, 리스트 요소의 지정한 번호를 삭제해주지만, remove는 사용자가 지정한 리스트 값을 삭제해주는 역할입니다.
792번째 줄: 790번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_tuple1 = ()
>>> my_tuple1 = ()
>>> my_tuple2 = (1,)  #여기서 주의하셔야 합니다.(자세한 건 예제 끝난 후에)
>>> my_tuple2 = (1,)  #여기서 주의하셔야 합니다.(자세한 건 예제 끝난 후에)
799번째 줄: 797번째 줄:
>>>
>>>


</syntaxhighlight>
</source>
*소괄호를 사용하여 하나의 값이 들어간 튜플을 만들 때에는 반드시 값 뒤에 ,를 사용해야 합니다.  소괄호는 다양한 연산에 사용하기 때문에 ,를 사용하지 않으면 값을 문자열로 인식하기 때문입니다.('''단, 소괄호를 사용하여 만들때 주의할 점입니다.''')
*소괄호를 사용하여 하나의 값이 들어간 튜플을 만들 때에는 반드시 값 뒤에 ,를 사용해야 합니다.  소괄호는 다양한 연산에 사용하기 때문에 ,를 사용하지 않으면 값을 문자열로 인식하기 때문입니다.('''단, 소괄호를 사용하여 만들때 주의할 점입니다.''')


808번째 줄: 806번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_tuple = 3.14, 'Python', '김왼손'
>>> my_tuple = 3.14, 'Python', '김왼손'
>>> i, s, b = (123, 'abc', '집단지성')  #하나로 묶여있는 값이 i에는 123, s에는 'abc'...이런식으로 차례대로 들어가게 됩니다.
>>> i, s, b = (123, 'abc', '집단지성')  #하나로 묶여있는 값이 i에는 123, s에는 'abc'...이런식으로 차례대로 들어가게 됩니다.
>>>
>>>


</syntaxhighlight>
</source>
 
=쉬어가기 - 자신의 IDLE 환경을 만들자=
* 아마 왼손님의 강좌를 보신 분들이라면 자신의 IDLE 환경과 왼손님의 IDLE 환경이 다른 것을 볼 수 있을 겁니다. 저희도 왼손님처럼 환경을 꾸며볼까요?
* 유기농냠냠파이썬 이후 왼손님이 따로 알려주신 것입니다. (링크 -> https://www.youtube.com/watch?v=cfwZB9SNMu4) 1시간 14분쯤
 
 
==기본적으로 꾸밀 수 있는 환경==
* 우선 IDLE를 실행시킵니다.
* 위쪽에 있는 "Options"에 있는 "Configure IDLE"를 클릭합니다. 이렇게 하면 "Settings"라는 창이 뜰 겁니다.
* "Highlights"를 클릭합니다.
* 오른쪽 중간에 있는 "IDLE xxxxxx"를 클릭합니다.
* 여러가지 선택지가 나오면 자신이 원하는 것을 클릭해서 테마를 바꿉니다.
 
==마음에 드는 테마가 없으면?==
* 구글에 "python highlight theme"을 검색합니다.
* 아무 사이트에나 들어가서 자신이 원하는 테마를 정합니다.
* 정한 테마의 엄청난 양의 코드를 복사합니다.
* 자신의 파이썬이 설치된 파일 -> Lib폴더 -> idlelib폴더 -> config-highlight에 들어가서 맨 아래에 붙여 넣습니다.
* 저장하고 6-1의 과정을 합니다.


=횟수로 반복하기=
=횟수로 반복하기=
844번째 줄: 823번째 줄:


===기본구조===
===기본구조===
{{소스헤더|기본구조}}
{{소스헤더|기본구조}}
<syntaxhighlight lang='python'>
for 변수 in 순서열(순서열:문자열, 튜플, 리스트처럼 순서가 정해져 있고 여러가지의 값을 갖고 있는 것들):
for 변수 in 순서열(순서열:문자열, 튜플, 리스트처럼 순서가 정해져 있고 여러가지의 값을 갖고 있는 것들):
    실행할 명령1
    실행할 명령1
    실행할 명령2
    실행할 명령2
    ...
    ...
 
</syntaxhighlight>
*여기서 변수를 만들 때 변수명(변수이름)은 여러분의 마음대로 쓰셔도 되지만, 순서열을 표현할 수 있는 변수명을 사용하는 것이 더 좋습니다.
*여기서 변수를 만들 때 변수명(변수이름)은 여러분의 마음대로 쓰셔도 되지만, 순서열을 표현할 수 있는 변수명을 사용하는 것이 더 좋습니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_list = [1, 2, 3]
>>> my_list = [1, 2, 3]
>>> for count in my_list:
>>> for count in my_list:
862번째 줄: 841번째 줄:
횟수: 2
횟수: 2
횟수: 3
횟수: 3
</syntaxhighlight>
</source>


*이 개념은 좀 복잡하실 수 있습니다. 그러니 천천히 이해하시면서 읽어보시기 바랍니다.
*이 개념은 좀 복잡하실 수 있습니다. 그러니 천천히 이해하시면서 읽어보시기 바랍니다.
877번째 줄: 856번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
my_list = [1, 2, 3]
my_list = [1, 2, 3]
for count in my_list:
for count in my_list:
     print('횟수:', count)
     print('횟수:', count)
</syntaxhighlight>
</source>


*결과는 F5를 누르거나 Run -> Run Module을 누르고 저장할 곳을 지정하면 나옵니다.
*결과는 F5를 누르거나 Run -> Run Module을 누르고 저장할 곳을 지정하면 나옵니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
횟수: 1
횟수: 1
횟수: 2
횟수: 2
횟수: 3
횟수: 3
</syntaxhighlight>
</source>


*앞으로 일부 저희가 보여드릴 예제는 이렇게 코드와 결과가 분리될테니 양해부탁드립니다.
*앞으로 일부 저희가 보여드릴 예제는 이렇게 코드와 결과가 분리될테니 양해부탁드립니다.
898번째 줄: 877번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang='python'>
<source lang='python'>
my_str = 'coding'
my_str = 'coding'
for letter in my_str
for letter in my_str
     print('문자:', letter)
     print('문자:', letter)
</syntaxhighlight>
</source>


*문자열인 coding의 알파벳이 한 글자씩 들어가 반복되면서 결과를 만들어냅니다.
*문자열인 coding의 알파벳이 한 글자씩 들어가 반복되면서 결과를 만들어냅니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang='python'>
<source lang='python'>
문자: c
문자: c
문자: o
문자: o
914번째 줄: 893번째 줄:
문자: n
문자: n
문자: g
문자: g
</syntaxhighlight>
</source>


===들여쓰기===
===들여쓰기===
930번째 줄: 909번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
for count in range(3):       
for count in range(3):       
     print('횟수:', count)
     print('횟수:', count)


</syntaxhighlight>
</source>


*여기서 range(3)은 리스트 [0, 1, 2]와 같다고 생각하시면 되는데, '''range가 리스트를 만든다는 착각을 해서는 안됩니다.''' 다시 한번 더 말씀드리지만 range는 순서열을 만드는 함수입니다.
*여기서 range(3)은 리스트 [0, 1, 2]와 같다고 생각하시면 되는데, '''range가 리스트를 만든다는 착각을 해서는 안됩니다.''' 다시 한번 더 말씀드리지만 range는 순서열을 만드는 함수입니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
횟수: 0
횟수: 0
횟수: 1
횟수: 1
945번째 줄: 924번째 줄:




</syntaxhighlight>
</source>


===range(start, stop)===
===range(start, stop)===
952번째 줄: 931번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
for count in range(5, 10):
for count in range(5, 10):
     print('횟수:', count)
     print('횟수:', count)
</syntaxhighlight>
</source>


*여기서 range의 경우, 5부터 10전까지(5~9)의 숫자가 담긴 순서열을 만들어서 결과를 만들어냅니다.
*여기서 range의 경우, 5부터 10전까지(5~9)의 숫자가 담긴 순서열을 만들어서 결과를 만들어냅니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
횟수: 5
횟수: 5
횟수: 6
횟수: 6
966번째 줄: 945번째 줄:
횟수: 8
횟수: 8
횟수: 9
횟수: 9
</syntaxhighlight>
</source>


===for문 × 2===
===for문 × 2===
972번째 줄: 951번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
for j in range(2):
for j in range(2):
     for i in range(2):               
     for i in range(2):               
         print('i : {} , j : {}'.format(i, j))
         print('i : {} , j : {}'.format(i, j))


</syntaxhighlight>
</source>


*이 개념도 복잡하실 수 있으니, 실습을 하며 차근차근 읽어보시기 바랍니다.
*이 개념도 복잡하실 수 있으니, 실습을 하며 차근차근 읽어보시기 바랍니다.
983번째 줄: 962번째 줄:
   
   
{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
i : 0 , j : 0
i : 0 , j : 0
i : 1 , j : 0
i : 1 , j : 0
990번째 줄: 969번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===리스트 컴프리헨션===
===리스트 컴프리헨션===
997번째 줄: 976번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers = []
odd_numbers = []
1,007번째 줄: 986번째 줄:
print(odd_numbers)
print(odd_numbers)


</syntaxhighlight>
</source>


* 이 코드를 컴프리헨션을 이용하면 간결해집니다.
* 이 코드를 컴프리헨션을 이용하면 간결해집니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers = [1,2,3,4,5,6,7,8,9,10]
odd_numbers = [number for number in numbers if number % 2==1]
odd_numbers = [number for number in numbers if number % 2==1]
1,018번째 줄: 997번째 줄:
print(odd_numbers)
print(odd_numbers)


</syntaxhighlight>
</source>


{{소스헤더|두 예제의 동일한 결과}}
{{소스헤더|두 예제의 동일한 결과}}
<syntaxhighlight lang='python'>
<source lang='python'>
[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9]
</syntaxhighlight>
</source>


=조건 판단하기=
=조건 판단하기=
1,034번째 줄: 1,013번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_bool1 = True
>>> my_bool1 = True
>>> print(my_bool1)
>>> print(my_bool1)
1,047번째 줄: 1,026번째 줄:
>>> print(my_bool4)
>>> print(my_bool4)
False
False
</syntaxhighlight>
</source>


===비교 연산자===
===비교 연산자===
1,055번째 줄: 1,034번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_cmp1 = 1 < 2        #1은 2보다 작냐
>>> my_cmp1 = 1 < 2        #1은 2보다 작냐
>>> my_cmp2 = 1 == 2      #1은 2랑 같냐
>>> my_cmp2 = 1 == 2      #1은 2랑 같냐
1,065번째 줄: 1,044번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===논리 연산자===
===논리 연산자===
1,074번째 줄: 1,053번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_con1 = True and True
>>> my_con1 = True and True
>>> print(my_con1)
>>> print(my_con1)
1,088번째 줄: 1,067번째 줄:
False
False


</syntaxhighlight>
</source>


*비교 연산자를 이용해 표현할 수도 있습니다.
*비교 연산자를 이용해 표현할 수도 있습니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_con1 = 1 < 2 and 2 < 3      #True and True
>>> my_con1 = 1 < 2 and 2 < 3      #True and True
>>> print(my_con1)
>>> print(my_con1)
1,107번째 줄: 1,086번째 줄:
False
False


</syntaxhighlight>
</source>


====<big>논리 연산자를 사용하는 이유</big>====
====<big>논리 연산자를 사용하는 이유</big>====
1,121번째 줄: 1,100번째 줄:
===기본구조===
===기본구조===
{{소스헤더|if문의 기본구조}}
{{소스헤더|if문의 기본구조}}
<syntaxhighlight lang='python'>
if 조건:
if 조건:
  실행할 명령1
    실행할 명령1
  실행할 명령2
    실행할 명령2
 
</syntaxhighlight>
* 조건이 참이면 명령을 실행하고 거짓이면 빠져나옵니다.(종료합니다)
* 조건이 참이면 명령을 실행하고 거짓이면 빠져나옵니다.(종료합니다)


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
name = 'Lefty'
name = 'Lefty'
if name == 'Lefty':      #만약 name이 Lefty와 같다면
if name == 'Lefty':      #만약 name이 Lefty와 같다면
1,135번째 줄: 1,113번째 줄:
     print('만나서 반가워요!')
     print('만나서 반가워요!')


</syntaxhighlight>
</source>


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
당신이 Lefty군요!
당신이 Lefty군요!
만나서 반가워요!
만나서 반가워요!


</syntaxhighlight>
</source>


*name 값이 달라진다면 당연히 아무 일도 일어나지 않습니다.(직접 해보세요)
*name 값이 달라진다면 당연히 아무 일도 일어나지 않습니다.(직접 해보세요)
1,165번째 줄: 1,143번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
name = 'Alice'
name = 'Alice'
if name == 'Alice'        #만약 name이 Alice와 같다면
if name == 'Alice'        #만약 name이 Alice와 같다면
1,174번째 줄: 1,152번째 줄:
     print('당신은 누구십니까?')  
     print('당신은 누구십니까?')  


</syntaxhighlight>
</source>


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
당신이 Alice군요!
당신이 Alice군요!


</syntaxhighlight>
</source>


* name의 값은 여러분이 바꿔보시면서 실습해보시기 바랍니다.
* name의 값은 여러분이 바꿔보시면서 실습해보시기 바랍니다.
1,194번째 줄: 1,172번째 줄:
===기본구조===
===기본구조===
{{소스헤더|기본구조}}
{{소스헤더|기본구조}}
<syntaxhighlight lang='python'>
while 조건문:
while 조건문:
     수행할 문장 1
     수행할 문장 1
     수행할 문장 2
     수행할 문장 2
     수행할 문장 3
     수행할 문장 3
</syntaxhighlight>
 
* 조건문이 참인 동안 명령을 계속 실행하고 거짓이 되면 넘어가게 됩니다.
* 조건문이 참인 동안 명령을 계속 실행하고 거짓이 되면 넘어가게 됩니다.


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
count = 0
count = 0
while count < 3:      # count가 3보다 작냐
while count < 3:      # count가 3보다 작냐
1,209번째 줄: 1,186번째 줄:
     count = count + 1
     count = count + 1


</syntaxhighlight>
</source>


* 이 개념은 복잡하지만 if와 비슷합니다. 천천히 읽어보세요
* 이 개념은 복잡하지만 if와 비슷합니다. 천천히 읽어보세요
1,215번째 줄: 1,192번째 줄:


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
횟수: 0
횟수: 0
횟수: 1
횟수: 1
횟수: 2
횟수: 2


</syntaxhighlight>
</source>


===넘어가기===
===넘어가기===
1,228번째 줄: 1,205번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
count = 0
count = 0
while count < 5:
while count < 5:
1,236번째 줄: 1,213번째 줄:
     print(count)
     print(count)


</syntaxhighlight>
</source>


*이 프로그램은 5 이하의 자연수 중 짝수만 골라내는 프로그램입니다.
*이 프로그램은 5 이하의 자연수 중 짝수만 골라내는 프로그램입니다.
1,242번째 줄: 1,219번째 줄:


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
2
2
4
4


</syntaxhighlight>
</source>


===멈추기===
===멈추기===
1,254번째 줄: 1,231번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
while True:        #조건이 계속 참이므로 무한히 반복되는 코드가 완성됩니다(이런 것을 무한루프라고 합니다)
while True:        #조건이 계속 참이므로 무한히 반복되는 코드가 완성됩니다(이런 것을 무한루프라고 합니다)
   name = input('당신의 이름은?: ')
   name = input('당신의 이름은?: ')
1,261번째 줄: 1,238번째 줄:
       break          #이 문장의 다음 문장을 실행하지 않고 종료합니다.
       break          #이 문장의 다음 문장을 실행하지 않고 종료합니다.
   print('{}님, 안녕!' .format(name))
   print('{}님, 안녕!' .format(name))
</syntaxhighlight>
</source>


* 일단 input으로 이름을 입력하고 name에 저장합니다. name에 종료가 아닌 문장이 입력되었다면 print문이 실행되고 무한루프로 인해 이름을 계속 물어볼 것입니다. 하지만 만약 name에 종료가 저장되었다면 '종료합니다'를 출력합니다. 그리고 break로 인해 무한루프이지만 강제로 종료됩니다.
* 일단 input으로 이름을 입력하고 name에 저장합니다. name에 종료가 아닌 문장이 입력되었다면 print문이 실행되고 무한루프로 인해 이름을 계속 물어볼 것입니다. 하지만 만약 name에 종료가 저장되었다면 '종료합니다'를 출력합니다. 그리고 break로 인해 무한루프이지만 강제로 종료됩니다.
1,272번째 줄: 1,249번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">  
<source lang="python">  
>>> name = input('이름을 입력하세요 : ')
>>> name = input('이름을 입력하세요 : ')
이름을 입력하세요:                  #여기다 이름을 입력하시면 name에 저장됩니다
이름을 입력하세요:                  #여기다 이름을 입력하시면 name에 저장됩니다
1,280번째 줄: 1,257번째 줄:
안녕, (이름)!
안녕, (이름)!


</syntaxhighlight>
</source>


==자료형 바꾸기(int, str)==
==자료형 바꾸기(int, str)==
1,286번째 줄: 1,263번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> age = int(input('나이를 입력하세요:'))  
>>> age = int(input('나이를 입력하세요:'))  
나이를 입력하세요:  #이름 입력
나이를 입력하세요:  #이름 입력
1,292번째 줄: 1,269번째 줄:
(이름 -3)살 이시군요!
(이름 -3)살 이시군요!


</syntaxhighlight>
</source>


* 앞에 int 함수가 없었다면 나이를 숫자로 입력하여도 컴퓨터는 문자열로 인식할 것이고, 밑의 print문에 있는 연산을 하지 못하겠죠. 하지만 int 함수로 인해 컴퓨터는 숫자만 나이로 받습니다. 따라서 연산도 되는 것이죠. (int를 뺀 문장에서 어떤 결과가 나오는지 직접 실습해보세요)
* 앞에 int 함수가 없었다면 나이를 숫자로 입력하여도 컴퓨터는 문자열로 인식할 것이고, 밑의 print문에 있는 연산을 하지 못하겠죠. 하지만 int 함수로 인해 컴퓨터는 숫자만 나이로 받습니다. 따라서 연산도 되는 것이죠. (int를 뺀 문장에서 어떤 결과가 나오는지 직접 실습해보세요)
1,309번째 줄: 1,286번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> my_dict1 = {1 : 'a', 2 : 'b'}
>>> my_dict1 = {1 : 'a', 2 : 'b'}
>>> my_dict2 = {'a' : 1, 'b' : 2}
>>> my_dict2 = {'a' : 1, 'b' : 2}
1,316번째 줄: 1,293번째 줄:
{1 : 'a', 2 : 'b'}
{1 : 'a', 2 : 'b'}


</syntaxhighlight>
</source>


*콜론(:)으로 묶고, 콤마(,)로 구문합니다.
*콜론(:)으로 묶고, 콤마(,)로 구문합니다.
1,324번째 줄: 1,301번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_dict = {}
>>> my_dict = {}
>>> my_dict[1] = 'a'    #1(키)를 이용하여 'a'라는 값을 추가합니다.
>>> my_dict[1] = 'a'    #1(키)를 이용하여 'a'라는 값을 추가합니다.
1,339번째 줄: 1,316번째 줄:
<class 'dict'>
<class 'dict'>


</syntaxhighlight>
</source>


===값 접근하기===
===값 접근하기===
1,345번째 줄: 1,322번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_dict = {1 : 'a', 'b' : 2, 'c' : 'd'}
>>> my_dict = {1 : 'a', 'b' : 2, 'c' : 'd'}
>>> (my_dict[1])  #a의 키인 1을 이용하여 값인 a를 가져옵니다.
>>> (my_dict[1])  #a의 키인 1을 이용하여 값인 a를 가져옵니다.
1,355번째 줄: 1,332번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===값 삭제하기===
===값 삭제하기===
1,361번째 줄: 1,338번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_dict = {1 : 'a', 'b' : 2, 'c' : 'd'}
>>> my_dict = {1 : 'a', 'b' : 2, 'c' : 'd'}
>>> del my_dict[1]    #a의 키인 1을 이용하여 값인 a를 지웁니다.
>>> del my_dict[1]    #a의 키인 1을 이용하여 값인 a를 지웁니다.
1,372번째 줄: 1,349번째 줄:
>>>
>>>


</syntaxhighlight>
</source>


===딕셔너리 메서드===
===딕셔너리 메서드===
1,379번째 줄: 1,356번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
my_dict = {'k1' : 'v1', 'k2' : 'v2'}
my_dict = {'k1' : 'v1', 'k2' : 'v2'}
for val in my_dict.values():
for val in my_dict.values():
     print(val)
     print(val)
</syntaxhighlight>
</source>


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang="python">
<source lang="python">
v1
v1
v2
v2
</syntaxhighlight>
</source>


*'''.keys()'''
*'''.keys()'''
1,395번째 줄: 1,372번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
my_dict = {'k1' : 'v1', 'k2' : 'v2'}
my_dict = {'k1' : 'v1', 'k2' : 'v2'}
for key in my_dict.keys():
for key in my_dict.keys():
     print(key)
     print(key)


</syntaxhighlight>
</source>


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
k1
k1
k2
k2
</syntaxhighlight>
</source>


*'''.items()'''
*'''.items()'''
1,412번째 줄: 1,389번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_dict = {‘k1’: ‘v1’, ‘k2’: ‘v2’}
>>> my_dict = {‘k1’: ‘v1’, ‘k2’: ‘v2’}
>>> for key, val in my_dict.items():
>>> for key, val in my_dict.items():
           print(key, val)
           print(key, val)


</syntaxhighlight>
</source>


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> my_dict = {‘k1’: ‘v1’, ‘k2’: ‘v2’}
>>> my_dict = {‘k1’: ‘v1’, ‘k2’: ‘v2’}
>>> for key, val in my_dict.items():     
>>> for key, val in my_dict.items():     
           print(key, val)
           print(key, val)


</syntaxhighlight>
</source>


*여기서 파이썬적인 개념으로 들어가면 items()에서 딕셔너리를 언패킹해서 key와 val에 넣는다고 보시면 됩니다.
*여기서 파이썬적인 개념으로 들어가면 items()에서 딕셔너리를 언패킹해서 key와 val에 넣는다고 보시면 됩니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
k1 v1
k1 v1
k2 v2
k2 v2
</syntaxhighlight>
</source>


=모아서 다시 쓰기=
=모아서 다시 쓰기=
==함수==
==함수==
*좀 뜬금없지만(?) 여러분에게 돌을 금으로 바꿀 수 있는 능력이 있다고 가정해봅시다. 어느 날 여러분의 능력을 안 친구가 돌을 금으로 바꾸어달라고 부탁합니다. 어쩔 수 없이 만들어주었죠. 친구는 그걸 또다른 친구에게 알려주고, 또다른 친구도 여러분에게 금을 만들어달라고 부탁합니다. 또 해주죠. 이 소문이 사방으로 퍼져 이제 주변의 모든 사람이 금을 만들어달라고 합니다. 한사람 한사람 만들어주어야 하니 여러분은 이게 너무 귀찮은거죠. 생각해보니 반복되는 작업을 계속하고 있는 것이었습니다. 그래서 마법의 항아리를 만들게됩니다. 이 항아리에 돌을 입력으로 넣으면 금이 출력으로 나오는 것이죠. 이렇게 되면 노력과 시간이 절약될 것입니다. 이 마법의 항아리를 파이썬에서는 함수라고 합니다. 반복되는 작업을 묶어 이름을 붙여주는 것이죠. 반복되는 작업을 줄여줌으로서 코드의 양을 줄일 수 있습니다.
*좀 뜬금없지만(?) 여러분에게 돌을 금으로 바꿀 수 있는 능력이 있다고 가정해봅시다. 어느 날 여러분의 능력을 안 친구가 돌을 금으로 바꾸어달라고 부탁합니다. 어쩔 수 없이 만들어주었죠. 친구는 그걸 또다른 친구에게 알려주고, 또다른 친구도 여러분에게 금을 만들어달라고 부탁합니다. 또 해주죠. 이 소문이 사방으로 퍼져 이제 주변의 모든 사람이 금을 만들어달라고 합니다. 한사람 한사람 만들어주어야 하니 여러분은 이게 너무 귀찮은거죠. 생각해보니 반복되는 작업을 계속하고 있는 것이었습니다. 그래서 마법의 항아리를 만들게됩니다. 이 항아리에 돌을 입력으로 넣으면 금이 출력으로 나오는 것이죠. 이렇게 되면 노력과 시간이 절약될 것입니다. 이 마법의 항아리를 파이썬에서는 함수라고 합니다. 반복되는 작업을 묶어 이름을 붙여주는 것이죠. 반복되는 작업을 줄여줌으로서 코드의 양을 줄일 수 있습니다.
*'''어려운 개념이라 말을 길게 늘여놓았는데 꼭 한번씩 읽어보셨으면 좋겠습니다. <big>코드의 양을 획기적으로 줄여줄 수 있는 것이 바로 함수</big>이기 때문입니다.'''
*'''어려운 개념이라 말을 길게 들여놓았는데 꼭 한번씩 읽어보셨으면 좋겠습니다. <big>코드의 양을 획기적으로 줄여줄 수 있는 것이 바로 함수</big>이기 때문입니다.'''
===기본구조===
===기본구조===
{{소스헤더|함수 만드는 법}}
 
<syntaxhighlight lang='python'>
{{소스헤더|함수를 만드는 법}}
def 함수이름 (인자 1, ....):     
def 함수이름 (인자 1, ....):     
    실행할 명령 1
    실행할 명령 1
    실행할 명령 2
    실행할 명령 2
    return 결과   
    return 결과   
</syntaxhighlight>
 
* 함수이름을 설정하기 위해 반드시 def 키워드를 사용합니다.
* 함수이름을 설정하기 위해 반드시 def 키워드를 사용합니다.
* 인자는 입력받는 값(전달받는 값)이라고 생각하시면 됩니다.
* 인자는 입력받는 값(전달받는 값)이라고 생각하시면 됩니다.
1,454번째 줄: 1,431번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
def my_sum(n1, n2):
def my_sum(n1, n2):
     return n1 + n2
     return n1 + n2
</syntaxhighlight>
</source>


* 이 함수는 my_sum(숫자1, 숫자2)를 실행시키면 숫자1 + 숫자2의 결과를 출력하도록 만든 함수입니다. 에디터 모드이므로 저장을 하고 직접 실행시켜 보겠습니다.
* 이 함수는 my_sum(숫자1, 숫자2)를 실행시키면 숫자1 + 숫자2의 결과를 출력하도록 만든 함수입니다. 에디터 모드이므로 저장을 하고 직접 실행시켜 보겠습니다.


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> my_sum(1, 2)  # 함수이름(숫자1, 숫자2)의 꼴로 실행시키면,
>>> my_sum(1, 2)  # 함수이름(숫자1, 숫자2)의 꼴로 실행시키면,
3    # 숫자1 + 숫자2의 형태로 출력됩니다.
3    # 숫자1 + 숫자2의 형태로 출력됩니다.
1,468번째 줄: 1,445번째 줄:
8
8


</syntaxhighlight>
</source>


===함수의 종류===
===함수의 종류===
1,493번째 줄: 1,470번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
def my_sum_mul(n1, n2)
def my_sum_mul(n1, n2)
     return n1 + n2, n1 * n2
     return n1 + n2, n1 * n2


</syntaxhighlight>   
</source>   


* 저장하고 실행해보면,
* 저장하고 실행해보면,


{{소스헤더|결과}}
{{소스헤더|결과}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> a, b = my_sum_mul(2, 3)  #a에는 2와 3을 더한 값을, b에는 2와 3을 곱한 값을 넣어주겠습니다
>>> a, b = my_sum_mul(2, 3)  #a에는 2와 3을 더한 값을, b에는 2와 3을 곱한 값을 넣어주겠습니다
>>> print(a)
>>> print(a)
1,509번째 줄: 1,486번째 줄:
6
6
>>>
>>>
</syntaxhighlight>  
</source>  


* 여기서 주의하실 점은 '''함수의 결괏값은 항상 하나'''라는 것입니다.
* 여기서 주의하실 점은 '''함수의 결괏값은 항상 하나'''라는 것입니다.
1,515번째 줄: 1,492번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang = 'python'>
<source lang = 'python'>
>>> result = my_sum_mul(2, 3)  #result에 2와 3을 더하고 곱한 값을 저장해보겠습니다
>>> result = my_sum_mul(2, 3)  #result에 2와 3을 더하고 곱한 값을 저장해보겠습니다
>>> print(result)
>>> print(result)
1,522번째 줄: 1,499번째 줄:
<class 'tuple'>      #type 함수를 이용하여 튜플이라는 것을 확인하였습니다
<class 'tuple'>      #type 함수를 이용하여 튜플이라는 것을 확인하였습니다


</syntaxhighlight>
</source>


* 여러 개의 결과를 하나의 변수에 저장하였을 때, return을 거쳐가면서 패킹(값을 묶는 것)이 됩니다. 값이 묶여버려서, 튜플이 되는 것이지요.
* 여러 개의 결과를 하나의 변수에 저장하였을 때, return을 거쳐가면서 패킹(값을 묶는 것)이 됩니다. 값이 묶여버려서, 튜플이 되는 것이지요.
1,532번째 줄: 1,509번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
def sum_mul(num1, num2):
def sum_mul(num1, num2):
     """입력 값을 더하고 곱합니다."""    #이것이 독스트링 입니다.
     """입력 값을 더하고 곱합니다."""    #이것이 독스트링 입니다.
     return num1 + num2, num1 * num2
     return num1 + num2, num1 * num2
</syntaxhighlight>
</source>


* 나중에 구글에 검색을 하시다 보면, 독스트링이 있는 문서를 보게 되실 수 있습니다.
* 나중에 구글에 검색을 하시다 보면, 독스트링이 있는 문서를 보게 되실 수 있습니다.
1,562번째 줄: 1,539번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
import random    #random 모듈을 사용하기 위해 import를 사용합니다
import random    #random 모듈을 사용하기 위해 import를 사용합니다
fruits = ['apple', 'banana', 'lemon']
fruits = ['apple', 'banana', 'lemon']
1,568번째 줄: 1,545번째 줄:
print(my_fruit)
print(my_fruit)


</syntaxhighlight>
</source>


* 위 예제를 실행하면 apple, banana, lemon 중 하나가 무작위로 출력됩니다.
* 위 예제를 실행하면 apple, banana, lemon 중 하나가 무작위로 출력됩니다.
1,576번째 줄: 1,553번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
import random
import random
fruits = ['apple', 'banana', 'lemon']
fruits = ['apple', 'banana', 'lemon']
1,582번째 줄: 1,559번째 줄:
print(my_fruit)
print(my_fruit)


</syntaxhighlight>
</source>


- 위 예제를 실행하면 apple, banana, lemon, 3가지의 단어 중 두 개가 무작위로 출력됩니다.
- 위 예제를 실행하면 apple, banana, lemon, 3가지의 단어 중 두 개가 무작위로 출력됩니다.
1,590번째 줄: 1,567번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
>>> import random
>>> import random
>>> print(random.sample(range(1, 46), 6))
>>> print(random.sample(range(1, 46), 6))


</syntaxhighlight>
</source>


* 복권 번호를 계속 추출해 낼 수 있습니다.
* 복권 번호를 계속 추출해 낼 수 있습니다.
1,602번째 줄: 1,579번째 줄:


{{소스헤더|예제}}
{{소스헤더|예제}}
<syntaxhighlight lang="python">
<source lang="python">
import random
import random
my_int = random.randint(0, 10)  #해당 범위의 정수 중 하나를 랜덤하게 리턴합니다.
my_int = random.randint(0, 10)  #해당 범위의 정수 중 하나를 랜덤하게 리턴합니다.
print(my_int)
print(my_int)


</syntaxhighlight>
</source>


- 위 예제를 실행하면 0~10 사이의 정수 중 하나가 출력됩니다.
- 위 예제를 실행하면 0~10 사이의 정수 중 하나가 출력됩니다.

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: