일시 : 2017.12.28 15:00pm ~ 18:00pm
장소 : 멀티스퀘어 12F
내용 : 파이썬 언어를 본격적으로 배우기 시작.
//
파이썬(Python)
범용, 고급언어
코드 가독성 ↑
-> C 언어보다 적은 코드로 생각 표현 가능
인터프리터 방식의 언어 : 스크립트 형태의 언어들
vs 컴파일 방식(c언어-컴파일로 실행 파일)
파일명.py 실행 시 바이트 코드 파일로 변환
코드의 간결성 - 개발 향상 및 유지보수가 쉬움
객체 지향 - 코드의 재사용성↑, 유지보수 용이
c로 개발된 루틴을 외부 모듈로 사용O
인터프리터(interpreter) : 프로그램을 해석하는 방법 중 하나로 고급언어로 작성된 코드를 한 단계씩 해석하며 실행시킨다.
사람이 이해할 수 있는 고급언어로 작성된 소스코드는 기계가 알아들을 수 있는 기계어로 해석이 되어야 하는데 일반적인 방법으로는 컴파일 과정을 통해 실행하는 방법과, 한 줄 한 줄 해석하여 실행하는 인터프리터 방식이 있다. 인터프리터는 고급 언어를 중간 단계로 먼저 번역 한 다음 실행하기 때문에 컴파일러로 실행하는 것보다는 느리다.
파이썬 프로그래밍
IDLE3 개발 환경보단 토니(thonny)개발환경을 사용해 좀 더 편리하게 코드 편집, 실행, 디버깅이 가능하다.
변수가 셸의 메모리(=RAM, Random Acess Memory, 응용pg의 일시적 로딩, 데이터의 일시적 저장 등에 사용, 휘발성 특징)에 저장되기 때문에 IDLE을 종료하면 사라진다. (새로운 셸을 띄우면 이전에 사용한 변수가 사용 불가)
중요하거나 긴 프로그램은 비휘발성 특징을 지닌 하드디스크나 USB에 저장.
타입 선언X, 세미콜론X => C언어와의 다른 점
input() 함수 : 값 입력받기 ★ 모두 문자열로 취급
예를 들면 a=input()을 하여 a값에 100을 입력받으면 숫자 100이 아닌 문자 100으로 취급
int() 함수 이용해 정수로 변환.
a = int(input()) // input()에서 문자열 입력받고 그 문자열을 int()에서 정수로 변환.
컴파일러 언어(c,java등)에서는 변수를 먼저 선언해야 사용할 수 있지만, 인터프리터 언어(python,javascript등)에서는 변수를 선언하지 않고 바로 사용해도 된다.
함수를 만들 때는 def 함수이름(매개변수) :
프롬프트가 나오고 한 줄씩 입력하는 화면은 대화형 모드, 메모장과 같은 화면을 스크립트 모드
실습
1 계산기 만들기
a=int(input("입력 1 : "))
b=int(input("입력 2 : "))
result =a+b
print(a, "+" , b , "=" ,result)
result=a-b
print(a,"-",b,"=",result)
result=a*b
print(a,"*",b,"=",result)
result=a/b
print(a,"/",b,"=",result)
2 그림판 구현하기
캔버스에서 마우스 왼쪽 클릭한 채로 드래그한 후 드롭하면 선이 그려지도록 하는 코드
마우스 클릭했을 시의 좌표(x1,y1)와 드롭했을 때의 좌표(x2,y2)가 변수로 필요
함수의 매개변수 event는 마우스를 클릭한 순간의 정보를 가지고 있음
canvas.bind(이벤트, 함수이름)에는 캔버스에 지정한 이벤트가 일어나면 수행할 함수이름을 지정
from tkinter import *
## 윈도우 창을 만드는 외부 기능(tkinter라는 라이브러리) 가져오기
## 변수 ##
window = None
canvas = None
x1,y1,x2,y2 = None, None, None, None
## 함수 ##
def mouseClick(event):
global x1,y1,x2,y2
x1=event.x
y1=event.y
## 함수의 매개변수 event는 마우스를 클릭한 순간의 정보(좌표)를 가지고 있음.
def mouseDrop(event):
global x1,y1,x2,y2
x2=event.x
y2=event.y
#이 시점에 선이 그려짐->선 그리기 실행되는 코드 작성해줌
canvas.create_line(x1,y1,x2,y2, width=5, fill="red")
## 메인 코드 ##
window = Tk()
#윈도우가 나오게 해줌
window.title("그림판 비슷한 프로그램")
canvas=Canvas(window, height=300, width=300)
canvas.bind("<Button-1>", mouseClick)
canvas.bind("<ButtonRelease-1>", mouseDrop)
##<Button-1>은 마우스 버튼을 클릭하는 이벤트, mouseClick()함수를 호출
##<ButtonReleas-1>은 마우스 드롭하는 이벤트
canvas.pack()
window.mainloop()
더 나아가 드래그를 하는 코드를 추가해보았다.
from tkinter import *
#변수 선언
window = None
canvas = None
x1, x2, y1, y2=None,None,None,None #선이 그려지는 코드 추가
#함수
def mouseClick(event):
global x1, y1
x1=event.x
y1=event.y
def mouseDrop(event):
global x2, y2
x2=event.x
y2=event.y
#그림을 그리는 코드
canvas.create_line(x1,y1,x2,y2, width=5, fill="red")
#드래그 함수
def mouseMove(event):
global x1, y1
x1=event.x
y1=event.y
canvas.create_line(x1,y1,x1+1,y1+1, width=5, fill="red")
## 메인 코드
window=Tk()
window.title("그림판 비슷한 프로그램")
canvas=Canvas(window, height=500, width=500)
#버튼1왼쪽마우스, 버튼3오른쪽마우스, B1은드래그
canvas.bind("<B1-Motion>", mouseMove)
canvas.pack()
window.mainloop()
'2017 멀티캠퍼스 > Python' 카테고리의 다른 글
[Python] #6 파이썬 반복문 while과 제어문 (0) | 2018.01.03 |
---|---|
[Python] #5 파이썬 반복문 For (0) | 2018.01.03 |
[Python] #4 파이썬 조건문 if (0) | 2018.01.02 |
[Python] #3 파이썬의 연산자 (1) | 2018.01.01 |
[Python] #2 파이썬 변수 (0) | 2018.01.01 |