시리즈:쉽게 배우는 프로그래밍 입문/파이썬

문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.
리브레 프로그래밍 시리즈
초급
프로그래밍
중급
프로그래밍
고급
프로그래밍
Python
협업

파이썬에 대한 소개[편집 | 원본 편집]

일단 Python은 타 프로그래밍과 다르게 문법상 예외라는 게 없다. 베이직보다도 깐깐하다 그 때문에, 파이썬에서 만약 에러가 나온다면 그 부분은 대부분 예외적인 사항을 임의적으로 썼다는 이야기다. 흔히 예외가 적용되는 건 중간에 탭을 쓰느냐 스페이스 네번을 누르냐 정도고[1] 섞어쓰면 안 된다, 나머지는 몽땅 예외가 없다고 생각을 하면 되게 만들어져 있는 만큼, 알 수 없는 에러가 뜬다고 좌절하지 말자. 그냥 오타난거라고 생각하면 된다.

그러니까 제대로된 Python 교본만 준비되어 있으면 타 프로그래밍보다 훨씬 빠른 속도로 익힐수가 있다. 분명 어딘가 안되면 오타가 난거고, 구사한 표현법이 오타가 난 것이다. 그 때문에 일주일정도만 노력하면 매크로를 만들수 있다. 진짜다!!

만약 아래의 강좌가 아닌 다른 강좌로 Python을 배울 계획이라면 해당 강좌에서 사용하는 Python의 버전을 확인해야 한다. Python 3.x버전을 깐 상태에서 2.x시절의 코드를 그대로 넣으면 깔끔하게 에러가 나기 때문이다. 2.x의 경우 3.x버전의 문법을 사용 가능한지의 여부는 어느 버전이냐에 따라서 다른데 2.7의 경우는 2와 3의 연결다리를 목적으로 하는 버전으로 3문법과 2문법이 같이 사용 가능하지만, 그 이전 버전의 경우 3과의 문법 차이를 처리하지 못해 에러가 발생한다. 이왕이면 새로 배울거 Python 3.x버전으로 배우는 것이 좋다.

다운로드[편집 | 원본 편집]

일반 파이썬 설치[편집 | 원본 편집]

  • 윈도우의 경우
    다운로드(32비트)
    다운로드(64비트)
    (32비트/64비트 중 어느 것인지 모르거나 이해하지 못한 경우 32비트 버전을 받으시면 됩니다.)
  • 대부분의 리눅스의 경우
    • 패키지 관리자로 python 혹은 python3를 설치합니다.
    • 패키지 관리자가 없는 경우
      지못미 다운로드해서 직접 소스를 컴파일 하면 된다.
  • OS X의 경우
    3.4다운로드
    2.7은 기본으로 설치되어 있습니다.

위의 링크는 Python 3.4버전을 다운로드 받습니다.

pypy 설치하기[편집 | 원본 편집]

  • 리눅스의 경우
    • 패키지 관리자로 pypy를 설치합니다.
    • 패키지 관리자 없이 설치
      pypy.org에서 다운로드 버튼을 눌러 tar.bz2를 다운받아 압축을 해제하고 pypy를 찾아 실행한다.
      소스를 다운받아 컴파일 하는 방법도 있다.

실행[편집 | 원본 편집]

  • 윈도우 환경(또는 GUI 환경)인 경우

IDLE (Python 3.4 GUI)을 실행시킵니다.

  • 리눅스 shell 창 또는 윈도우 cmd 창에서 실행할 경우

python 또는 python3를 입력한 후 엔터(환경변수 또는 설정에 따라 다릅니다. 특히 리눅스 -Ubuntu 등- 의 경우 2.x 버전과 3.x 버전이 같이 깔려 있는데 이 때 python은 2.x, python3는 3.x 버전을 실행시키는 경우가 대부분입니다)

그후에 아래에 나와 있는 코드를 한줄 한줄 입력하면 코드가 실행됩니다!

Hello, World![편집 | 원본 편집]

Hello World는 프로그래밍에서 처음으로 배우는 기본적인 프로그래밍입니다. 그러나, 파이썬의 헬로월드 프로그램은 시리즈:쉽게 배우는 프로그래밍 입문 시리즈 중 가장 짧고 이해하기 쉽습니다. 도발

print("Hello, World!")

예제[편집 | 원본 편집]

1. Hello, World! 대신 다른 글을 써보세요. (예: 리디버그 리디버그)

2. 쌍따옴표나 괄호 중 하나를 빼 보고, 무슨 에러가 나는지 확인하세요.

3.print대신 다른 글자를 써 보고, 무슨 에러가 나는지 확인하세요.

실제 실행[편집 | 원본 편집]

Py hello world.gif


단 한줄이면 됩니다. 참 쉽죠?

주석[편집 | 원본 편집]

주석은 코드에 대해 부연설명이 필요할 때 쓰입니다. 생각보다 아주 중요한 녀석입니다. 당신이 컴퓨터나 데니스 리치가 아닌 이상 프로그램 소스를 읽자마자 "이 프로그램은 검색 결과를 그래프로 작성해주네!" 라고 생각하는 경우는 없기 때문에, "이 부분에서는 검색 결과를 불러옴." 같은 부연설명을 써놓지 않으면 알아보기 힘듭니다. 혼자 작성하는 프로그램이라도, 주석을 달아 놓지 않으면 나중에 알아 보기 힘들기 때문에 최소한의 주석은 꼭 달아 놓으세요!

파이썬에서는 2 가지 종류의 주석이 있습니다. 먼저 "#"는 뒤에 문자들을 전부 다 주석으로 처리합니다. (명령어로 보지 않습니다.) 대신 엔터가 나오면 무력화 됩니다.

예시:

print ("asdf")#asdf를 프린트합니다.
print ("asdf")#한번 더 asdf를 프린트합니다.
#print ("asd") 뭔가 복구가 필요해요.
#print (asdf) 뭔가 안 어울려요.
print ("asdf"#이거슨 asdf입니다.)

)#다음 줄에서 괄호를 닫아요.

결과: 마지막 부분에 적힌 괄호가 주석처리 되어 닫히지 않았기 때문에 괄호를 닫을 때까지 인터프리트가 실행하지 않고 계속 입력을 기다립니다.

asdf
asdf
asdf

처럼 정상적으로 출력되는 것을 볼 수 있습니다.

그 다음 주석인 '''는[2] 저 따옴표 안에 있는 것 모두를 주석처리 합니다. 큰 따옴표 세개도 괜찮습니다. 대신, 큰 따옴표로 시작했으면 큰 따옴표로 끝나야겠죠. 따옴표 사이에 엔터가 있어도 상관없습니다.

예시:

'''print ("asd") 뭔가 복구가 필요해요.
print (asdf) 뭔가 안 어울려요. '''

결과:

'print ("asd") 뭔가 복구가 필요해요.\nprint (asdf) 뭔가 안 어울려요. '

인터프리트 모드에서 실행하면 뭔가 이상합니다. 그건 스트링을 알아야 합니다. 지금은 조금 레벨이 높은 몬스터니 넘어갑시다.

실제 실행[편집 | 원본 편집]

Py gif lecture 2.gif

우리들 중에 스파이가 있는 것 같아. printf를 보았다면 당신은 스파이

변수[편집 | 원본 편집]

일상에서 일이나 공부를 할 때 어떤 정보를 기록하거나 머리에 암기하는 경우가 있습니다.

이와 마찬가지로 프로그램을 만들다 보면 항상 값(혹은 데이터)를 어딘가에 저장해놔야 할 상황이 옵니다. 프로그래밍을 할 때, 이러한 값을 저장할 수 있는 공간을 변수(variable)이라고 합니다.

변수의 선언[편집 | 원본 편집]

variable = 29
변수 = 84

앞에 이것저것 붙일 필요 없이 그냥 (변수명) = (값)을 입력해주면 됩니다. 게다가 Python 3부터 유니코드를 지원하기 때문에 변수명을 한글로 할 수 있으니, 후환(?)[3]을 막기 위해 읽기 쉬운 이름으로 해 주세요!

Py gif lecture 3.gif

자료형[편집 | 원본 편집]

자료형이란 프로그램에서 사용하는 자료를 효율적으로 그리고 쉽게 사용하고 저장하기 위해서 만들어 졌습니다. 파이썬에서는 다양한 데이터를 효율적으로 저장하기 위하여 다음과 같은 자료형을 지원합니다.

수(number)형[편집 | 원본 편집]

말 그대로 수를 나타내는 변수형입니다. 3, 3.14같은 수를 저장하기 위한 자료형입니다. 어찌되었건 컴퓨터도 계산기고 덧셈 뺄셈 등등이 가능합니다.
print (1 + 1)
print (1.2 + 3.4, 3 + 2.4)# 콤마로 구분하면 사이에 공백이 하나 생깁니다.
print (321 - 123, 3.14 - 2.71)
print (123 * 234, 1.2 * 3.2)
print (48/5, 48.0/5.0)
print (3**123, 3.0**123)# ** 연산은 제곱을 뜻합니다.
print (48//5, 48.0//5.0)# //는 몫연산
print (9 % 4, 10 % 3.4)# %는 나머지
print (3**0.5)#루트3

결과:

2귀요미가 나오길 기대했다면 죄송합니다. 귀요미는 레벨이 좀 차면 하죠!
4.6 5.4
198 0.43000000000000016으아아
28782 3.84
9.6 9.6
48519278097689642681155855396759336072749841943521979872827 4.851927809768964e+58
9 9.0
1 3.2
1.7320508075688772

나눗셈을 제외한 모든 연산(덧셈, 뺄셈, 곱셈, 몫, 나머지)의 경우, 앞뒤의 수가 모두 정수라면 결과도 정수로 나옵니다. 둘 중 하나라도 소수점이면 결과는 소수점입니다. 단, 예외적으로 나눗셈에서는 앞뒤 모두 정수라 해도 결과는 소수점입니다. 또한 가끔 소수점이 불필요하게 많이 나오는 경우가 있는데, 이건 컴퓨터가 2진법을 사용하는데 10진법에선 유한소수여도 2진법에선 무한소수일 수 있어 정확한 값을 저장하지 못하기 때문입니다. 1/5는 10진법으로 0.2로 깔금하게 쓸 수 있는 반면, 1/3은 0.3333으로만 나타내면 오차가 생기는 것과 같은 원리입니다.


Py gif lecture 4.gif


보너스

1/0

결과:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

사실 위의 결과를 한글로 해석하면, "첫 줄에서 0으로 나누라고 시켰는데, 나는 0으로 나눌 수가 없다" 입니다. 생각보다는 쉽죠?

문자열(String)형[편집 | 원본 편집]

문자열이란 문자(A,B,C,가,나,다등등등)이 일렬로 있는 자료를 저장하기 위한 자료형입니다. 간단하게 말하자면,'글'을 저장하는 자료형입니다.
문자열은 다음과 같이 변수에 넣을 수 있습니다.
문자열_변수  = "abcde"
또한 문자열 끼리는 서로 비교가 가능하고 덧셈도 가능합니다. 숫자를 곱할 수도 있습니다.
print ( "pypy" < "python" )
print ( "python" + " 참 쉽죠?" )
print ( "py" * 2)

결과 :

True
python 참 쉽죠?
pypy

Py gif lecture 5.gif


True는 참을 뜻하는 진위형으로 조금 있으면 나옵니다.

리스트(List)형[편집 | 원본 편집]

일상생활을 보다보면 많은 정보를 어딘가에 적어놔야 할 때나, 순서를 붙여서 무엇인가를 기록해야 할 때가 있습니다. 프로그램을 만들 때도 이와 같이 많은 정보를 저장하거나, 순서를 붙여서 정보를 저장해야 할 때가 자주 있습니다.

파이썬에서는 이와 같은 때를 위해서 리스트(List)라는 자료형이 있습니다. 리스트는 변수들의 리스트라고 생각하면 됩니다. 변수를 불러오거나 쓸때에는 번호로 접근합니다.

a = ['리브레', '위키', '프로그래밍', '입문', 4]
b = []
c = list()

list() 명령어는 빈 리스트를 만들 때 사용합니다. [] 이렇게 해도 됩니다.

특정 위치에 들어 있는 값을 불러오려면 index라는 앞에서부터 세는 순서로 지정해주면 됩니다. 예를 들어 위의 예에서 2번째 값인 '위키'를 불러오려면 아래와 같이 적으면 됩니다.

a[1]

두 번째 값을 불러오는데 왜 인덱스가 1인가 하면 프로그래밍 언어에서는 일반적으로 모든 숫자가 1이 아닌 0에서 시작하기 때문입니다.[4]

뒤에서부터 세서 가져오는 방법도 있습니다. 뒤에서 2번째인 '입문' 을 가져오려면 a[3] -앞에서 4번째-로 가져올 수도 있지만 a[-2]로 하여 뒤에서 두번째를 가져오라는 명령을 통해서도 가져올 수도 있습니다.

왜 뒤에서부터 할 땐 0부터 시작하지 않느냐 물어볼 수도 있는데 이는 0은 음수가 아니라는 기본적인 수학지식으로 대답할 수 있을 듯 합니다.

만약 여러 개의 값을 불러오고 싶다면

a[1:4]

이렇게 적으시면 됩니다.

>>> a[1:4]
['위키', '프로그래밍', '입문']
리스트와 리스트끼리 더하기[편집 | 원본 편집]

리스트와 리스트끼리는 서로 합칠 수가 있습니다.

a = ['리브레', '위키', '프로그래밍', '입문', 4]
b = [5,6,7]
c = a + b
print(c)

a.__add__(b) # 이 형태도 가능합니다.
리스트에서 n번째 것을 뺴기[편집 | 원본 편집]

리스트에서 n번째 것을 빼려면 다음과 같이 합니다

a = ['리브레', '위키', '프로그래밍', '입문', 4]
print(a)
del a[2]
print(a)

여러 개를 빼려면 다음과 같습니다

a = ['리브레', '위키', '프로그래밍', '입문', 4]
print(a)
del a[2:4]
print(a)

다음과 같이 하면 2부터 3까지 제거를 합니다.

여기서 a[2:4]가 궁금한 분들께 설명하자면, "a에서 2 부터 시작해서 4 앞까지"라는 뜻입니다.

리스트의 마지막에 추가하기[편집 | 원본 편집]

마지막에 추가하는 방법은 다음과 같습니다.

a = ['리브레', '위키', '프로그래밍', '입문', 4]
a.append("파이썬")
print(a)
리스트의 사이에 추가하기[편집 | 원본 편집]
a = ['리브레',  '프로그래밍', '입문', 4]
a.insert(1,"위키")
print(a)
메서드[편집 | 원본 편집]

아래같은 메서드를 사용할 수 있습니다.

  1. list.append(): 리스트 끝에 추가하기
  2. list.copy(): 리스트를 복사하여 반환합니다.
  3. list.extend()
  4. list.insert(): insert(위치, 변수), (위치)로 가서 (변수)를 넣습니다.
  5. list.remove(): remove(삭제할 값), 리스트에서 가장 앞에 위치한 (삭제할 값)을 지웁니다.
  6. list.sort(): 리스트를 정렬합니다.
  7. list.clear(): 리스트를 지웁니다.
  8. list.count()
  9. list.index()
  10. list.pop(): 리스트 마지막 요소를 꺼내어 반환합니다.
  11. list.reverse(): 리스트를 뒤집습니다.

튜플(tuple)형[편집 | 원본 편집]

리스트형과 거의 비슷합니다. 인덱스 -순서- 가 있고, 온갖 자료형을 다 넣을 수 있습니다.

단, 입력된 값은 추후 변경이 불가능합니다. 즉, 리스트의 경우

a = [2,4,7]
a[1] = 5

라고 입력하면

a = [2,5,7]

로 변경되나 튜플은

a = (2,4,7)
a[1] = 5

라고 하면 TypeError만 뿜어내고 값은 그대로 (2, 4, 7)로 유지됩니다.

튜플은 다른 함수의 argument로도 사용할 수 있습니다.

def add(a, b):
    return a+b;

num = (1, 2)
add(*num)

사전(Dictionary)형[편집 | 원본 편집]

사전형은 리브레 위키를 생각하시면 됩니다. 리브레 위키에서 검색어로 '리브레 위키'라고 검색을 하면, 바로 리브레 위키항목에 있는 리브레 위키의 설명으로 갑니다.

dic = {"key1":"value1", "key2":1, "key3":[1,"1", 1.0], "key4":1.0, "key5":{"a":1, "b":"C"}}
dict_empty = dict()

이와같이 사전(Dictionary)형은 특정한 값을 이용하여 자료를 저장합니다. 이때, 검색하는 자료를 키(key)라고 하고, 자료는 값(value)라고 합니다. 값을 가져오고 싶을 때에는 리스트처럼 대괄호 안에 키를 적으면 됩니다. 대신에 키에는 숫자 뿐 아니라 다양한 값을 적을 수 있습니다.

이때 키(key)는 스트링이나 튜플처럼 변경 불가한(immutable) 자료를 상대로만 설정이 가능하고, 값(Value)은 튜플이든, 리스트든 뭐든 가능합니다.

사전은 자기 마음대로 항목을 늘리고, 추가하고, 불러내고, 이름 붙이기 까지 할 수 있어서 차후 매우 유용합니다.

사전형의 키나 값을 얻을려면 .values나 .key 메소드(method)를 사용하시면 됩니다

print (dict_empty)
print (dic["key1"])
print (dic["key3"])
print (dic["key3"][1])
print (dic["key5"]["a"])

결과:

{}
value1
[1, '1', 1.0]
1
1

진위/부울(Boolean)형[편집 | 원본 편집]

Boolean형은 가장 기초적인 타입으로 "참", "거짓"의 두 가지 값만을 가집니다. 주의할 점은 다름 많은 언어와는 다르게 대문자로 시작합니다.

True
False

a = True
b = 1 > 0 #True

파이썬에서는 진위판단을 할 때 많은 방법으로 할 수 있습니다.

#다음은 모두 참입니다.
True
1
3.14
{"a":1}
["a"]
"a"
("a",1)

#다음은 모두 거짓입니다.
False
0
0.0
{}
[]
""
()
None

None 형[편집 | 원본 편집]

None은 참과 거짓의 값조차 존재하지 않다는 뜻입니다. 값이 없어서 메서드도 따로 없고 부울형의 False와 비슷한 취급을 합니다. if 문에서 변수와 None을 등호로 비교하면 False 취급됩니다.

출력하기/입력받기[편집 | 원본 편집]

출력을 할 때는 print()를 사용합니다

print("파이썬 만세!")

인터프리터 창에서는 "파이썬!" 이렇게 문자열만 적어도 됩니다.

입력받을 때는 input()을 사용합니다. 다만, 입력받는 것은 문자열[5]을 입력받으니까 다른 것으로 형변환(이것도!)을 해야 합니다.

  • 수를 입력받을 때
a = int(input())

조건문[편집 | 원본 편집]

조건문이랑 어떤 조건에 따라서 수행하고자 하는 행동을 하는 문장(코드)를 말합니다. 조건문의 경우, 수행하고 싶은 문장을 if문의 깊이 보다 한단계 더 넣어줘야 합니다.

기본 if문[편집 | 원본 편집]

조건문 기본.gif

if 조건 :
    조건문 안쪽 명령
    ....
  #조건문 안쪽 명령 끝
조건문 다음 명령
...

예시:
i = 3
if i > 0:
    print(i)
    i = i + 1
print(i)

결과:
3
4

if-else문[편집 | 원본 편집]

조건이 맞지 않을 때 실행해야 하나, 조건이 맞으면 실행하면 안 되는 문장이 있을 때 씁니다. 조건문 if - else.gif

if 조건 :
    if문 명령
    ....
#if문 명령 끝
else:
   else문 명령
#else문 명령 끝
조건문 다음 명령
...

if 문의 쉬운 예[편집 | 원본 편집]

"배고프면 먹고, 아니면 잔다" 를 파이썬 비슷하게 쓴다고 생각하면

if 배고프다:
    먹는다
else:
    침대에 간다
    잔다

이겠지요.(우리 이렇게 살면 안됩니다!)

elif[편집 | 원본 편집]

elif는 파이썬에 있는 독특한 조건문입니다. else if의 준말입니다.

print("성적을 입력해 주세요")
num = int(input())
if num > 95 :
    print("A+입니다")
elif num > 90:
    print("A입니다")
elif num > 80:
    print("B+입니다")
elif num > 70:
    print("B입니다")
elif num > 60:
    print("C+입니다")
else:
    print("그냥 재수강하세요")

프로그램 실행 과정:

  1. 성적이 95보다 높은지 확인합니다. 높다면, "A+입니다" 가 출력되고 if문이 끝납니다.
  2. 성적이 95보다 높지 않을 때, 성적이 90보다 높은지 확인합니다. 높다면, "A입니다" 가 출력되고 if문이 끝납니다.
  3. 성적이 90보다 높지 않을 때, 성적이 80보다 높은지 확인합니다. 높다면, "B+입니다" 가 출력되고 if문이 끝납니다.
  4. 성적이 80보다 높지 않을 때, 성적이 70보다 높은지 확인합니다. 높다면, "B입니다" 가 출력되고 if문이 끝납니다.
  5. 성적이 70보다 높지 않을 때, 성적이 60보다 높은지 확인합니다. 높다면, "C+입니다" 가 출력되고 if문이 끝납니다.
  6. 안끝나면, "그냥 재수강하세요"가 출력됩니다.

여기서 주의할 점은 if문이 끝나면 그 다음 것들은 확인하지 않는다는 것입니다. 만약 성적이 93이라면 1번과정의 95보다 높은지 확인하고, 2번과정의 90보다 큰지 확인한 뒤 93은 90보다 크므로 if문이 끝나기 때문에 나머지는 확인하지 않습니다.

반복문[편집 | 원본 편집]

반복문은 일정한 명령을 반복적으로 수행할 필요가 있을 때 사용합니다.

파이썬에는 while, for의 두 가지 종류의 반복문이 있습니다.

while 문[편집 | 원본 편집]

while 문은 if 문과 유사한데요, 차이점은 if 문은 한번 확인하고 한번 실행하는 반면, while 문은 조건문이 "거짓"이 될 때까지 확인하고 실행한다는 점입니다.

while 조건 :
    while  명령
반복문 다음 명령


예시:
i = 0
while i < 5:
    print (i)
    i += 1 # i = i + 1
print ("done!")

결과:
0
1
2
3
4
done!

while 문의 쉬운 예[편집 | 원본 편집]

못을 박는 동작을 "박힐 때까지 망치질한다"라고 생각하면

못을 든다
망치를 든다
while 못이 박히지 않았다:
    망치를 휘두른다

이겠지요.망치를 손에 휘둘렀을 경우의 예외 처리는 하지 않았습니다.

for 문[편집 | 원본 편집]

for 문은 리스트와 같은 데이터의 집합에 있는 데이터들을 한번씩 건드려볼 필요가 있을 때 사용합니다. 이건 파이썬의 특징 중 하나라 볼 수 있습니다. 이런 형태의 for문은 "foreach문" 혹은 "반복자 기반 for문(iteration based for loop)" 이라고 부릅니다.

for 데이터 변수 이름(새로운 이름) in 데이터 집합 변수 이름(기존 이름):
    foreach  명령
반복문 다음 명령

예시1:

for i in range(1, 7): #1~6까지 반복하는 for문은 다음과 같습니다.
    print (str(i) + " 더하기 " + str(i) + "은(는) 귀요미")

결과1보지 않아도 알것 같지만 그래도 보자:

1 더하기 1은(는) 귀요미
2 더하기 2은(는) 귀요미
3 더하기 3은(는) 귀요미
4 더하기 4은(는) 귀요미
5 더하기 5은(는) 귀요미
6 더하기 6은(는) 귀요미

그리고 문자열의 경우 문자열에 있는 글자 하나 하나를 불러올때 사용할 수도 있습니다.

예시2:

a = "리브레위키"
for character in a: 
    print (character)
print(a)

결과2:

리
브
레
위
키
리브레위키

함수[편집 | 원본 편집]

프로그래밍을 할 때, 특정한 일을 여러번 할 필요성을 느낄 때가 있습니다. 그 때 사용하는 게 함수입니다. 파이썬은 함수를 변수의 일종으로 봅니다. 그렇기 때문에 변수와 사용하는 방법은 같으나 모양이 다르기 때문에 여기서는 모양을 중심으로 해석하겠습니다.

def 이름(변수 목록):
    실행할 명령

예시:
def 귀요미만들기(숫자):
    return str(숫자) + " 더하기 " + str(숫자) + "은(는) 귀요미!" #return은 함수를 실행하였을 때 결과값을 던져줄 때 사용합니다. 함수 중간에도 사용 가능합니다. 또는 아무것도 안적고 "return"만 적으면 함수를 끝낼 수도 있습니다.

def 귀요미플레이어(숫자=6): #숫자=6은 "숫자"의 기본값이 6이라고 정의하는 겁니다.
    for i in range(숫자): #range(숫자)는 range(0, 숫자)와 같습니다.
        print (귀요미만들기(i + 1))#앞에서 만든 함수의 결과값을 print 함수가 받아서 출력합니다.
    #return은 선택입니다. 꼭 쓸 필요는 없습니다.

귀요미플레이어(1)#함수에 처음 적혀 있는 변수인 "숫자"가 1이 됩니다.
귀요미플레이어(숫자=2)#혹은 이렇게 변수 이름을 직접 지정해서 값을 정해 줄 수도 있습니다.
귀요미플레이어()#기본값을 설정한 경우 이렇게 변수를 주지 않아도 실행할 수 있습니다.
결과:
1 더하기 1() 귀요미!
1 더하기 1() 귀요미!
2 더하기 2() 귀요미!
1 더하기 1() 귀요미!
2 더하기 2() 귀요미!
3 더하기 3() 귀요미!
4 더하기 4() 귀요미!
5 더하기 5() 귀요미!
6 더하기 6() 귀요미!

내장함수[편집 | 원본 편집]

내장함수는 파이썬이 기본적으로 만들어놓은 함수들입니다. 알아두면 매우 유용합니다,

  • len

배열, 문자열 등 길이가 있는 것의 길이를 반환합니다.

:
한국어위키=["위키백과", "백괴사전", "리브레위키", "나무위키", "구스위키"]
위키주소={"위키백과" : "http://ko.wikipedia.org/",
              "리브레위키" : "https://librewiki.net/"}
print (len ("리브레위키"))
print (len (한국어위키))
print (len (위키주소))

결과:
5
5
2
  • max

어떠한 시퀀스 (리스트, 스트링이나 튜플) 내에서 가장 큰 값을 뽑아냅니다.

  • min

어떠한 시퀀스 내에서 가장 작은 값을 뽑습니다.

  • sorted

어떠한 시퀀스를 오름차순으로 정리하여 리턴합니다. (이때 스트링은 a=1, b=2, c=3...z=26을 기준으로 하기 때문에 a가 먼저 나옵니다).

실습과제[편집 | 원본 편집]

이 단원에 있는 문제를 파이썬으로 풀어 봅시다! 절대 베끼는 것은 금지!

문제 1[편집 | 원본 편집]

"Hello world!"를 10번 출력해보세요.

조건 : 코드의 길이가 5줄 이하여야 합니다.

for i in range(10):
    print ("Hello world!")

문제 2[편집 | 원본 편집]

자신이 아는 동물 이름 일곱 가지의 목록을 만들고, 알파벳 순으로 정렬해 보세요. (한글로 하게 되면 어려워지니 영어로 해보세요)

정답: 정렬 알고리즘을 알고 있다면 문제 맞추기가 수월하겠지만 모르더라도 어떻게 할지 생각해보면 답은 나오는 문제입니다. 알고리즘도 결국은 문제를 해결하는 여러 가지 방법 중에 하나이거든요. 그렇기 때문에 제대로 정렬만 된다면 모두 정답입니다. 여기서는 거품정렬 알고리즘을 사용하여 해결해 보겠습니다.

사전 = {'a':0, 'b':1, 'c':2, 'd':3, 'e':4, 'f':5, 'g':6, 'h':7, 'i':8, 'j':9, 'k':10, 'l':11, 'm':12, 'n':13, 'o':14, 'p':15, 'q':16, 'r':17, 's':18, 't':19, 'u':20, 'v':21, 'w':22, 'x':23, 'y':24, 'z':25} #알파벳별로 번호를 매겨 대소비교가 가능하도록 합니다.

동물 = ["pig", "alligator", "dog", "owl", "cat", "elephant", "cow"] 

def 알파벳비교 (, ):
    if 사전[[0]] > 사전[[0]]: #첫번째 글자의 알파벳 순서를 확인합니다.
        return True #위치를 바꿔야 할 때 True를 return합니다.
    elif 사전[[0]] is 사전[[0]]:
        return 알파벳비교 ([1:len ()], [1:len ()]) #첫번째 알파벳이 같기 때문에 그 다음 알파벳으로 비교합니다.
    else:
        return False #위치를 바꿀 필요가 없을 때 False를 return 합니다.

#거품정렬 알고리즘은 바로 옆에 있는 값과 비교한 뒤 위치가 올바르지 않은 경우 바꾸는 방식입니다.
#비효율적이나 이해하기 쉬워 교육용으로 활용됩니다.
for  in range (len (동물) - 1):
    for  in range (len (동물) - 1): #맨 마지막 값이 맨 첫번째에 있을 수가 있기 때문에 배열 길이 - 1 번만큼 실행합니다. 
        if 알파벳비교 (동물[], 동물[+1]):
            동물[],동물[+1] = 동물[+1],동물[]

print (동물)

혹은 파이썬을 잘 아시는 분이라면 그럼 이걸 왜 보는 거지 list의 내장된 정렬함수를 이용할 수도 있습니다.

>>> a = ["pig", "alligator", "dog", "owl", "cat", "elephant", "cow"]
>>> a
['pig', 'alligator', 'dog', 'owl', 'cat', 'elephant', 'cow']
>>> a.sort()
>>> a
['alligator', 'cat', 'cow', 'dog', 'elephant', 'owl', 'pig']

물론 이 방법을 사용하면 아무 걱정없이 비 알파벳문자도 정렬할 수 있습니다.[6]

>>> b = ["개", "고양이", "사자", "비버", "악어", "부엉이"]
>>> b.sort()
>>> b
['개', '고양이', '부엉이', '비버', '사자', '악어']
>>>

이와 같이 파이썬은 매우 쉽고 편리합니다! 파이썬 만만세!

예제[편집 | 원본 편집]

이 문단은 비어 있습니다. 내용을 추가해 주세요.

각주

  1. 다행히도 IDE에서는 탭 눌러도 스페이스 4개로 입력된다. 텍스트 편집기에서 소프트 탭을 설정하면 탭키를 눌러도 탭 입력 대신에 공백 4개가 입력된다.하드 탭을 설정해 놨다면 탭키를 누르면 탭문자가 들어가므로 스페이스를 쓰면 안된다.
  2. 작은 따옴표 세개, 위키텍스트에서 글자를 굵게 하는 문법과 동일합니다.
  3. 쳐야 하는 글자 수가 몇자 늘어난다는 이유로 이름(변수명)을 a 같은 걸로 지어놓고 작성하다 보면 천재의 노트나 여자의 마음보다 어려운 소스가 되니 주의하세요!
  4. LUA같은 일부 언어에서는 1부터 시작합니다.
  5. 뭔지 모르신다면 조금 아래에서 설명해드릴께요!
  6. Python3만 해당됩니다. Python2는 CJK(한자, 일본어 글자(히리가나, 가타카나 등), 한글)문자셋을 이용하기 위한 처리가 필요합니다.
이 문서의 전체 혹은 일부는 시리즈:쉽게 배우는 프로그래밍 입문 문서의 806464판에서 가져왔습니다.