if 문을 만들어 보려고 한다.

if 문은 소프트웨어에서 가장 기본적이고도 중요한 문법이다.

 

'만약 사람이 들어왔다면 불을 켜라.' 라는 것을 실행하고 싶다면,

 

if 사람이 들어왔니?:

    print("불을 켜라")

와 같은 방식으로 실행하면 된다.

 

구구단에서 2단 4단 6단 8단만 출력하고 싶다면?

아래와 같이 코딩을 하면 된다.

def Dan(i): 
  for j in range(1, 10): 
    print("%d x %d = %d" % (i, j, i * j), end = "\t") 
  print() 

for i in range(2, 10): 
  if(i %2 == 0):
    Dan(i)


i % 2 라는 말은 i 값에서 2로 나눈 나머지 값을 계산해달라는 말이다.

1 / 2의 나머지 값은 1이고

2 / 2의 나머지 값은 0

3 / 2의 나머지 값은 1이고

4 / 2의 나머지 값은 0 이다.

 

즉 나머지 값이 0인 것을 찾아 달라는 말은 2의 배수를 찾아 달라는 말이다.

이를 통해 구구단 중에서 2단 4단 6단 8단만 출력을 할 수 있게 되었다.

 

Posted by 공놀이나하여보세
,

이번 시간에는 함수 호출에 대해서 얘기해 보려고 한다.

 

함수란..

특정한 역할을 해주는 것을 따로 빼 놓은 것이다.

 

예를 들어, 아래와 같이 더하기를 계산해주는 함수가 있다고 하자.

 

def SUM(a, b):
  return (a+b)

c = SUM(10, 20)
print(c)

출력 _> 30

 

SUM 이란 함수이며 인자를 a와 b 두개를 받는다.

SUM(10, 20) 이라고 호출해 주면

SUM 함수는 10과 20을 받아서 10과 20의 합을 돌려준다.

c라는 변수에서 SUM이라는 함수에서 나온 값을 저장하고,

출력을 해주면, 30이란 값이 출력된다.

 

이전에 짰던 구구단을 함수를 이용해 만들어 보자.

몇단을 출력해줄지 입력을 받아서 1단, 2단 5단 등의 내가 원하는 단만 출력해주는 함수이다.

def Dan(i):
  for j in range(1, 10):
    print("%d x %d = %d" % (i, j, i * j), end = "\t")
  print()

Dan(2)
Dan(4)

 

Dan이라는 함수를 만들고, 2 와 4를 입력하면,

아래와 같이 2단과 4단이 출력되는 것을 확인할 수 있다.

2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18

4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36

 

그럼 2단에서 9단까지 출력하려면 어떻게 하면 될까?

def Dan(i):
  for j in range(1, 10):
    print("%d x %d = %d" % (i, j, i * j), end = "\t")
  print()

for i in range(2, 10):
  Dan(i)

 

위와 같이 하면, 우리는 이전에 했던 구구단을 출력할 수 있다.

2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27

4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36

5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45

6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54

7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63

8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72

9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

 

 

Posted by 공놀이나하여보세
,

이전 챕터에서 구구단을 출력해보자고 얘기 했다.

구구단을 출력해보기 위해 우선 알아야 할 것은

문자열과 숫자 같이 출력하기와 2중 반복문이다.

 

일단 문자열과 숫자 같이 출력하기를 해보겠다.

 

(1) print("out: %d" % 1) 를 입력해 보자.

출력 ->   out: 1

이 경우 " " 안에 있는 문자가 출력되지만, %d가 출력이 되지 않고, " " % 뒤에 있는 숫자가 출력된 것을 확인할 수 있다.

 

(2) print("%d x %d = %d" % (2, 1, 2)) 를 입력해 보자

2 x 1 = 2 라고 출력되는 것을 확인할 수 있다.

즉 %d 가 뒤에 있는 2, 1, 2 로 대체 되어 출력된 것을 확인할 수 있다.

 

(3) 이제 변수를 출력해 보자.

for i in range(2, 9):
  print("2 x %d = %d" % (i, 2 * i))

출력 

2 x 1 = 2

2 x 2 = 4

2 x 3 = 6

2 x 4 = 8

2 x 5 = 10

2 x 6 = 12

2 x 7 = 14

2 x 8 = 16

2 x 9 = 18

 

짠!! 2단이 출력된 것을 확인할 수 있다.

파이썬에서 계산한 값까지 같이 출력이 되었다.

 

(4) 2중 반복문을 실행해 보자.

아래와 같이 for 아래에서 또 for 반복문이 들어가면, 

2단부터 9단까지 출력을 할 수 있다.

for i in range(2, 10):
  for j in range(1, 10):
    print("%d x %d = %d" % (i, j, i * j))

 

출력은 너무 길어서 생략한다.

실행해 보면 알겠지만, 2단부터 9단까지 아래로 쭉 내려오니 너무 보기가 어렵다.

그래서 2장에서 배운 띄어 쓰기와 줄바꿈을 이용해 보자.

(5) 2중 반복문

for i in range(2, 10):
  for j in range(1, 10):
    print("%d x %d = %d" % (i, j, i * j), end = "\t")
  print()                                                           # 줄바꿈

여기서 end = " " 이 아니라, end = "\t"라고 써 줬는데, 이것은 띄어쓰기가 아니라 tab으로 정렬해 주라는 명령어이다.

# 뒤에 들어간 글자는 주석으로 소스코드에 영향을 주지 않는다.

출력 ->

2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27

4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36

5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45

6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54

7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63

8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72

9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

짠~~ 예쁘게 출력 되었다.

Posted by 공놀이나하여보세
,

모든 언어의 기본은 반복문이다.

대표적으로 for문과 while문이 있는데,

많은 친구들이 이 쉬운 문법을 이해하지 못해서, 프로그래밍을 포기한다.

심지어 컴퓨터 학과 학생들도 이해를 하지 못해서 포기하는 경우가 많았다.

물론 그 때는 파이썬이 나오기 전이었고, c를 사용하던 때였으니..

 

그럼 가장 간단한 반복문을 실행해 보자

for i in range(1, 6):
  print(i)

i가 1~6의 영역안에서 바뀌는 동안, i의 값을 출력하라는 뜻이다.

1~6 의 영역인데 실제로는 1보다 크거나 같고 6보다 작은 값을 출력하라는 뜻이다.

 

주의: for문 아래에서 반복할 명령어들은 tab 키를 이용해서 안으로 들여쓰기를 해야함을 명심해야 한다.

 

이렇게 5개의 숫자가 나오는 것을 알 수 있다.

i가 1~5 로 바뀌면서 출력된 것이다.

 

하지만 숫자 하나가 나오도 또  줄이 바뀌니 한눈에 보기가 어렵다.

한 줄에 1 2 3 4 5 를 출력해보자.

for i in range(1, 6):
  print(i, end = ' ')

 

end = ' ' 를 넣으니 숫자 출력 뒤에 줄 바뀜이 사라지고, end에 넣어준 공백이 나온 것을 확인할 수 있다.

end에 값을 안 넣으면 '\n' 이라는 줄바뀜이 들어가 있음을 예상할 수 있다.

 

다음 장에서는 아래와 같이 구구단을 출력해 볼 것이다.

2 x 1 = 2     3 x 1 = 3    4 x 1 = 4   ...........  9 x 1 = 9

2 x 2 = 4 . . . . . . .                                             9 x 2 = 18

.

.

2 x 9 = 18 ...                                                       9 x 9 = 81

          

Posted by 공놀이나하여보세
,

모든 언어가 그렇지만, 

hello world를 실행하는 것이 매우 어렵다.

hello world가 출력된다는 것은, 

컴파일러를 설치하고, 필요한 라이브러리가 제대로 설치되었다는 것인데..

요즘은 그래도 많이 좋아지긴 했지만..

여전히 어려운 부분들이 생긴다.

파이썬은 버젼2와 버젼3이 있는데,

파이썬3이 최신이니 파이썬3으로 공부해 보도록 하겠다.

 

쉬운 공부를 위해 파이썬을 설치하지 않을 예정이다.

대신, 구글이 제공하는 멋진 무료 사이트인 Google Colaboratory 를 이용할 것이다.

구글은 tensorflow를 이용할 수 있는 무료 웹서버를 제공하는데, 성능도 매우 좋다.

어느정도 언어가 익술해지고 난 후 원하는 컴파일러를 설치하면 된다.

그건 나중에 하자.

 

1. 우선 아래 주소에 접속하자.

가입이 필요할 수도 있는데, 본인의 구글 아이디로 연결해 주면 된다.

https://colab.research.google.com/notebooks/welcome.ipynb

 

Google Colaboratory

 

colab.research.google.com

 

2. '파일 -> 새 Python 3 노트' 를 누르자

 

3. 아래와 같이 글자를 쓰고 왼쪽 실행 버튼을 누르자.

print("Hello Python World!!")

 

4. 아래와 같이 내가 print한 글자가 화면에 출력되면 성공이다

 

Posted by 공놀이나하여보세
,

출처 : http://josephmr.com/realtime-arduino-sensor-monitoring-with-matplotlib/


import matplotlib.pyplot as plt
import matplotlib.animation as anim
from collections import deque
import random
 
MAX_X = 100 #width of graph
MAX_Y = 1000 #height of graph
 
# intialize line to horizontal line on 0
line = deque([0.0]*MAX_X, maxlen=MAX_X)
 
def update(fn, l2d):
#simulate data from serial within +-5 of last datapoint
dy = random.randint(-5, 5)
#add new point to deque
line.append(line[MAX_X-1]+dy)
# set the l2d to the new line coords
# args are ([x-coords], [y-coords])
l2d.set_data(range(-MAX_X/2, MAX_X/2), line)
 
fig = plt.figure()
# make the axes revolve around [0,0] at the center
# instead of the x-axis being 0 - +100, make it -50 - +50
# ditto for y-axis -512 - +512
a = plt.axes(xlim=(-(MAX_X/2),MAX_X/2), ylim=(-(MAX_Y/2),MAX_Y/2))
# plot an empty line and keep a reference to the line2d instance
l1, = a.plot([], [])
ani = anim.FuncAnimation(fig, update, fargs=(l1,), interval=50)
 
 
plt.show()


'Python' 카테고리의 다른 글

웹서버 만들기  (0) 2015.02.27
(펌)파이썬을 배우는 최고의 방법  (0) 2015.02.10
python 파이썬 문법 공부하기 좋은 사이트  (0) 2015.02.08
Posted by 공놀이나하여보세
,

웹서버 만들기

Python 2015. 2. 27. 23:52

http://www.berrycracker.net/archives/1573

Posted by 공놀이나하여보세
,

chapter 3 문자열, 리스트, 튜플, 맵

1. 문자열

nums = '%s: hi %s'

print nums % ('a','10')


2. 리스트

(1) 리스트는 [ ] 사이에 문자열을 담을 수 있음 c의 배열과 같음

(2) append : 항목 추가하기

(3) del wizard_list[5] : 특정 문자 삭제하기

(4) 리스트 연산

+ : 리스트 두개를 앞 뒤로 붙인다.

* : 리스트를 곱하기 숫자만큼 반복


3. 튜플

(1) 튜플은 ( ) 사이에 문자열이나 숫자를 담을 수 있음 java의 final 배열과 같아서 한번 선언하면 수정할 수 없음


4. 맵

리스트와 튜플처럼 어떤 것들의 집합

dict라고도 알려짐

각각의 항목들은 키와 그에 대응하는 값을 갖는다.

각각의 키와 값을 구분하기 위해서 콜론을 사용하며, 각 키와 값은 홑따옴표로 둘러싸인다.


chapter5. if와 else로 물어보자.

None : 아무런 값이 없는 변수


chapter6. 빙글빙글 돌기

print list(range(10, 20))



Posted by 공놀이나하여보세
,

1. virtualenv 및 virtualenvwrapper 설치

virtualenv : 해당 폴더에 환경 파일이 생김

virtualenv wrapper : 로컬에 환경 파일이 생겨서 wrapper를 사용하는 게 좋음



sudo pip install virtualenv

sudo pip install virtualenvwrapper


*환경 설정

mkdir ~/.python_virtual_envs

 

# 아래 내용을 ~/.bashrc 마지막에 저장한다.

export WORKON_HOME=~/.python_virtual_envs

source /usr/local/bin/virtualenvwrapper.sh # 각종 PATH 등을 설정해줌.


2. 사용 방법

mkvirtualenv STUDY : study라는 환경을 만듬

workon (tab) : 환경이 무엇이 있는지 검색

workon STUDY : study환경 시작

deactivate : 환경 종료


pip freeze > requirements.txt : 환경 설정 저장

pip install -r requirements.txt : 환경 설정 설치


sudo apt-get install python-dev 가 필요할 수도 있음


Posted by 공놀이나하여보세
,
ipython notebook을 몇일 써 본 결과
py파일을 저장하기가 쉽지가 않다.
그래서 간단한 테스트는 ipython으로 하고 py파일은 pycharm으로 개발하기로 했음



Posted by 공놀이나하여보세
,