32. 파이썬 함수 – 함수와 변수

32. 파이썬 함수 – 함수와 변수

파이썬 함수에 대해 공부 하고 있습니다.
정말 공부해야 할 양이 어마무시 한 거 같습니다.

함수와 변수

함수 안에서 선언한 변수의 효력 범위

함수 안에서 사용할 변수의 효력 범위에 알아보겠습니다.
함수 안에서 사용할 변수의 이름을 함수 외부에서도 똑같이 사용하면 어떻게 될까요?

Python
>>> # chrtest.py
>>> a = 10
>>> def chartest(a):
... a = a + 1
...
>>> chartest(a)
>>> print(a)
10

위의 코드를 살펴보겠습니다.
a 라는 변수를 먼저 선언한 뒤 10 이라는 숫자를 대입했습니다.
그런 다음에 chartest 라는 함수를 만들었는데 이 함수의 내용은 a 라는 입력 값을 받아서 1을 더해준뒤 결과는 리턴하지 않는 것입니다.
그리고 함수에 입력값으로 a 를 주었습니다. 그리고 print 문을 사용해 a 를 출력해 보았습니다.

얼핏 보기에는 매개변수 a 의 값에 1을 더했으니 당연히 11 이 출력될 것만 같았습니다.
하지만 실제로 실행을 해보니 그냥 원래 a 에 대입되었던 10 이 출력이 됩니다.

이렇게 되는 이유는 함수 안에서 사용하는 매개변수는 함수 안에서만 사용되기 때문입니다.
즉 함수만의 변수라고 할 수 있습니다.
def chartest(a) 라는 함수 선언에서 입력값을 전달받게 되는 a라는 매개변수는 함수 안에서 사용 되어지는 변수이므로 함수 밖의 a 라는 변수와는 상관이 없다는 의미입니다.

매개변수의 이름을 바꿔보아도 이전의 함수 chartest 함수와 동일하게 동작을 합니다.

Python
>>> def chartest(hi):
...     hi = hi + 1

한번 더 확인 해 보겠습니다.

Python
>>> # chartest_err.py
>>> def chartest(a):
...    a = a + 1
...
>>> chartest(30)
>>> print(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

얼핏 보기엔 chartest 함수의 입력값으로 30을 받고 30 + 1 을 해서 31 을 출력할것 같지만
실제로는 오류가 발생하게 됩니다.
함수안에서는 31 이 되겠죠. 하지만 a 라는 변수를 어디에서도 찾을 수가 없기에 오류가 발생하게 됩니다.
함수 안에서 선언한 매개변수는 함수 안에서만 사용되기 때문입니다.
함수 밖에서는 사용되지 않는다는 걸 다시 확인 할 수 있습니다.

이 부분은 상당히 중요한 부분으로 꼭 이해하고 넘어가야 할 듯 합니다.

함수 안에서 함수 외부의 변수 변경하기

return 사용

비주얼스튜디오 코드를 사용해 코드를 입력해 보겠습니다.

Python
# chartest_return.py
a = 10
def chartest(a):
   a = a + 10
   return a
 
 a = chartest(a)
 print(a)

먼저 return 을 사용 해 보겠습니다. chartest 함수에 입력으로 들어오는 값에 10을 더한 값을 리턴하게끔 되어 있습니다.
a = chartest(a) 라고 하면 a 에 chartest 함수의 리턴값이 대입되게 됩니다.
여기서도 chartest 함수의 매개변수 a 와 함수 외부에 a = 10 의 a 와는 별개의 것이라고 보시면 됩니다.

Python
20

global 명령어 사용

globa 이라는 명령어를 사용해서도 함수 안에서 함수 외부의 변수 변경하기 가 가능합니다.

Python
# chartest_global.py
a = 30
def chartest():
    global a
    a = a + 10

chartest()
print(a)

위 코드에서 보이듯이 chartest 함수 안에서 global a 명령은 함수 안에서 함수 밖의 a 라는 변수를 직접 사용하겠다는 의미 입니다.
그러나 실제로 프로그래밍을 진행을 할때는 global 명령어를 사용하는 것 보단 함수를 독립적으로 존재하게끔 유지하는 것이 좋다고 합니다.
외부 변수에 휘둘리는 함수가 되기 때문에 그닥 좋지가 않다는 걸 알고 있어야겠습니다.

예약어 lambda

함수를 생성할 때 사용 되는 예약어로 lambda 가 있습니다.
lambda 는 def 와 같은 역할을 합니다.
일반적으로 함수를 한 줄로 간결하게 만들려고 한다면 lambda 즉 람다를 사용해 볼 수 있습니다.
프로그래밍을 하는 중 def 를 사용 안 해도 될만큼 간단하거나 def 를 사용할 수 없는 상황에 사용되기도 합니다.

lambda 사용법

lambda의 사용법은 아래와 같습니다.

함수명 = lambda 매개변수 1, 매개변수 2,.....: 매개변수를 이용한 표현식

lambda 예제 코드

lambda 를 사용해 코딩을 해보겠습니다.

Python
>>> mmm = lambda a, b: a * b
>>> result = mmm(10, 30)
>>> print(result)
300

lambda 의 경우를 보면 위 처럼 return 명령어가 없어도 결과를 리턴 하는 것을 볼 수 있습니다.
위 예제 코드는 아래 def 를 사용한 코드와 완전히 동일합니다

Python
>>> def mmm(a, b):
...     return a * b
...
>>> result = mmm(10, 30)
>>> print(result)
300
  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
32. 파이썬 함수 변수의 효력 범위

31. 파이썬 입출력값에 따른 함수의 형태 – 다섯번째

31. 파이썬 입출력값에 따른 함수의 형태 – 다섯번째

파이썬 입출력값에 따른 함수의 형태에 대해 계속 공부해 나가겠습니다.

파이썬 입출력값에 따른 함수의 형태

지난 포스팅에 함수는 return 문을 만나면 리턴값을 돌려주고 함수를 빠져나간다고 했습니다
이번 포스팅에서는 return 문의 또 다른 쓰임새부터 매개변수에 초깃값 미리 설정하는 방법까지 공부해 보겠습니다

return 문의 또 다른 쓰임새

상황에 따라 함수를 빠져나가고 싶다면 return 을 단독으로 사용해 함수에서 바로 빠져나갈 수 있습니다.

Python
>>> def say_nicknm(nicknm):
...     if nicknm == "바보":
...         return
...     print("당신의 별명은 %s 입니다." % nicknm)
...
>>>

위에 예로 든 코드는 ‘별명’을 입력 받아서 출력 하는 함수 입니다. 여기서 생성한 say_nicknm 함수 역시 리턴값은 없습니다(전에 진행했던 포스팅에서 문자열을 출력한다는 것과 리턴값이 있다는 것은 다른 의미인 걸 공부했었습니다.
28. 파이썬 입출력값에 따른 함수의 형태 – 두번째 시간
헷갈리지 말아야 할게 함수의 리턴값은 무조건 return 문에 의해서만 생긴다는 것을 명심해야 합니다.

위 코드에서는 “바보”라는 문자열이 들어오면 문자열을 출력하지 않고 함수를 바로 빠져나가게 됩니다.

Python
>>> say_nicknm('천재')
당신의 별명은 천재 입니다.
>>> say_nicknm('바보')
>>>

위 코드 실행결과 처럼 nicknm 에 ‘바보’라는 문자열이 들어오는 순간 바로 종료하게 됩니다.
이렇게 return 을 이용해 함수를 빠져나가는 구현방식은 실제 프로그래밍을 할때 자주 사용됩니다.

매개변수에 초기값 설정해 놓기

이번에는 좀 다른 형태의 함수 인수 전달 하는 방법입니다.
매개변수에 초기값을 미리 설정해 놓는 경우입니다.

Python
>>> def say_myinfo(name, age, man=True):
...     print("저의 이름은 %s 입니다." % name)
...     print("저의 나이는 %d 살 입니다." % age)
...     if man:
...         print("저는 남자입니다.")
...     else:
...         print("저는 여자입니다.")
...

위 코드를 보면 say_myinfo 함수의 매개변수가 name, age, man=True 으로 3개가 설정이 됩니다. 그런데 man=True 처럼 매개변수에 미리 값을 넣어줬습니다.
이 방법이 매개변수에 초기값을 미리 설정하는 방법입니다.
위 코드를 해석하면 say_myinfo 함수가 3개의 매개변수를 받아서 마지막 인수인 man 이 True 인 경우에는 “저는 남자입니다.” False 이면 “저는 여자입니다.” 를 출력하게 되어 있습니다.
실제로 say_myinfo 를 사용해 보겠습니다.

Python
>>> say_myinfo('파이썬', 15)
저의 이름은 파이썬 입니다.
저의 나이는 15 살 입니다.
저는 남자입니다.

위 실행 결과처럼 매개변수에 2개를 주면 name 에는 ‘파이썬’, age 에는 15 숫자가 대입됩니다. 그리고 man 이라는 변수에는 아무 입력이 없었기에 초기값 True 를 가지게 되는 것입니다.

Python
>>> say_myinfo('파이썬', 15, False)
저의 이름은 파이썬 입니다.
저의 나이는 15 살 입니다.
저는 여자입니다.

똑같이 진행 해 보되 man 매개변수 값에 False 값을 대입해 봤습니다. man = False 가 되기에 else 문을 만나 ‘나는 여자입니다’ 문장이 출력 되는 걸 확인 할 수 있습니다.

매개변수에 초기값 설정할 때 주의할 점

Python
>>> def say_myinfo(name, man=True, age):
  File "<stdin>", line 1
    def say_myinfo(name, man=True, age):
                                   ^^^
SyntaxError: non-default argument follows default argument

위 코드 처럼 age 와 man 의 매개변수 위치를 바꿔보았습니다.
함수의 다음 부분은 입력도 못하고 오류가 발생했습니다.
위처럼 코드를 작성하게 되면 name 다음에 나이를 입력 하려고 할 때 파이썬 인터프리터가 어디에 대입해야 할지 판단하기가 어려워 오류를 발생시키게 되는 것입니다.

오류메세지 내용 ‘SyntaxError: non-default argument follows default argument’ 은 초기값 없는 매개변수(age)는 초기값이 있는 매개변수(man) 뒤에 사용할 수 없다는 의미입니다.
결론적으로 (name, age, man=True)는 허용되지만 (name, man=True, age) 는 허용이 안된다는 것입니다.
초기값을 설정하고 싶은 매개변수는 항상 뒤쪽에 위치해야 하는 걸 명심해야 겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
31. 파이썬 입출력값에 따른 함수의 형태 – 다섯번째

30. 파이썬 입출력값에 따른 함수의 형태 – 네번째

30. 파이썬 입출력값에 따른 함수의 형태 – 네번째

파이썬 입출력값에 따른 함수의 형태는 알아야 할게 많네요
벌써 네번째 시간입니다.
지난 시간에 이어서 이번에는 키워드 매개변수 kwargs 에 대해 공부해 보겠습니다.

파이썬 입출력값에 따른 함수의 형태

키워드 매개변수 kwargs

지난번 시간에는 입력값을 여러 개 받기 위해 매개변수 앞에 * 을 붙였습니다.
이번에 공부할 키워드 매개변수를 사용하기 위해서는 매개변수 앞에 별을 두개를 붙입니다(**)

키워드 매개변수 kwargs 예

Python
>>> def print_kwargs(**kwargs):
...     print(kwargs)
...

위 코드에 나오는 print_kwargs 함수는 매개변수 **kwargs 를 출력하는 단순한 함수 입니다.
print_kwargs 함수를 사용해 보겠습니다.

Python
>>> print_kwargs(a=3)
{'a': 3}
>>> print_kwargs(name='python', age=10)
{'name': 'python', 'age': 10}

위 사용된 예를 보면 print_kwargs 함수에 입력이 a=3 이라고 하면 kwargs 는 {‘a’: 3} 이라고 하는 딕셔너리가 생성이 됩니다.
그리고 name=’python’, age=10 이라고 사용을 하게 되면 {‘name’: ‘python’, ‘age’: 10} 이라는 딕셔너리가 생성이 됩니다.
이처럼 **kwargs 처럼 매개변수 앞에 별 두개(**)를 사용하게 되면 매개변수 kwargs 는 딕셔너리가 되고 모든 key=value 의 형태의 입력되는 값들이 그 딕셔너리에 저장이 되는 것입니다.

이전 포스팅에서의 args 처럼 kwargs 는 keyword arguments 의 약자로 관례적으로 사용된다는 것은 참고로만 알고 계시면 될 듯 합니다

함수의 리턴값은 언제나 하나

이게 무슨 말일까요?
다음 코드를 보겠습니다

Python
>>> def add_and_mul(a, b):
...    return a+b, a*b

위 코드는 add_and_mul 함수에서 2개의 입력 인수를 받아서 더하기와 곱셈한 결과를 리턴하는 함수입니다.
add_and_mul 함수를 아래 처럼 호출해 보겠습니다

Python
>>> result = add_and_mul(100, 200)

여기서 result 라는 리턴값은 하나만 쓰였습니다.
리턴값이 a+b, a*b 인데 문제가 생길 수도 있다고 생각들겠지만 오류는 발생하지 않습니다.
왜그러냐면 함수의 리턴값은 2개가 아니라 언제나 1개라는데 있습니다.
add_and_mul 함수의 리턴값 a+b 와 a*b 는 튜플값 하나인 (a+b, a*b) 로 리턴이 됩니다
결국 리턴값은 하나 라는 겁니다

아래처럼 result 를 print 해보겠습니다.

Python
>>> print(result)
(300, 20000)

위처럼 결과값으로 (300, 20000) 이라는 튜플 값을 가지게 됩니다.
만약에 이렇게 나오는 하나의 튜플값을 2개로 분리해서 보고 싶다면 다음처럼 하면 됩니다.

Python
>>> result1, result2 = add_and_mul(100, 200)

위 코드처럼 result1 과 result2 로 나누어서 호출을 하게되면 result1 은 100, result2 는 200 의 값을 가지게 됩니다.
다른 예를 보겠습니다.

Python
>>> def add_and_mul(a,b):
...     return a+b
...     return a*b
...
>>>

만약 위 코드 처럼 return 문을 2번 사용해서 2개의 리턴값을 돌려주지는 않을까 하는 생각이 들수도 있지만 파이썬에서는 위처럼 함수를 사용하면 어리석다고 해야 할 겁니다.
다음 코드를 보면 알 수 있습니다.

Python
>>> result = add_and_mul(100, 200)
print(result)
300

add_and_mul(100, 200) 를 실행해 보면 리턴값으로 300 만 나옵니다.
두번째 리턴문인 return a*b 는 실행이 안되었습니다.
앞서 리턴값은 언제나 하나 라는게 또 증명이 되네요
위 코드는 아래 코드랑 똑같습니다.

Python
>>> def add_and_mul(a,b):
...     return a+b
...
>>>

왜 이렇게 되냐하면 함수는 return 문을 만나는 순간 리턴값을 돌려주고 함수를 빠져나가게 되기 때문입니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
30. 파이썬 입출력값에 따른 함수의 형태 – 네번째

29. 파이썬 입출력값에 따른 함수의 형태 – 세번째 시간

29. 파이썬 입출력값에 따른 함수의 형태 – 세번째 시간

지난 포스팅에 이어서 파이썬 입출력값에 따른 함수의 형태에 대해 공부해 보도록 하겠습니다.

입출력값에 따른 함수의 형태에는 일반적인 함수, 입력값이 없는 함수, 리턴값이 없는 함수, 입력값도 리턴값도 없는 함수, 그리고 매개변수를 지정하여 호출해 보는 것 까지 진행을 했습니다.

파이썬 입출력값에 따른 함수의 형태

입력값이 몇 개가 될지 모르는 함수의 형태 해결방법

프로그래밍을 하다보면 입력값이 한개가 될 때도 있지만 입력값이 여러 개일 경우도 있습니다.
이럴 때 그 입력값들을 다 더해 주는 함수가 있다고 생각해 봅시다.
그런데 여기서 문제는 입력받을 값들이 몇 개가 될지 모른다면 어떻게 해야 할까요?
당연히 프로그래밍을 할 때 상당히 난감해 지겠죠
파이썬에서는 이렇게 입력값이 몇 개가 될지 모를 때의 방법이 있습니다.

Python
def 함수이름(*매개변수):
    수행할 문장
    ...

기존에 했던 것과 차이점이 보이시나요?
위에 보시는 것 처럼 괄호 안에 매개변수를 입력하는데 앞에 * 이 붙어 있습니다.

입력값을 여러 개 받는 함수

입력값을 여러 개 받는 함수를 만들어 보겠습니다.
만약에 add_money(100, 200) 이면 300 을, add_money(100, 200, 300) 이면 600을, add_money(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000) 이면 5500 을 리턴 하는 함수입니다.

Python
>>> def add_money(*money):
...     Wallets = 0
...     for i in money:
...         Wallets = Wallets + i
...     return Wallets
...
>>>

위 코드는 앞서 설명한 매개변수 앞에 * 가 붙음으로서 입력값이 몇 개가 되던 상관이 없습니다.
*money 처럼 매개변수 앞에 * 을 붙이면 입력되는 값들을 모두 모아서 튜플로 만들어 주기 때문입니다.
만약 add_money(100, 200, 300) 처럼 함수를 사용을 하게 된다면 money 는 (100, 200, 300) 이 되고, add_money(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000) 처럼 함수를 사용하게 된다면 money 는 (100, 200, 300, 400, 500, 600, 700, 800, 900, 1000) 이 되는 것 입니다.
*money 는 임의로 정한 변수 이름이기 때문에 변경은 당연히 가능합니다.


보통은 이런 경우 args라는 매개변수를 사용을 합니다.
args의 의미는 인수를 뜻하는 영어 단어 arguments 의 약자로 관례적으로 많이 사용한다고 합니다.

입력값을 여러 개 받는 함수 사용

앞에서 만든 add_money 함수를 사용해 보겠습니다

Python
>>> Wallets = add_money(100, 200, 300)
>>> print(Wallets)
600
>>> Wallets = add_money(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
>>> print(Wallets)
5500

위 코드를 사용한 것을 보면 add_money(100, 200, 300)으로 함수를 호출하면 600 을 리턴하게 되고, add_money(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000) 으로 함수를 호출하면 5500 을 리턴하는 것을 확인 할 수 있습니다.

입력값을 여러 개 받는 매개변수 와 추가 변수 사용

입력값을 여러개 처리할때 앞서 def add_money(*money): 이렇게 *money 하나를 사용했었는데, 이 매개변수 하나만 사용할 수 있는 것은 아닙니다.

Python
>>> def add_money(choice, *money):
...     if choice == "add":
...         Wallets = 0
...         for i in money:
...             Wallets = Wallets + i
...     elif choice == "mul":
...         Wallets = 1
...         for i in money:
...             Wallets = Wallets * i
...     return Wallets
...
>>>

여러 개의 입력값을 받는 *money 매개변수 앞에 choice 라는 변수를 추가했습니다.

Python
>>> Wallets = add_money('add', 100, 200, 300, 400, 500)
>>> print(Wallets)
1500
>>> Wallets = add_money('mul', 100, 200, 300, 400, 500)
>>> print(Wallets)
1200000000000

choice 변수를 추가한 위의 코드 사용 결과를 보면 ‘add’ 가 입력이 되면 모든 값을 더해서 1500 을 리턴하고, ‘mul’ 이 입력되 되면 모든 값을 곱해서 1200000000000 이 리턴되는 것을 확인 할 수 있습니다.

실제로 저런 함수를 써서 돈 좀 불려봤으면 좋겠네요 ㅎ

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
29. 파이썬 입출력값에 따른 함수의 형태 – 세번째 시간

28. 파이썬 입출력값에 따른 함수의 형태 – 두번째 시간

28. 파이썬 입출력값에 따른 함수의 형태 – 두번째 시간

지난 포스팅에 파이썬 입출력값에 따른 함수의 형태에서 일반적인 함수와 입력값이 없는 함수에 대해 공부했었습니다.

이번 포스팅에서는 파이썬 입출력값에 따른 함수의 형태 – 두번째 시간으로 리턴값이 없는 함수와 입력값도 리턴값도 없는 함수, 그리고 매개변수 지정하여 호출하기 에 대해 공부해 보겟습니다.

파이썬 입출력값에 따른 함수의 형태

리턴값이 없는 함수

리턴값이 없는 함수 예

Python
>>> def mmm(a, b):
...     print("%d, %d 의 차는 %d 입니다." % (a, b, a-b))
...
>>>

위 처럼 mmm 이라는 함수를 먼저 만들고 함수를 실행시켜 보겠습니다.

Python
>>> mmm(5, 7)
5, 7 의 차는 -2 입니다.

위의 코드 예처럼 리턴값이 없는 함수의 형식은 아래와 같습니다.

함수이름(입력인수 1, 입력인수 2, …)

리턴값이 없는 함수 확인

리턴값이 진짜 있는지 없는지 확인하려면 다음과 같이 해보면 됩니다.

Python
>>> a = mmm(5, 7)
5, 7 의 차는 -2 입니다.

여기서 처음에 헷갈렸던게 ‘5, 7 의 차는 -2 입니다.’ 라는 문장을 출력을 해주었는데 리턴값이 없다는게 이상합니다.
이 부분은 이렇게 보시면 됩니다.
print 문은 함수의 구성요소의 하나인 ‘수행할 문장’에 해당하는 부분이라고 보시면 됩니다.
리턴값은 당연히 없습니다.
리턴값 이라는 건 return 명령으로만 돌려받을 수 있습니다.
이 부분을 확인해 보기 위해 예를 들어보겠습니다.

Python
>>> a = mmm(5, 7)
5, 7 의 차는 -2 입니다.
>>> print(a)
None

위 코드를 보면 a 를 print 로 출력을 해보면 None 이라는 결과가 나옵니다.
None 이라는 건 거짓을 나타내는 자료형이라고 예전에 공부했었죠
mmm 함수 처럼 리턴값이 없을 때 a = mmm(5, 7) 처럼 사용하면 mmm 함수는 리턴값으로 a 변수에 None 을 리턴하게 됩니다.
None 값을 리턴했다는 것은 리턴값이 없다는 의미 입니다.

입력값도 리턴값도 없는 함수

입력값이 없는 함수, 리턴값이 없는 함수에 이어 이번엔 입력값도 리턴값도 없는 함수에 대해 공부해 보겠습니다.

입력값도 리턴값도 없는 함수의 예

Python
>>> def say():
...     print('Hello')
...
>>>

위 코드를 보면 입력 인수를 받는 매개변수도 없고, return 문도 없습니다.
이런 함수를 입력값도 리턴값도 없는 함수라고 보시면 됩니다.
이렇게 입력값도 없고 리턴값도 없는 함수를 사용하는 방법은 한가지 뿐입니다.

Python
>>> say()
Hello

이렇게 입력값도 리턴값도 없는 함수의 형식은 아래와 같습니다

함수이름()

매개변수 지정하여 호출하기

함수를 호출할 때 매개변수를 지정할 수도 있습니다.

Python
>>> def mmm(a, b):
...     return a - b
...

a, b 두 개의 숫자를 입력받아서 먼저 입력된 a 에서 두번째 입력된 b 를 빼서 리턴하는 mmm 이라는 함수 입니다.
이 함수를 매개변수를 지정하여 사용하는 방법입니다.

Python
>>> result = mmm(a=5, b=7) # a 에 숫자 5, b 에 숫자 7 을 대입
>>> print(result)
-2

매개변수 지정하여 호출하기의 장점

Python
>>> result = mmm(b=7, a=5) # b 에 숫자 7, a 에 숫자 5 를 대입
>>> print(result)
-2

위 코드를 보면 이전 코드와 다르게 순서를 바꿨습니다.
이처럼 매개변수를 지정하여 호출하게 되면 순서에 상관없이 사용할 수 있다는 장점이 있습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
28. 파이썬 입출력값에 따른 함수의 형태 – 두번째 시간

마우스 우클릭 금지 해제하기(크롬, 웨일)

마우스 우클릭 금지 해제하기(크롬, 웨일)

이번 포스팅은 인터넷 웹서핑을 하다가 많은 사이트나 카페, 블로그 등에서
마우스 우클릭 을 제한 하고 있는 곳에서 원하는 정보를 복사하기 위해
마우스 우클릭 금지 해제 하는 방법에 대해 알아보려 합니다.

인터넷을 돌아다니다 보면 무수히 많은 정보들이 존재하고
그 많은 정보들 중 내가 찾던 정보를 찾았을때
내 블로그나 내 카페나 아니면 내 문서 등에
그런 정보들을 가져오기 위해 스크랩을 할 수 도 있지만
그런 정보들을 복사해서 가져오고 싶은 경우도 생길겁니다.


그런데 많은 수의 홈페이지나 카페, 커뮤니티 사이트, 블로그, 워드프레스 상에서
마우스 우클릭 방지를 해놓고 있어 안되는 경우가 종종 있습니다.

누군가가 소중하게 올려놓은 자료들을
무단으로 복사해서 가져가는 것은 당연히 안되는 일이겠죠
하지만 그런 정보들을 무단으로 복사해서
자기가 한 것 처럼 사용하거나
상업적으로 사용하려는 게 아닌
순수하게 기록하거나 저장해 두기 위해서 필요한 경우도 있을 겁니다


이럴 때 우클릭이 제한 되어 있다면 상당히 답답할 것입니다.
이런 경우를 위해 마우스 우클릭 해제 하는 방법에 대해 알아보겠습니다

개발자 도구 자바스크립트 해제

먼저 크롬이나 웨일 브라우저에서 개발자도구를 사용하는 방법입니다

개발자 도구 활성화


크롬이나 웨일 에서 키보드의 F12 키를 누르게 되면 개발자 도구가 활성화 됩니다
개발자도구는 아래 이미지처럼 html 언어로 언뜻 보면 굉장히 복잡하게 보입니다.
저도 html 은 잘 모르는 수준이라 저도 눈이 빙빙 돌아 갑니다
개발자도구에서 오른쪽 위에를 보면 톱니바퀴 모양의 설정 버튼이 있습니다
그 설정 버튼을 먼저 클릭 해 줍니다

마우스 우클릭 금지 해제하기(크롬, 웨일)

Debugger 메뉴 선택

그럼 아래 처럼 또 영어로 된 메뉴들이 무수히 등장합니다
전 영어 역시….ㅜㅜ
어쨌든 나오는 메뉴들을 뒤로 하고 스크롤을 쭉 내려줍니다

마우스 우클릭 금지 해제하기(크롬, 웨일)

그럼 Debugger 라는 메뉴를 찾을 수 있습니다

Disable JavaScript 활성화

Debugger 라는 설정 메뉴에서 Disable JavaScript 라는 설정이 있는데
아마 체크가 해제되어 있을겁니다
이 설정을 클릭해서 아래 처럼 활성화 해줍니다

마우스 우클릭 금지 해제하기(크롬, 웨일)

설정 대로라면 JaveScript 를 비활성화 해준다는 의미겠죠
이렇게 한 뒤 개발자 도구는 다시 F12 키 를 이용해서 닫아주셔도 됩니다.

이제 사용을 해보시면 마우스 우클릭 방지 와 드래그 복사 등을 할 수 있는 걸 볼 수 있을 겁니다.

확장프로그램 이용

크롬이나 웨일의 경우(다른 브라우저는 사용을 거의 안해서…) 확장프로그램이라는 것이 존재합니다
말 그대로 크롬이나 웨일 브라우저의 사용 편의를 위해서 누군가가 열심히 개발해서 올려둔 프로그램들 입니다
웨일 브라우저는 크롬 브라우저를 바탕으로 만들어진 것이기에 둘 다 비슷하다고 보시면 됩니다.
크롬과 웨일 브라우저의 오른쪽에 보면 아래 처럼 보이는 아이콘 들이 있습니다.

크롬

마우스 우클릭 금지 해제하기(크롬, 웨일) (4)

웨일

마우스 우클릭 금지 해제하기(크롬, 웨일) (4)

웨일 확장앱 관리

둘 다 모양은 비슷한데 방향만 틀린 듯 하네요 ㅎ
저는 웨일 브라우저를 주로 사용하므로 웨일 브라우저로 진행을 해 보겠습니다
위의 확장앱 관리 아이콘을 클릭 해서 확장프로그램 창을 열어 줍니다

필요없고 그냥 확장앱 바로가기가 원하시면 아래 링크를 클릭해주세요

https://zrr.kr/p92M

아래 그림처럼 나오는데 아래 쪽에 위치한 확장앱 관리를 클릭해 줍니다
저는 이것저것 확장 프로그램을 몇 개 깔아 놔서 아래처럼 여러 개가 보이는 것이고
확장 프로그램을 기존에 설치하지 않으셨다면 깨끗하게 나올 수 도 있겠네요~

마우스 우클릭 금지 해제하기(크롬, 웨일) (4)

웨일스토어 가기

확장앱 관리 메뉴로 들어가셨다면 아래 쪽에 웨일스토어 가기 가 있습니다.
웨일스토어 가기로 들어가 주세요

마우스 우클릭 금지 해제하기(크롬, 웨일)

드래그프리 검색 설치

아래처럼 확장앱 검색창에 드래그프리 라고 검색하고 엔터를 쳐 줍니다

마우스 우클릭 금지 해제하기(크롬, 웨일)

저는 이미 설치했기에 추가됨이라고 나오지만
설치를 안하신 분들을 이 드래그프리 확장앱을 추가해 주세요

드래그프리 단축키 설정

드래그프리 확장앱을 설치를 하셨으면 빠른 작업을 위해서 단축키를 설정해 주시는게 좋습니다
주소창 옆에 추가된 드래그프리 확장앱 아이콘을(아래 화살표 모양) 클릭하시면

마우스 우클릭 금지 해제하기(크롬, 웨일) (12)

아래처럼 드래그프리 확장앱의 설정화면이 나옵니다

마우스 우클릭 금지 해제하기(크롬, 웨일)

단축키지정 아이콘을 클릭해서 단축키 설정 화면으로 넘어갑니다
단추키 지정이 가능한 확장앱들 목록이 나오고 목록을 스크롤 하다 보면
드래그프리 확장앱의 단축키를 설정할 수 있는 화면이 나옵니다.
이 화면에서 단축키를 지정해 주시면 됩니다.

마우스 우클릭 금지 해제하기(크롬, 웨일)

저의 경우 단축키를 임의로 Ctrl + 2 로 지정을 해봤습니다.
단축키의 경우 다른 프로그램이나 윈도우 기본 단축키와 충돌할 수도 있으니 참고 하시기 바라며
이상으로 마우스 우클릭 금지 해제 하는 방법에 대해 알아봤습니다.

27. 파이썬 입출력값에 따른 함수의 형태 – 첫번째

27. 파이썬 입출력값에 따른 함수의 형태 – 첫번째

지난 시간에 이어 파이썬 함수 에 대해 공부하도록 하겠습니다.

매개변수와 인수

파이썬 입출력값에 따른 함수의 형태를 알아보기 전
먼저 오늘은 파이썬 함수에 사용되는 매개변수 와 인수 에 대해 알아보겠습니다.
매개변수 와 인수는 헷갈릴 수 있는 용어이니 개념을 잘 정립 하는게 좋을 듯 합니다.
먼저 매개변수는 함수에 입력받는 값을 전달하는 변수를 의미합니다.
그리고 인수는 함수를 만들고 이후 함수를 호출할 때 전달하는 입력값을 의미 합니다.
아래 예를 보겠습니다.

Python
def mmm(a, b):   # a와 b 는 매개변수 입니다.
    return a - b
print(mmm(2, 5)  # 2와 5는 인수 입니다.
  • 매개변수 – 함수에 전달된 값을 저장하는 변수
  • 인수 – 함수에 전달하는 값

파이썬에서는 이처럼 같은 의미를 가진 용어들이 종종 등장하니 주의 해야 합니다.
용어의 혼용은 파이썬 뿐만 아니라 프로그래밍을 공부하다보면 어려운 부분 중의 하나입니다.
내가 만든 프로그램도 시간이 지나서 보면 어? 그땐 어떻게 이걸 했지 라는 생각이 드는데
다른 사람이 프로그래밍 해놓은 코드를 보거나 또 그 코드의 번역본을 보다보면 의미는 같으면서도 표현이 다른 용어들을 종종 보게 될것입니다.
예를 들어보면 입력되는 값을 함수의 인수, 파라미터 ,매개변수 등으로 표현하기도 하고 리턴값을 결과값, 출력값, 반환값 등으로 표현하기도 합니다.
이렇게 용어가 다양하게 표현되지만 의미는 같은 경우가 많습니다.
이런 용어들을 기억해 놓으면 머리 아픈일은 좀 덜 할 거 같네요

파이썬 입출력값에 따른 함수의 형태

앞서 공부한 것 처럼 함수는 입력되는 값을 처리하여 그 결과를 리턴값(출력값)으로 돌려주게 됩니다.
이처럼 함수는 입출력값이 있고 없고에 따라 4가지 유형으로 나눠지게 됩니다.

일반적인 함수

보통 입력값이 있고 출력값이 있는 함수가 일반적입니다.
앞으로 우리가 프로그래밍을 하게 되면 이런 함수들이 대부분 일 것 입니다.

Python
def 함수이름(매개변수):
    수행할 문장 1
    수행할 문장 2
    ...
    return 리턴값

앞서 만들어 봤던 함수는 일반적인 함수의 전형적인 예입니다.

Python
def mmm(a, b):
    result = a - b
    return result

위 코드를 보면 mmm 이라는 함수는 a, b 두개의 입력값을 a – b 해서 그 결과값을 result 라는 변수에 대입하고 출력하게 됩니다.
위 함수를 사용해 보겠습니다.

Python
>>> a = mmm(2, 5)
>>> print(a)
-3

입력값으로 2 와 5 를 입력받아 a 변수에 출력값을 저장하고 출력했습니다.
이와 같이 입출력값이 있는 함수의 사용법은 아래와 같습니다.

리턴값(출력값)을 받을 변수 = 함수이름(입력인수 1, 입력인수 2, …)

입력값이 없는 함수

입력값이 없는 함수는 어떻게 생겨먹었을까?
다음 예를 보겠습니다.

Python
>>> def say():
...     return 'Hello'
...
>>>

위처럼 say 라는 함수를 만들고 매개변수 부분을 나타내는 함수이름 뒤의 괄호 부분은 비어있습니다.
이렇게 만들어진 say 함수를 사용해 보겠습니다

Python
>>> h = say()
>>> print(h)
Hello

이렇게 입력값이 없이 함수 이름 뒤 괄호안의 매개변수가 비어있는 입력값이 없는 함수는 사용을 할때에도 say() 처럼 괄호안에 아무것도 넣으면 안됩니다.
위 함수를 사용하면 입력값이 따로 없어도 ‘hello’ 라는 문자열을 출력하게 됩니다.
이것은 h = say() 라고 코드를 입력하게 되면 h 라는 변수에 ‘Hello’ 라는 문자열을 대입하라는 것과 동일한 것입니다.
이렇게 입력값이 없고 리턴값(출력값)만 있는 함수의 사용법은 다음과 같습니다

리턴값(출력값)을 받을 변수 = 함수이름()

이번 시간에는 파이썬 입출력값에 따른 함수의 형태 중 일반적인 함수와 입력값이 없는 함수에 대해 알아보았습니다.
다음 포스팅에 이어서 파이썬 입출력값에 따른 함수의 형태에 대해 더 알아보는 시간을 가져보겠습니다

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
27. 파이썬 입출력값에 따른 함수의 형태

26. 파이썬 함수와 입출력, 파일처리 방법

26. 파이썬 함수와 입출력, 파일처리 방법

이제부터는 파이썬 함수와 입출력, 파일처리 방법 에 대해 공부해 보겠습니다.
지난 시간까지 공부한 내용을 참고해서 봐주세요~

파이썬 입출력은 프로그래밍 설계와 관련이 있습니다.
프로그램을 만들기 전 동작을 어떻게 진행할 것인지 프로그래머가 설계를 하게 되는데
이 설계 단계에서 가장 중요하게 여기는 부분이 파이썬 입출력 설계 입니다.

함수를 만들 때 특정 프로그램만 사용하는 함수를 만들 것인지 아니면 모든 프로그램이 공통적으로 사용할 수 있게끔 함수를 만들 것인지, 또는 오픈 API 를 공개해서 외부 프로그램들 도 사용 하게끔 할 것 인지 등
이런 모든 부분이 입출력과 연관이 있습니다.

파이썬 함수

파이썬 함수의 정의

믹서기를 사용한다고 가정해 보세요
믹서에 과일 같은 것들을 넣습니다.
그리고 믹서기의 전원을 켜서 안에 들어있는 과일들을 갈아 과일 주스를 만듭니다.
여기서 우리가 믹서기에 넣은 과일들은 ‘입력’이 되는 것이고 과일 주스는 ‘출력'(결과값) 이 되는 것 입니다.
그러면 여기서 믹서기는 무엇 일까요?

26. 파이썬 함수와 입출력, 파일처리 방법
이미지 출처 : 점프투파이썬

여기서 사용되는 믹서기가 지금 공부하려고 하는 함수 와 같은 것 입니다.
입력되는 값을 가지고 어떤 작업을 진행한 뒤에 그 결과물을 출력하는 것.
그것이 함수가 하는 일 이라고 보시면 됩니다.

예전부터 우리는 함수에 대해 공부 한 적이 있지만 함수에 대해서 그닥 깊이 생각해 본 적이 별로 없을 겁니다.
예를 들어서 x = 3y + 2 같은 수식도 함수라고 할 수 있습니다.
하지만 이를 그냥 수학 시간에 배운 그래프 중 하나인 직선 그래프로만 알고 있고
y 값에 따라서 x 출력이 변화하는 함수라고는 생각을 못했을 수 있습니다.

프로그래밍에서 함수는 정말 중요한 요소 입니다.
함수에 대해서는 좀 더 깊이 생각을 해봐야 할 것입니다.

파이썬 함수 왜 사용할까?

프로그래밍을 진행 하다 보면 같은 내용을 반복해서 작성하는 경우가 종종 있습니다.
이럴 때 바로 함수를 사용하면 됩니다.
반복적으로 사용되는 경우가 있다면 ‘반복적으로 사용되는 가치 있는 부분’ 을 하나의 덩어리로 묶어서
a라는 입력 값이 주어지면 b 라는 결과값을 출력하세요~ 라는 식으로 함수로 작성하는 것이 현명한 프로그래머일 것입니다.

파이썬에서 함수를 사용하는 이유 또 한 가지는 우리가 만든 프로그램을 함수, 즉 기능 별로 구분을 해놓으면 프로그램이 어떻게 흘러가는지 알아보기가 쉽습니다.
공장에서 원재료가 공정들을 하나 하나 걸쳐 비로서 하나의 완성품이 나오는 것처럼 프로그램도 입력한 값들이 여러개 의 함수를 거치고 거쳐 우리가 원하는 결과물을 볼 수 있는 것 입니다.
이렇게 되면 프로그램의 흐름도 파악하기가 쉽고 오류가 나도 어떤 부분에서 오류가 났는지 확인하기도 쉽습니다.

파이썬 함수의 구조

파이썬 함수의 구조를 살펴보겠습니다.

Python
def 함수명(매개변수):
    수행할 문장 1
    수행할 문장 2
    수행할 문장 3
    ....

def 뒤에 함수명이 온 것을 보면 알 수 있듯이 def 는 함수를 만들때 사용하는 파이썬 예약어 입니다.
함수명은 함수를 만들 때 우리가 임의로 만들 수 있습니다.
함수명 뒤에 괄호 안에 매개변수를 넣어주는데 이 매개변수가 함수에 입력으로 전달되는 값이라고 보시면 됩니다.
이렇게 함수를 정의한 뒤에 이때까지 공부했던 if, while, for 문 등과 마찬가지로 수행할 문장 1, 2, 3… 을 입력해 주면 됩니다.
아주 간단한 예를 보겠습니다

Python
def mmmm(a, b):
    return a - b

위 예를 살펴보면 함수의 이름은 mmm 이고 a 와 b 두개의 입력값을 받아서
a에서 b를 뺀 결과를 리턴값으로 하라는 예입니다.
여기에서 사용되는 return 은 함수의 결과값을 돌려주라는 명령어입니다.
실제 위 예를 사용해 보겠습니다.

Python
>>> def mmm(a, b):
...     return a -b
...

mmm 이라는 함수가 만들어 졌습니다.
만들어진 mmm 함수를 사용해 보겠습니다.

Python
>>> a = 2
>>> b = 5
>>> c = mmm(a, b)
>>> print(c)
-3

변수 a 에는 2, b 에는 5 를 대입하고 앞에 만든 mmm 함수에 a와 b 를 입력 값으로 넣어 줬습니다.
그리고 변수 c 에는 mmm 함수의 리턴 값을 대입해줬습니다.
마지막으로 print(c) 로 mmm 함수를 적용한 c 의 결과 값을 확인 할 수 있습니다..

이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

26. 파이썬 함수와 입출력, 파일처리 방법

25. 파이썬 03장 연습문제 풀어보기

25. 파이썬 03장 연습문제 풀어보기

파이썬 03장 연습문제

1. 조건문의 참과 거짓 구분하기

아래 코드의 결과값을 조건문의 참과 거짓을 파악하여 알아봅시다

Python
k = "The credit goes to us, the blame goes to me" # 공은 우리에게로 돌리고, 책임은 내게로 돌려야하오
if "create" in a: print("create")
elif "blame" in a and "me" not in a: print("blame")
elif "goos" not in a: print("goos")
else: print("none")

풀이를 해보겠습니다. k 변수에 대입되어 있는 문자열에서 create 가 없으므로 첫번째 if 문장은 넘어갑니다
첫번째가 거짓이어서 두번째에 나오는 elif 를 만나고 blame 이 포함되어 있고 me 는 포함이 안되어야 하는데 둘다 포함되었으니 이번에도 거짓입니다.
세번째 elif 문에서 goos 는 포함안되어 있으니 참이 됩니다.
결과적으로 goos 가 출력이 되고 else 문은 건너 뛰고 종료가 됩니다

Python
goos

2. 4의 배수의 합 구하기

while 문을 사용해서 1부터 200 까지의 자연수 중에서 4 의 배수의 합을 구해보세요

Python
a = 0
sum = 0
while a <= 200:
    a = a + 1
    if a % 4 == 0:
        sum = sum + a
print(sum)
Python
5100

3. 삼각형 모양의 별 표시하기

Python
*
**
***
****
*****

while 문을 사용해서 별모양으로 삼각형을 표시해보세요

Python
a = 0
while True:
    a += 1
    if a > 5: break
    print('*' * a)

a 라는 변수는 0부터 시작을 하고 while 반복문은 항상 참입니다.
무한루프를 타고 가게 되면서 계속 적으로 a = a + 1 을 해줍니다.
그리고 a 가 5 보다 클 경우에 break 문으로 while 문을 빠져나가게 됩니다.
처음에는 1을 더해서 1 이 a 에 대입되고 5 보다 작기 때문에 ‘*’ 을 a 만큼 즉 1개를 출력하고 다음에는 ‘**’ 그다음엔 ‘***’ 이렇게 마지막으로 ‘*****’ 를 출력해주고 다시 while 문을 돌렸을때 이제 a 가 6이 되므로 거짓이 되어 break 문으로 while 문에서 빠져나가게 됩니다.

4. 1부터 100 까지 출력하기

for 문 을 사용해서 1부터 100 까지 출력을 해보세요

Python
for a in range(1, 101):
    print(a)

for 문에 range 함수를 적용해서 하면 간단하게 해결이 됩니다.

Python
1
2
3
4
...
98
99
100

5. 10명의 학생의 평균 점수 구하기

k 학급에 10명의 학생이 있다고 합니다. 이 학생들의 기말고사 점수는 아래와 같습니다.
for 문을 사용하여 k 학급 학생들의 평균 점수를 구해 보세요
[80, 70, 65, 72, 95, 80, 95, 60, 97, 100]

Python
tot = 0
k = [80, 70, 65, 72, 95, 80, 95, 60, 97, 100]
for jum in k:
    tot += jum
avg = tot / len(k)
print(avg)

k 학급 점수를 k 변수에 리스트로 대입이 된 상태에서
jum 변수는 k 리스트가 끝날때까지 반복이 되며 k 값을 하나씩 가지고 옵니다
tot 라는 변수에 jum 변수에 대입된 k학급 점수를 하나씩 더하게 됩니다.
전체 점수를 다 구해졌으면 for 문이 종료가 되고 avg 변수에 다 합해진 점수 tot 를 k 리스트의 길이로 나누게 됩니다.
그리고 이렇게 구해진 avg 변수의 값을 출력하면 됩니다.

Python
81.4

6. 리스트 컴프리헨션 사용하기

다음 num 리스트에 있는 수 중에서 짝수에만 3을 곱하여 저장하는 코드를 리스트 컴프리헨션을 사용해서 변경해 보세요

Python
>>> num = [1, 2, 3, 4, 5, 6]
>>> kkk = []
>>> for i in num:
...     if i % 2 == 0:
...         kkk.append(i * 3)
>>> print(kkk)
[6, 12, 18]

아래와 같이 변경할 수 있습니다.

Python
>>> num = [1, 2, 3, 4, 5, 6]
>>> kkk = [i * 3 for i in num if i % 2 == 0]
>>> print(kkk)
[6, 12, 18]
  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
25. 파이썬 03장 연습문제 풀어보기

24. 파이썬 for 문과 리스트 컴프리헨션(List comprehension)

리스트 컴프리헨션(List comprehension)은 리스트 안에 파이썬 for 문을 포함하는 문장을 말합니다
리스트 안에 for문을 포함하게 되는 리스트 컴프리헨션(List comprehension)을 사용 하면 편리하고 직관적으로 프로그래밍을 할 수 있습니다.

Python
>>> a = [2, 4, 6, 8]
>>> result = []
>>> for number in a:
...     result.append(number * 3)
...
>>> print(result)
[6, 12, 18, 24]

위의 예제 코드를 살펴보면 a 라는 변수에 리스트가 대입되고 그 a 변수의 요소의 각 항목에 3을 곱해서 그 결과를 result 리스트에 대입하는 코드입니다.

리스트 컴프리헨션(List comprehension)을 사용하여 변경


위 코드를 리스트 컴프리헨션(List comprehension)을 사용해서 다음처럼 변경할 수 있습니다.

Python
>>> a = [2, 4, 6, 8]
>>> result = [number * 3 for number in a]
>>> print(result)
[6, 12, 18, 24]

다음 코드처럼 [1, 2, 3, 4, 5] 라는 리스트가 있는데 홀수에만 4를 곱해서 대입하고자 한다면 List comprehension 안에 if 조건을 사용할 수도 있습니다

Python
>>> a = [1, 2, 3, 4, 5]
>>> result = [number * 4 for number in a if number % 2 != 0]
>>> print(result)
[4, 12, 20]

위 코드를 살펴보겠습니다
if number % 2 != 0 는 만약 number 를 2 로 나눈 나머지가 0 이 아니라면. 즉 홀수 일 경우에만 number * 4 를 대입해주라는 코드입니다.

리스트 컴프리헨션(List comprehension) 문법

대입변수 = [표현식 for 항목 in 반복가능객체 if 조건문]

여러개 for 문 사용

복잡해지긴 하지만 for 문을 여러개 사용하는것도 가능 합니다.

Python
[표현식 for 항목 1 in 반복가능객체 1 if 조건문 1
        for 항목 2 in 반복가능객체 2 if 조건문 2
        for 항목 3 in 반복가능객체 3 if 조건문 3
        ...
        for 항목 4 in 반복가능객체 4 if 조건문 4]

구구단 결과 모두 리스트에 담기

이전에 진행해 봤던 구구단 코드 결과를 리스트에 전부 담고 싶다면 리스트 컴프리헨션(List comprehension) 을 사용해서 간단하게 구현할수도 있습니다

Python
>>> gugudan = [a * b for a in range(2, 10)
...                  for b in range(1, 10)]
>>> print(gugudan )
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

이렇게 해서 파이썬의 반복문인 while 문과 for 문까지 모두 공부해봤습니다.
for 문과 while 문은 아주 비슷한 형태로 동작을 합니다.
for 문으로 작성한 코드를 while 문 으로 바꿀수 있고
마찬가지로 while 문으로 작성한 코드도 for 문으로 바꿀 수 도 있습니다.
그리고 리스트 안에 for 문을 포함 하는 리스트 컴프리헨션(List comprehension) 문법도 배워봤습니다
이제 다음 포스팅에서는 연습문제를 풀어보도록 해보겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
24. 파이썬 for 문과 리스트 컴프리헨션(List comprehension)