유기농냠냠파이썬

호박 (토론 | 기여)님의 2018년 2월 5일 (월) 18:38 판 (→‎print문)

1 유기농냠냠파이썬

대학교 새내기 시절 코딩이 너무 어려웠습니다. 잘해보려 아등바등 노력해 봤지만 매번 실패만 하다가 결국 미워하게 되어버렸습니다. 지금 돌아보면 그렇게 미워할 정도는 아니었는데 말이죠. 지금도 같은 고민을 하는 분들이 많을 거라고 생각합니다. 그 때 그 시절 이런 강의가 있었으면 어땠을까 하는 마음으로 유기농냠냠파이썬을 준비했습니다.

유기농냠냠파이썬은 코딩이 너무 어려워 포기한 분, 또는 코딩을 처음 접하는 분을 위한 강의입니다. 파이썬이라는 프로그래밍 언어의 기초 문법을 쉽게 배울 수 있습니다. 코딩을 왜 배워야 하는지, 왜 필요한지에 대해서 답을 주지는 않지만 코딩이란 이런 거구나, 파이썬이란 이런 거구나 하는 정도의 감을 잡을 수 있습니다.

1.1 김왼손과 집단지성들

김왼손과 집단지성들은 잉끼유튜버 김왼손과 그 열혈 구독자들이 함께하는 코딩계의 아이돌 그룹입니다. 정규 2집 유기농냠냠파이썬에 참여해 주신 분들은 아래에 기록을 꼭 남겨주세요. 닉네임과 이메일을 적어주시면 됩니다. 순서는 상관 없습니다. 참여해 주신 모든 분들께 진심으로 감사드립니다.

  • 이에스 [hubolab10@gmail.com] - 서브 보컬 ( 실시간 스트리밍 채팅 살리기 + 예제 제작 )
  • 토미유튜브 Tommy Youtube [tjdwn1416@gmail.com] - 메인 보컬(유기농냠냠파이썬 주요 편집)
  • JK Jung [jaekook.jeong@gmail.com]
  • 큰손 ( 보조 편집자)
  • Park6000
  • JW호박 pumkin [pjwbrain@naver.com] - 메인 댄서(실시간 스트리밍 채팅 살리기 + 유기농냠냠파이썬 보조 편집)
  • MANGO 망고 [mingyu041209@naver.com] - 작사가
  • 웃는남자 [namja1325@naver.com]
  • Young
  • Sean [wansunlee@gmail.com]
  • LEE SANG MIN[andych5789@gmail.com]
  • 몹쓸 프포자[realgeek0509@naver.com] (무슨 역할을 할까요..?)
  • 흰구름[bsjsean1402@gmail.com](저도 무슨 역할을 할까요??)
  • 이승현[himynewfuture@gmail.com] - 코러스(실시간 스트리밍 채팅 보조 + 썸네일 제작)

1.2 유기농냠냠파이썬 키우기

  • 김왼손은 강의합니다.
  • 열혈 구독자들은 문서를 잘 키웁니다.
  • 모두 함께 정리합니다.

-주의- 강의 중에는 내용이 겹칠 수 있으니 메모장에 미리 적어났다가 복사 붙여넣기를 이용해 빠르게 내용을 삽입하세요.

2 들어가기 전에

2.1 이 강의의 특징

  • 이 강의는 코딩을 한번도 배우지 않은 사람을 대상으로 합니다. 그래서 쉽고 빨리 배울 수 있습니다. 현재 만들어진 다른 강의를 보면 내용이 어려운 강의가 많습니다. 따라서 불필요한 내용도 많이 실려져 있습니다. 그래서 이 강의는 초심자에게 꼭 필요한 내용을 담고 있어서 이 강의를 끝내면 다른 프로그램을 만들거나 더 어려운 강의를 들을 수 있게 됩니다.

2.2 이 강의 두배로 즐기기

  • 이 강의에는 여러분이 직접 참여하실 수 있도록 다양한 예시와 실습자료가 준비되어져 있습니다. 따라서 여러분이 직접 파이썬 IDLE를 켜고 강의를 보며 따라하시면 더 오래 기억하실 수 있습니다. 그리고 여러분이 이 책을 읽으시다가 궁금한 점이 생기면 구글에 검색하시면 많은 정보를 얻으실 수 있습니다. ( 네이버에는 파이썬 관련 내용이 많지 않습니다. )

2.3 프로그램과 프로그래밍

2.3.1 프로그래밍이란?

  • 프로그램은 프로그램을 만드는 과정을 말합니다. 프로그램은 우리가 컴퓨터에게 일을 시키는 것입니다. 대표적인 것으로는 계산기 프로그램, 다이어트 프로그램, 주식예측 프로그램 등이 있습니다. 이러한 프로그램을 사용하면 더 빠른 시간에 여러 일을 할 수 있습니다.

2.3.2 프로그래밍 언어

  • 우리가 일본 사람에게 한국어를 사용하면 알아듣지를 못합니다. 컴퓨터도 마찬가지입니다. 그래서 컴퓨터가 알아들을 수 있는 언어를 사용하여야 하는데 이를 프로그램 언어라고 합니다.

2.3.3 프로그램의 구조

  • 프로그램은 크게 순차, 반복, 선택이라는 기본 구조를 가지고 있다. 직접 말로 설명하지 않고 예를 들겠다.

2.3.4 순차

>>>오른쪽으로 가라 >>>오른쪽으로 가라 >>>오른쪽으로 가라

2.3.5 반복

>>>오른쪽으로 3번 가라

2.3.6 선택

  • >앞에 몬스터가 있는가?
    • >예 : 공격을 하라
    • >아니요 : 앞으로 가라

2.4 왜 파이썬일까요?

2.4.1 파이썬의 탄생

  • 파이썬은 귀도 반 로섬(Guido van Rossum)에 의해 만들어졌습니다. 그는 자신이 있던 프로젝트가 성과가 없다는 이유로 종료되자, 자신이 자신이 속했던 ABC프로젝트에서 만든 프로그래밍 언어인 ABC를 바탕으로 새로운 분산환경 시스템에 맞으면서 C와 셀에서 부족한 부분을 채워주는 새로운 언어를 개발하고자 1989년부터 파이썬 개발에 착수하고 1990년에 완성시켰습니다.

2.4.2 파이썬의 장점

  • 빠르다. (여기서 빠르다는 것은 실행속도가 빠르다는 것이 아니라 개발 속도가 빠르다는 것입니다.)

실제로 C언어와 파이썬을 비교해보면,

C언어
#include <stdio.h>

int main(void)
{
    printf("Hello World!");
    return 0;
}
파이썬
print("Hello World!")

-이렇게 큰 차이를 보이는 것을 알 수 있습니다.

  • 쉽고 간결하다

- 파이썬은 다른 언어보다 더 쉽고 더 짧게 코드를 작성할 수 있습니다. 그 덕분에 초심자들이 배우기에 적당합니다.

  • 검색 결과가 많다

-파이썬은 관련 서적이 많고 구글에 검색할 시 결과가 많이 나옵니다. 특히 영어로 치면 말입니다. 이러한 인터넷 자료는 여러분이 프로그램을 만들 때 도움이 됩니다.

2.5 파이썬의 이용

  • 파이썬은 다양한 곳에서 이용이 됩니다.

2.5.1 구글의 애용

  • 파이썬은 구글에서 애용하는 언어로 파이썬의 제작자인 귀도 반 로섬이 구글에 입사하면서부터 자주 사용되었습니다. 그래서 현재 구글의 3대 언어 중 하나가 되었습니다.

2.5.2 파이썬 활용

파이썬은 웹개발에서부터 게임개발 그리고 데이터 분석과 머신러닝까지 그 활용도가 무궁무진하여 여러 사람들에게 각광받고 있습니다.

2.5.2.1 웹개발

파이썬의 웹 프레임워크 중 하나인 '장고(Django)'를 활용해서 개발된 웹사이트로는 다음과 같은여러 앱들이 있습니다.

2.5.3 게임

2.5.4 데이터 분석

파이썬의 데이터 분석 라이브러리를 통해 방대한 양의 데이터에 알맞은 방법으로 접근하고, 효과적인 방법으로 분석할 수 있게 되었습니다.

데이터 분석 라이브러리
NumPy http://www.numpy.org
Pandas https://pandas.pydata.org
IPython https://ipython.org
SciPy https://www.scipy.org
데이터 시각화 라이브러리
Matplotlib https://matplotlib.org
Seaborn https://seaborn.pydata.org
Bokeh https://bokeh.pydata.org
Plotly https://plot.ly

2.6 파이썬 설치

2.6.1 버전

  • 파이썬은 크게 3버전2버전으로 나눌 수 있습니다. 3버전은 최신 버전으로 2버전와 호환이 되지 않는 부분들이 다수 존재하기 때문에 주의해야 합니다.

2.6.2 어떤 버전을 쓸까?

  • 파이썬 3버전(3. X)을 추천합니다. 왜냐하면 더 쉽고 계속 업데이트가 되며 최신 서적도 주로 3버전을 다루고 있기 때문입니다.
  • 파이썬 2버전(2. X)은 더이상 추가 업데이트를 하지 않겠다고 공식 발표를 했습니다. (2020년부터 지원 종료)

2.6.3 파이썬 다운로드

2.6.4 주의해야 할 점

  • add to path를 누르고 가는 것이 초심자들에게 좋습니다. 이는 나중에 유용하게 사용됩니다.

3 프로그램의 기본재료

3.1 숫자형

  • 숫자형은 파이썬에서 가장 기본이 되는 자료입니다. 따라서 나중에 유용하게 사용할 수 있습니다. 숫자형은 크게 정수형과 실수형으로 나눌 수 있는데 정수형은 x가 자연수일 때 x 홋은 -x입니다. 예를 들어 -8, 4, 19 등이 있습니다. 실수형은 쉽게 생각하면 x가 자연수가 아닐 때 x, 혹은 -x입니다. 예를 들어 0.5, 1.8, -9.54 등이 있습니다.
예제
>>>my_int=1 #int는 한국어로 '정수'를 뜻합니다.
>>>my_float= 1.1 #float은 한국어로 '실수'(實數)를 뜻합니다.

3.2 사칙연산

  • 사칙연산은 더하기, 빼기, 곱하기, 그리고 나누기를 이야기합니다. 이는 각각 +, -, *, /입니다. 많은 분들께서 곱하기와 나누기를 X와 %를 쓰시는데 이는 다른 의미를 가지고 있습니다. 그 외에도 거듭제곱인 **와 나눗셈의 몫인 // 등 여러 기호가 있는데 이는 내용이 어려우니 간단히만 보고 넘어가겠습니다.
예제
>>>1 + 1
2
>>>2 - 1
1
>>>4 * 5
20
>>>6 / 2
3

3.3 print문

  • print문은 말 그대로 출력하는 것입니다. 말로 설명하면 오히려 더 어려우니 예시를 보여드리겠습니다. (단, 쓰신 글의 좌우에는 ' 표시를 꼭 해주셔야 합니다.)
예제
>>>print('유기농냠냠파이썬')
'유기농냠냠파이썬'
>>>print('김왼손')
'김왼손

3.4 변수

  • 변수는 계속 변화하는 값으로 함수와 연관성이 깊습니다. 게임에서의 점수가 변수의 예입니다. 쉽게 생각하면 한 상자에 어떠한 값을 저장한다고 생각하시면 됩니다. 변수에는 어떤 값을 더하거나 빼고 곱하거나 나눌 수도 있습니다.
  • 변수명은 변수의 이름입니다. 변수명은 여러분의 자유로 지을 수 있는데 3가지의 규칙이 있습니다.
1. 변수명을 숫자로 시작하면 안됩니다.
2. 띄어쓰기 대신 언더바(_)를 사용합니다.(변수명에 띄어쓰기가 포함되면 에러가 납니다.)
3. 대문자와 소문자를 구별합니다.
※ 추가로, 변수의 의미를 알 수 있는 변수명을 이용해야 합니다. 그래야지 시간이 지나서도 다시 사용하기 쉽고 자신의 코드를 공유하기 쉽습니다.
my_int = 2
my_float = 4.1
my_int + my_float
6.1

4 문자열

4.1 기본구조

  • 문자열이란 '나 " 안에 있는 숫자나 문자를 이야기합니다. 예를 들어 3.14가 원래는 실수형이지만 ' 안에 들어오면 문자열이 되는 것입니다.
  • 작은따옴표(), 큰따옴표("")를 사용합니다.(작은따옴표 세 개를 사용해도 실행이 됩니다.)
예제
my_str1 = 'a'
my_str2 = '3.14'
my_str3 = 'coding'
my_str4 = "coding"
  • 문자열들로 연산을 할 수도 있습니다. 이는 나중에 함수를 사용할 때 유용하게 사용합니다.
예제
my_str1 = '1' + '2' + '3'   
my_str2 = 'cod' + 'ing'    
my_str3 = '=' * 10
  • 위 코드를 IDLE에 입력하면 123, coding, 그리고 ==========이 출력됩니다.
  • 작은따옴표 3개를 사용하시면 중간에 엔터를 치면 줄바꿈까지 출력됩니다.
예제
print('''First
Second
Third''')
First
Second
Third

4.2 인덱스

  • 인덱스는 문자열에서의 주소입니다.
  • 각 문자마다 위치(인덱스)가 따로 있어 잘라낼 수 있습니다.
  • 파이썬에서 인덱스 할 때는 숫자가 0부터 시작하니 주의해야 합니다.
예제
alphabet = 'abcde'
print(alphabet[0])
print(alphabet[3])
print(alphabet[4])
  • 위 코드를 IDLE에 입력하면 a, d, 그리고 e가 차례대로 출력되게 됩니다.
  • 음수로도 인덱스를 할 수 있습니다. 이는 나중에 이미 만든 작품을 수정할 때 유용하게 이용되니 잘 기억해두도록 합시다.

4.3 슬라이싱

  • 여러개의 문자를 잘라오는 것입니다. 이는 역시 코드를 수정할 때 유용하게 사용됩니다.
  • 콜론(:)으로 할 수 있습니다.
  • 슬라이싱에서는 공백도 포함됩니다.
my_str = 'Hello Python!'
print(my_str[0:1])
print(my_str[0:2])
print(my_str[3:7])
  • 위 코드를 IDLE에 입력하면 H, He, 그리고 lo(공백)p가 차례대로 출력됩니다.
  • 콜론(:) 앞에 값이나 뒤에 값을 생략할 수도 있습니다.
my_str = 'Python'
print(my_str[:3]) # 문자열의 처음부터 해당 숫자 전까지
print(my_str[2:]) # 해당 숫자부터 문자열의 끝까지
print(my_str[:]) # 문자열 전체
  • 주석을 참고하면, 위 코드는 각각 Pyt, thon, Python을 출력합니다.
  • 슬라이싱은 문자를 실제로 잘라 버리는 게 아니라, 자른 만큼 복사해 오는 것입니다. 즉, 슬라이싱을 해도 원본 문자열은 그대로 남아 있습니다.

4.4 메서드

Split
  • 이 코드를 입력하게 되면 사과, 바나나, 그리고 레몬이 각각 리스트의 다른 항목으로 저장이 되게 됩니다. 리스트의 정의는 추후에 설명하도록 하겠습니다. 그래서 정리해서 말하자면 split은 한 문자열 안을 나누는 것을 말합니다.
fruit_str = 'apple banana lemon'
fruits = fruit_str.split()
print(fruits[0])
print(fruits[1])

4.5 주석

  • 주석은 사람만 읽을 수 있고 컴퓨터는 읽을 수 없는 내용입니다. 메모라고 생각하면 편합니다. 이는 그래서 역시 이미 만들어놓은 코드를 수정하거나 알아보는데 편합니다.
  1. 주석은 #을 이용해 나타내며 어떠한 내용을 적어도 컴퓨터는 알아보지 못합니다.
print('안녕!') # 인사를 하는 코드
#print('안녕!')
  • 위 코드를 IDLE에 입력하면 # 인사를 한다. 부분은 보이지 않고 두 번째 코드는 결과가 보이지 않게 됩니다.

5 리스트

  • 30명의 학생이 수학 시험을 보았다고 예를 들어봅시다. 지금까지 저희가 배운 내용으로는 my_student1, my_student2...으로 30개를 나타내어야 합니다. 하지만 이런 변수들 여러개를 제어하기 힘듭니다. 그래서 여러 값을 한번에 저장할 수 있는 것이 리스트입니다. 이 방법으로 변수를 정리하면 30명의 학생이 본 수학 점수를 한 줄로 정리할 수 있습니다.

5.1 기본구조

  • [요소 1, 요소 2 .....]가 리스트의 기본구조입니다.
>>> my_list1 = []
>>> my_list2 = [1,2,3]
>>> my_list3 = ['a','b']

5.2 값 추가

  • 빈 리스트에 값을 추가할 때에는 append()를 사용합니다.
my_list[]
my_list.append(123)
print(my_list)
[123]

5.3 리스트 값 대체

  • 리스트는 튜플과 다르게 값을 변경할 수 있습니다. 그래서 요소를 가져올 수도 있고 요소를 반대로 만들 수도 있다는 것을 알 수 있습니다. 이는 프로그램의 3대 내용인 순차, 반복, 선택 중 선택에서 자주 사용됩니다.

5.4 리스트 값 지우기

  • del()를 이용하면 append()와 반대로 값을 지울 수 있습니다. 그리고 지워진 값의 위치로 뒤의 있던 값의 위치가 변경합니다. 그래서 del문을 사용할 경우에는 많은 코드를 변경해야 하는 경우가 많습니다.
>>> my_list = [123, 'abc', True]
>>> del my_list[0]
>>> del my_list[1]

5.5 슬라이싱

  • [ : x]는 처음부터 x까지를, [x: ]는 x부터 끝까지를 이야기합니다. 이는 프로그램의 전체적인 틀을 잡을 때 유용하게 활용됩니다.
my_list = [a, b, c]
print(my_list[:1])
[a]
print(my_list[1:3])
[b, c]
print(my_list[2:])
[c]

5.6 메서드

sort
  • sort는 리스트와 같은 여러개의 값을 정렬해 줍니다.
my_list2 = [3, 2, 4, 1]
my_list.sort()
print(my_list)
[1, 2, 3, 4]
count
  • count는 그 리스트의 요소의 개수를 각각 구하는 것입니다. 이는 적은 양을 구할 때는 불편하겠지만 구글같이 큰 프로젝트를 할 때에는 훨씬 더 빠르게 작업을 진행할 수 있습니다.
my_list = [a, c, a, b]
print(my_list.count(a))
2
print(my_list.count(b))
1
print(my_list.count(c))
1

물리형 자료문()

in
  • in은 리스트에 값이 있는지 없는지에 대한 여부를 True와 False로 알려줍니다.
my_list = [a, b, c, d]
print(a in my_list)
True
print(f not in my_list)
True
print(e in my_list)
False
remove
  • 집단지성 추가사항입니다. 영상에는 순서에 나오지 않으나 사용할수 있는 매서드입니다.
  • remove는 리스트값을 삭제해 줍니다.
my_list = [123, 'abc', True]
my_list.remove(123)
my_list.remove('abc')
print(my_list)
>>>[True]

6 튜플

  • 리스트와 거의 동일합니다.
  • 튜플은 값을 변경할 수 없습니다. (이를 전문용어로 이뮤터블이라고 합니다.)
  • 튜플에서는 리스트에서와 달리 대괄호가 아닌 소괄호를 사용하며 그저 쉼표만 써도 만들 수 있습니다.
  • 튜플의 장점
    • 변해서는 안되는 값을 저장할 때 활용
    • 리스트보다 빠름

6.1 기본구조

  • (요소1,요소2..)
>>> my_tuple1 = ()
>>> my_tuple2 = (1,) #콤마를 넣어주지 않으면 컴퓨터가 숫자 1로 인식합니다.
>>> my_tuple3 = ('a','b', 'c')
>>> my_tuple4 = 3.14, 'Python', True

6.2 패킹, 언패킹

  • 패킹 : 여러개의 값을 묶는 것 (예 : 리스트, 튜플)
  • 언패킹 : 값을 푸는 것(아래 예시 참고)
my_tuple = 3.14, Python, False #패킹
i, s, b = (123, abc, True) #언패킹
print(i)
123
print(s)
'abc'
print(b)
True

7 for

7.1 반복문

  • 반복되는 지루한 작업을 처리할 수 있는 구문입니다. 이는 적은 양을 계산할 때에는 오히려 손해를 볼 수 있으나 많은 명령어를 반복할 떄 사용하면 시간을 많이 절약할 수 있습니다
    • 조건을 기준으로 반복(while)
    • 횟수로 반복(for)
  • 반복문의 장점
    • 한눈으로 보기 쉽기 때문에 코드를 읽기 쉬워집니다.
    • For, in 즉, 키워드는 변수로 설정할 수 없습니다.
    • 순서열 다음으로는 꼭 콜론(:)을 써야한다는 것을 명심합니다.
    • In 뒤에는 문자열이나 리스트 등 여러가지 자료형들이 들어올 수 있습니다.
예제
>>>my_list = [1, 2, 3]
>>>for count in my_list:
        print('횟수 :', count)
횟수 : 1
횟수 : 2
횟수 : 3
>>> my_str = 'coding'
>>> for letter in my_str:
        print('횟수', letter)
횟수 c
횟수 o
횟수 d
횟수 i
횟수 n
횟수 g

7.2 기본구조

예제
for 변수 in 순서열:
    실행할 명령1
    실행할 명령2
    ...

7.3 들여쓰기

들여쓰기
  • 파이썬에서 for문이나 while문 등 콜론(:)으로 끝나는 문장 뒤에 나오는 코드를 코드블럭이라고 합니다.
  • 코드블럭에선 들여쓰기를 하는데, Tab, 공백 4칸 등등 들여쓰기를 하는 방법은 여러가지 입니다.
  • 처음 들여쓰기를 한 양식은 그대로 따라가셔야 합니다. 만약 처음에 Tab을 썼다면 계속 Tab을 써야합니다. 그렇지 않으면 오류가 날 수 있습니다.

※ 주의: 지금부터의 일부 예제는 Editor 모드를 이용한 것입니다.

Editor 모드란?
  • Editor 모드는 IDLE 창 왼쪽 위의 File 칸을 누르고, New File을 선택하면 나옵니다.
  • 그곳에 작성한 코드는 저장을 할 수 있으며, 한번에 실행이 됩니다.

7.4 range()

  • for문과 함께 많이 쓰이는 함수이며, 순서열들의 순서를 만들어주는 함수입니다.
  • 이런 것들을 내장함수 라고 하는데 내장함수들은 파이썬에 기본적으로 제공하는 함수입니다.
예제
range(stop)

for count in range(3):
    print('횟수:', count)

7.5 for x 2

  • for문을 중첩하여 사용할 수도 있습니다. (즉, 반복이 두 번 되는 것이죠)
예제
for j in range(2):
    for i in range(2):
        print('i:{}, j:{}'.format(i, j))
실행결과
i:0, j:0
i:1, j:0
i:0, j:1
i:1, j:1
>>>

7.6 컴프리헨션

  • [주의] 심화과정이니 자세히 이해가 되지 않으셔도 됩니다. 따라서 이런 것이 있다는 것만 알고 가시면 됩니다.
  • 긴 코드를 한줄로 표현하는 과정입니다.
numbers = [1,2,3,4,5,6,7,8,9,10]
odd_numbers = []

for number in numbers:
    if number % 2 == 1: #홀수인가?
        odd_numbers.append(numbers)
  • 컴프리헨션 (위 코드와 동일한 결과)
numbers = [1,2,3,4,5,6,7,8,9,10]
odd_numbers = [number for number in numbers if number % 2==1]

8 연산자

8.1 논리형 자료형

  • 참, 또는 거짓 두 가지 값만 가지고 있으며, 영어로는 불린 연산자라고 합니다.
  • True, False 이며, 대문자로 시작을 해야 합니다.
예제
>>> my_bool1 = True
>>> my_bool1 = False
>>> my_bool3 = 1 < 2
>>> print(my_bool3)
True

8.2 비교

  • 두 수, 혹은 자료형을 비교할 때 사용합니다.
  • ==, !=, >, < 등 수학적 기호를 이용한 다양한 비교 연산자가 있습니다.
>>> my_cmp1 = 1<2 #True
>>> my_cmp2 = 1==2 #False
>>> my-cmp3 = 2<=1 #False
>>> my_cmp4 = 1 <= 2 < 3 #True

8.3 논리

  • And와 or 두 가지를 이용한 연산자입니다.
  • And가 True가 되기 위해서는 and를 기준으로 양쪽에 입는 값이 모두 참 이여야만 합니다.
  • 반면, or은 False or False 일때만 False가 됩니다.
>>> my_con1 = True and True
>>> print(my_con1)
True
>>> my_con2 = True and False
>>> print(my_con2)
False
>>> my_con3 = True or False
>>> print(my_con3)
True
>>> my_con4 = not True
>>> print(my_con4)
False

9 조건문

9.1 if

  • 조건이 참인지 거짓인지 판단해 그 조건에 따라 조건의 흐름을 바꿀 수 있는 구문입니다.
#기본적인 형식은 이러합니다.
#if 조건문:
#    실행할 명령문1
#    실행할 명령문2

name = 'Lefty'
if name == 'Lefty':
     print("당신이  Lefty군요")
     print("만나서 반가워요")

9.2 else, elif

  • else와 elif 모두 if 조건이 참이면 그냥 넘어갑니다.
    • else
      • if가 거짓일때 else 명령을 실행합니다.
    • elif
      • else if 의 줄임말입니다.
      • if가 거짓일때, elif가 검색을 하고, elif가 참이면 elif 문을 실행하고, elif가 거짓이면 elif 문을 실행하지 않고 다음 명령문으로 넘어갑니다.
name = 'Alice'
if name == 'Alice':
            print("당신이 Alice 군요")
elif name == 'Bob':
           print("당신이 Bob 이군요")
else:
          print("당신은 누구십니까?")
  • elif와 else를 같이 사용할 때에는 elif가 먼저 와야 합니다.

10 while(조건으로 반복하기)

  • 파이썬에서는 조건으로 반복하는 방법도 있는데 그 중 하나가 while문 입니다.

10.1 기본구조

  • while문의 기본구조 입니다.
while 조건:
    실행할 명령 1
    실행할 명령 2
  • while에 있는 조건들은 참이 되면 명령을 실행하고 거짓이 되면 넘어가게 됩니다.
예제
count = 0
while count < 3:    #"count가 3보다 작냐"가 False가 될때까지 아래를 반복
    print(횟수:, count)
    count = count + 1 #count 변수 + 1
  • 조건에서 count는 3보다 작기 때문에 다음 명령들을 실행하고 결과는 3이 됩니다.

10.2 continue, break

  • 반복문과 함께 사용할 수 있는 키워드들 입니다.
    • continue
  • continue는 조건문으로 다시 돌아갈 수 있게 해주는 키워드 입니다.
예제
count = 0
while count < 5:
    count = count + 1
    If count % 2 == 1:
        continue    #다시 조건문으로 돌아갑니다.
    print(count)
    • break
  • break는 조건문을 강제로 멈추게 해주는 키워드입니다.
예제
while True:
    Name = input(당신의 이름은?’) #input()에서 괄호에 문장을 넣으면 그 문장이 나오고 나서 내용을 입력할 수 있다(이때 문장은 저장되지 않는다.)
    If name = 종료:
        print(종료합니다.)
        break   #이 다음 조건을 실행하지 않고 종료합니다.
    print({}, 안녕!’ .format(name))

11 딕셔너리(재료 모으기)

  • ”딕셔너리”라는 재료 모으기 방법이 있습니다.
  • 딕셔너리는 키와 값을 쌍으로 저장하는 자료형입니다. 딕셔너리는 인덱스 대신 키를 사용합니다.

11.1 기본구조

  • 딕셔너리의 기본구조입니다.
{키1:값1, 키2:값2...}
예제
my_dict1 = {1: a, 2: b}
my_dict2 = {a : 1, b : 2}
my_dict3 = {1: a, b : 2}
  • 딕셔너리에서 키로 사용할 수 있는 것들은 이뮤터블(immutable, 변경할 수 없는)이고 값으로 사용할 수 있는 것은 모두 사용할 수 있습니다.

11.2 값 추가하기

  • 딕셔너리에서는 키를 이용하여 값을 추가할 수 있습니다.
my_dict = {}
my_dict[1] = a  #1(키)를 이용하여 ‘a’라는 값을 추가합니다.
my_dict[b] = 2 #2(키)를 이용하여 ‘b’라는 값을 추가합니다.
my_dict[c] = d

11.3 값 제거하기

  • 키를 이용하여 값을 가져오거나 제거할 수 있습니다.
my_dict = {1: a, b:2, c:d}
(my_dict[1])  #a의 키인 1을 이용하여 a를 가져옵니다.
(my_dict[b])
(my_dict[c])
  • 키와 값을 쌍으로 지울 때는 del을 사용합니다.
my_dict = {1: a, b:2, c:d}
del my_dict[1]
del my_dict[b]
del my_dict[c]

11.4 메서드

.values()
  • values 즉, 값만 뽑아오는 메서드 입니다.
my_dict = {k1: v1, k2: v2}
For val in my_dict.values():
    print(val)
.keys()
  • keys 즉, 키만 뽑아오는 메서드 입니다.
my_dict = {k1: v1, k2: v2}
For key in my_dict.keys():
    print(key)
.items()
  • key와 value 둘 다 뽑아오는 메서드 입니다.
my_dict = {k1: v1, k2: v2}
For key, val in my_dict.items():
    print(key, val)

12 함수

12.1 기본구조

  • 파이썬에서 함수는 반복되는 코드를 묶어서 부르는 것입니다. 예를 들어 2를 함수통에 넜을 때 6이 되는 것 처럼 일정한 규칙을 가지고 전 값을 변형시키는 코드를 말합니다. 따라서 print나 input 등도 함수입니다.
def 함수이름 (인자 1, 인자 2, ..):
    실행할 명령 1
    실행할 명령 2
    return 결과값1, 결과값2, ..

12.2 함수의 종류

  • 내장 함수 > 파이썬에 이미 내장되어져 있는 함수 예) print, input
  • 모듈 함수
  • 사용자 정의 함수 > 사용자 지정 함수는 사용자가 직접 제작하여 사용되는 함수입니다.

12.3 함수를 사용하는 이유

  • 코드를 고치기 편하다
  • 조립해서 사용할 수 있다
  • 이미 만들어진 것들을 사용할 수 있다.

13 모듈

  • 비슷한 함수들의 모음입니다.
  • 전문가들이 기존에 만들어 놓은 모듈을 이용함으로써 완성도 있는 프로그램을 쉽고 빠르게 만들 수 있습니다.
  • 필요할 때마다 검색을 통해 원하는 모듈을 찾아 이용할 수 있습니다.

13.1 기본구조

  • 'import' 키워드를 이용해 모듈을 가져올 수 있습니다.
  • '.' 을 통해 모듈 내의 함수를 이용합니다.
import 모듈명
모듈명.함수명()

13.2 random

  • 많은 모듈들 중 대표적으로 random 모듈과 그 함수들을 소개합니다.
  • random은 난수를 만들거나 무작위로 값을 선택하는 등과 관련된 함수를 포함하고 있는 모듈입니다.
  • random모듈은 choice, sample, randint 등의 함수를 포함하고 있습니다.
random.choice()
리스트 내의 값 중 하나를 무작위로 선택해 반환하는 함수
import random
fruits = ['apple', 'banana', 'lemon']
my_fruit = random.choice(fruits) # fruits 리스트 내의 값 중 하나를 랜덤하게 리턴합니다.
print(my_fruit)

- 위 예제를 실행하면 apple, banana, lemon 중 하나가 무작위로 출력됩니다.

random.sample()
지정한 수만큼의 값을 리스트 내에서 무작위로 선택해 반환하는 함수
import random
fruits = ['apple', 'banana', 'lemon']
my_fruit = random.sample(fruits, 2) # fruits 리스트 내의 값 중 2개를 랜덤하게 리턴합니다.
print(my_fruit)

- 위 예제를 실행하면 apple, banana, lemon 중 두 개가 무작위로 출력됩니다.

random.randint()
정해진 범위 내의 정수 중 하나를 무작위로 선택해 반환하는 함수
import random
my_int = random.randint(0, 10) # 해당 범위의 정수 중 하나를 랜덤하게 리턴합니다.
print(my_int)

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


[참고] 검색을 통해 다른 모듈과 해당 모듈 내의 함수를 이용할 수 있습니다. 유용하게 이용하여 즐겁게 코딩하시기 바랍니다.

13.3 input

  • 프로그램 실행 중 사용자의 입력을 받는 함수이며, 파이썬 내장함수 입니다.
  • 입력 값은 항상 문자열로 받습니다. (숫자, 리스트 등을 구분하지 않습니다)
  • input은 입력을 받아오는 것과 출력을 하는 두 가지 기능이 있습니다.
예제
 
name = input('이름을 입력하세요:')
print('안녕, {}!'.format(name))
결과
이름을 입력하세요:(이름 입력) #입력 값을 받음
안녕, {(이름)}! #입력 받은 값을 출력함

13.4 type

  • 자료형을 확인하는 함수입니다.
  • 이 타입 함수로 input의 입력값이 진짜인지 확인을 해보도록 하겠습니다.
예제
 
name = input('이름을 입력하세요:')
print('안녕, {}!'.format(name))
print(type(name)) #이 부분이 type 함수입니다.
결과
print(type(name))
<class 'str'>  
#str(문자열) 이다.

13.5 str(), int()

  • 자료형의 타입을 바꾸고 싶은 상황이 종종 있습니다. 그럴 때 쓸 수 있는 함수들입니다.
예제
age = int(input('나이를 입력하세요:')) 
print('{}살 이시군요!' .format(age - 3))
결과
나이를 입력하세요:(이름 입력) #이때, int 함수로 인해 문자로 된 숫자 자료형을 정수 자료형으로 바꿈
37 이시군요!  #숫자가 정수형 자료형이기 때문에 연산 가능

13.6 print end=' '

  • 줄바꿈을 없애주고 싶은 경우가 종종 있습니다. 그 문제점을 해결해줄 수 있는 함수입니다.
  • \ = 백슬래쉬입니다. 한글 키보드를 사용하시는 분들이 백슬래쉬를 쓰시고 싶으신 경우 \를 눌러주시면 됩니다.
예제
print('coding', end='')
print('coding', end='-')
#이 밑에 두 개는 다음에 배우게 됩니다. 
print('coding', end='\n')   
print('coding', end='\t')

13.7 이스케이프 코드

  • 특정한 기능을 수행하는 문자의 조합이며, 문자열에 포함하여 사용할 수 있습니다.
  • 대표적으로 두 가지만 말씀드리자면 \n = 줄바꿈 \t = 탭 이라고 생각하시면 됩니다.
  • 다시 한번 말씀드리지만 \ = 백슬래쉬 입니다. 한글 키보드를 사용하시는 분들이 백슬래쉬를 쓰시고 싶으신 경우 \를 눌러주시면 됩니다.
예제
print('줄바꿈\n줄바꿈')
print('탭\t탭')
결과
줄바꿈
줄바꿈
#중간에 줄바꿈을 합니다.

         
#중간에 탭을 합니다.

13.8 독스트링

  • 함수가 어떤 일을 수행하는지에 대한 주석입니다. 보통 """를 사용합니다.
  • 주석이므로 코드에는 아무런 영향을 주지 않습니다.
예제
def sum_mul(num1, num2):
    """입력 값을 더하고 곱합니다.""" #이것이 독스트링 입니다.
    return num1 + num2, num1 * num2

13.9 C 스타일 포맷 연산자

  • %를 사용하여 연산을 할 수 있습니다. %s = 문자열, %d = 정수형, %f는 실수형을 받습니다.
예제
print('Life is %s' % 'Short!')
print(%d x %d = %d' % (2,3, 2*3))
  • 두 번째 줄처럼 %를 많이 사용할 수 있습니다. 괄호 안에 있는 수들을 %d에 넣습니다. 2는 첫번째 %d에, 3은 두번째 %d에, 6(2*3)은 세번째 %d에 들어갑니다.


  • 지금까지 수고하셨습나다. 이 강의에서 배운 내용을 응용하여 여러분만의 작품을 제작해 보시고 즐겁게 코딩하세요!

14 기타 사이트

15 문서 정보

유기농냠냠파이썬

  • 지은이 : 김왼손과 집단지성들 시즌 2
  • 펴낸곳 : 왼손코딩 유튜브 (https://goo.gl/xHi84G)
  • 제작기간 : 2017년 11월 25일~
  • 훌륭한 강의를 해주신 김왼손님과 열심히 배운 집단지성님들, 열심히 해주셔서 감사합니다. -제작자 일동-

16 같이 보기