검색결과 리스트
기초/Python에 해당되는 글 8건
- 2018.09.11 [파이썬 GUI 프로그래밍] 상단바
- 2018.09.10 [파이썬 GUI 프로그래밍] 처음 시작
- 2018.08.14 [파이썬 기초] 입력과 출력
- 2018.08.10 [파이썬 기초] 객체지향, 클래스
- 2018.08.08 [기초] 지역변수, Global문, DocString
- 2018.08.07 [기초] 함수
- 2018.08.06 [Python 기초] for문, break문, continue문
- 2018.08.05 [파이썬 기초] 흐름제어 IF문
글
[파이썬 GUI 프로그래밍] 상단바
# 사용방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from tkinter import * class Window(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.master = master self.init_window() def init_window(self): self.master.title("GUI") self.pack(fill=BOTH, expand=1) # creating a menu instance menu = Menu(self.master) self.master.config(menu=menu) # create the file object file = Menu(menu) file.add_command(label="Exit", command=self.client_exit) # added "file" to our menu menu.add_cascade(label="File", menu=file) # create the file object edit = Menu(menu) # command it runs on event is client_exit edit.add_command(label="Undo") # added "file" to our menu menu.add_cascade(label="Edit", menu=edit) def client_exit(selfself): exit() # you can later have windows within windows root = Tk() root.geometry("400x300") # creation of an instance app = Window(root) #mainloop root.mainloop() | cs |
[실행화면]
15번째 줄 : 메뉴를 사용하기 위해서 인스턴스를 생성해주는 함수다.
19번째 줄 : 윈도우 창.config(menu=메뉴 이름)
을 통하여 해당 윈도우 창
에 메뉴
를 등록해준다.
21번, 30번째 줄 : 메뉴 항목에서 항목 안에서의 메뉴를 또 추가하게 된다.
24번, 33번째 줄 : 메뉴의 이름을 지정해주고, 추가를 해준다.
출처 : https://076923.github.io/posts/Python-tkinter-8/
'기초 > Python' 카테고리의 다른 글
[파이썬 GUI 프로그래밍] 처음 시작 (0) | 2018.09.10 |
---|---|
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
글
[파이썬 GUI 프로그래밍] 처음 시작
[파이썬 GUI 프로그래밍]
시작하는 방법
Qt4 설치
1. Tkinter 소개
Tkinter는 Tcl/Tk에 대한 파이썬 Wrapper로서 Tcl/Tk를 파이썬에 사용할 수 있도록 한 Lightweight GUI 모듈이다. Tcl은 Tool Command Language의 약자로서 일종의 프로그래밍 언어이며, Tk는 크로스 플랫폼에 사용되는 일종의 GUI 툴킷이다. Tkinter는 타 GUI 프레임워크나 툴킷에 비해 지원되는 위젯들이 부족하고 UI도 그렇게 예쁘지 않다는 단점이 있지만, Python 설치시 기본적으로 내장되어 있는 파이썬 표준 라이브러리이기 때문에 쉽고 간단한 GUI 프로그램을 만들 때 활용
기본
1 2 3 4 5 6 7 8 9 10 11 12 | from tkinter import * class Window(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.master = master root = Tk() app = Window(root) root.mainloop() | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | from tkinter import * class Window(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.master = master self.init_window() def init_window(self): self.master.title("GUI") self.pack(fill=BOTH, expand=1) quitButton = Button(self, text="Exit", command=self.client_exit) quitButton.place(x=100, y=100) # client function def client_exit(self): exit() root = Tk() # window size root.geometry("400x300") app = Window(root) root.mainloop() | cs |
[실행화면]
http://pythonstudy.xyz/python/article/120-Tkinter-%EC%86%8C%EA%B0%9C
'기초 > Python' 카테고리의 다른 글
[파이썬 GUI 프로그래밍] 상단바 (0) | 2018.09.11 |
---|---|
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
글
[파이썬 기초] 입력과 출력
프로그램을 만들다 보면 입력을 해야하는 경우가 있고, 출력을 해야하는 경우가 있다. 그래서 입력은 input()함수를 사용하고, 출력은 print() 문을 사용한다.
[사용자로부터 입력받기]
1 2 3 4 5 6 7 8 9 10 11 |
def reverse(text): return text[::-1]
def is_palindrome(text): return text == reverse(text)
something = input("Enter text: ") if is_palindrome(something): print("Yes, it is a palindrome") else: print("No, it is not a palindrome") |
출력화면
- 문자열을 뒤집기 위해서는 슬라이스를 사용한다. 열거형의 슬라이스 기능을 이용하여 seq[a:b] 와 같은 코드를 통해 a부터 b까지 문자열을 얻어올 수 있다. 슬라이스 숫자에 세 번쨰 인수를 넘겨주어 슬라이스 스텝을 지정해줄 수 있다.
- input() 함수는 인수로 넘겨받은 문자열을 받아들인다. 사용자가 무언가를 입력하고 엔터 키를 누를 때까지 기다려준다.
[파일 입출력 예제]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 파일 입/출력 poem = '''\ Programming is fun When the work is done if you wanna make your work also fun: use Python! '''
# Open for 'w'riting f = open('poem.txt', 'w') # Write text to file f.write(poem) # Close the file f.close()
# If no mode is specified, # 'r'ead mode is assumed by default f = open('poem.txt') while True: # (무한반복) line = f.readline() # 파일의 내용을 읽어들인다. # Zero length indicates EOF if len(line) == 0: break # The 'line' already has a newline # at the end of each line print(line) # close the file f.close() |
- 결과화면
- 소스코드 안에 입력한 내용이 같은 폴더 안에 'poem.txt'가 새로 생성이 되고, 안의 내용도 추가한 내용대로 추가되어있다.
[Pickle]
: 이것은 어떤 파이썬 객체이든지 파일로 저장해 두었다가 나중에 불러와서 사용할 수 있게 하는 모듈이다. 이것은 객체를 영구히 저장해 둔다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import pickle
# The name of the file where we will store the object shoplistfile = 'shoplist.data' # The list of things to buy shoplist = ['apple', 'mango', 'carrot']
# Write to the file f = open(shoplistfile, 'wb') # Dump the object to a file pickle.dump(shoplist, f) f.close()
# Destroy the shoplist variable del shoplist
# Read back from the storage f = open(shoplistfile, 'rb') # Load the oebject from the file storedlist = pickle.load(f) print(storedlist)
|
- 결과화면
https://www.programcreek.com/python/example/191/pickle.dump
- 파일에 객체를 저장하기 위해서 먼저 Open 문을 이용하여 쓰기/바이너리 모드로 파일을 열어준 후 pickle 모듈의 dump 함수를 호출하여 준다. 이 과정을 피클링(pickling)이라고 한다.
- pickle 모듈의 load 함수를 이용하여 파일에 저장된 객체를 불러온다. 이 과정을 언피클링(unpickling)이라고 한다.
'기초 > Python' 카테고리의 다른 글
[파이썬 GUI 프로그래밍] 상단바 (0) | 2018.09.11 |
---|---|
[파이썬 GUI 프로그래밍] 처음 시작 (0) | 2018.09.10 |
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
글
[파이썬 기초] 객체지향, 클래스
클래스란?
파이썬은 객체지향 프로그래밍(OOP, Object Oriented Programming)을 기본적으로 지원하고 있다. 파이썬에서 객체지향 프로그래밍의 기본 단위인 클래스를 만들기 위해서는 아래와 같이 "class 클래스명" 을 사용하여 정의한다.
2. 클래스 멤버
클래스는 메서드(method), 속성(property), 클래스 변수(class variable), 인스턴스 변수(instance variable), 초기자(initializer), 소멸자(destructor) 등의 여러 맴버들을 가질 수 있는데, 크게 나누면 데이타를 표현하는 필드와 행위를 표현하는 메서드로 구분
1 2 3 4 5 6 |
class Person: pass # An empty block
p = Person() print(p)
|
메소드
: 클래스/객체는 메소드를 가질 수 있으며 메소드는 추가된 self 변수를 제외하고 함수와 똑같다.
1 2 3 4 5 6 7 8 |
# Class Example class Person: def say_hi(self): print("Hello, how are you?")
p = Person() p.say_hi()
|
[결과화면]
init 메소드
: init 메소드는 클래스가 인스턴스화 될 때 호출된다. 따라서 이 메소드는 객체가 생성될 때 여러가지 초기화 명령들이 필요할 때 유용하게 사용된다.
1 2 3 4 5 6 7 8 |
class Person: def __init__(self, name): self.name = name def say_hi(self): print('Hello, my name is', self.name)
p = Person('Swaroop') p.say_hi() |
[결과화면]
매개 변수 name을 넘겨받는 init 메소드를 정의한다.(물론 self를 포함하여 정의한다.) 그리고 'name'이라는 필드를 생성한다. 이 때 두 개의 다른 변수의 이름으로 'name'이라는 동일한 이름을 지정해 주었다. self라 칭해지는 객체에 내장된 것으로써 self.name의 형태로 사용되며 또 하나인 name 은 지역변수를 의미하는 것으로 사용되기 떄문이다.
클래스 변수와 객체변수
: 필드는 일반적인 변수와 다를 것이 없으나 딱 한 가지, 그 클래스 혹은 객체의 네임스페이스에 묶여 있다는 점이 있다.
클래스 변수는 공유되고, 객체는 클래스로부터 생성된 각각의 객체/인스턴스에 속해 있는 변수다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
class Robot: """Represents a robot, with a name."""
population = 0
def __init__(self, name): """Initializes the data.""" self.name = name print("(Initializing {})".format(self.name))
# When this person is created, the robot # adds to the population Robot.population += 1
def die(self): """I am dying.""" print("{} is being destroyed!".format(self.name))
Robot.population -= 1
if Robot.population == 0: print("{} was last one.".format(self.name)) else: print("There are still {:d} robots working.".format(Robot.population))
def say_hi(self): """Greeting by the robot.""" print("Greetings, my masters call me {}".format(self.name))
@classmethod def how_many(cls): """Prints the current population.""" print("We have {:d} robots".format(cls.population))
droid1 = Robot("R2-D2") droid1.say_hi() Robot.how_many()
droid2 = Robot('C-3P0') droid2.say_hi() Robot.how_many()
print('\nRobots can do some work here.\n')
print("Robots have finished their work. So let's destory them.") droid1.die() droid2.die()
Robot.how_many() |
[결과화면]
파이썬은 소스코드를 입력할 때 들여쓰기나 내어쓰기를 잘 구분해서 사용해야 한다.
파이썬의 모든 함수나 객체들은 외부에 공개되어 있지만 클래스나 객체에 __privatevar와 같이 앞에 '__'를 붙여주게 된다면 숨기게 된다.
'기초 > Python' 카테고리의 다른 글
[파이썬 GUI 프로그래밍] 처음 시작 (0) | 2018.09.10 |
---|---|
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
[Python 기초] for문, break문, continue문 (0) | 2018.08.06 |
글
[기초] 지역변수, Global문, DocString
[지역변수]
: 함수 밖에 있는 같은 이름의 변수들과 함수 안에 있는 변수들과는 서로 연관이 없다. 함수 안에 있는 변수들을 함수의 지역(local) 변수라고 하며, 그 범위를 스코프(scope)라고 한다.
1 2 3 4 5 6 7 8 9 10 |
# 지역변수 x = 50
def func(x): print('x is ', x) x = 2 print('Chagned local x to', x)
func(x) print('x is still', x) |
[결과화면]
x is 50
Chagned local x to 2
x is still 50
[global문]
함수나 클래스 내부에서 상위 블록에서 선언된 변수의 값을 변경하고 싶을 경우, 파이썬에게 이 변수를 앞으로 지역 변수가 아닌 전역(global) 변수로 사용할 것임을 알려 주어야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# global문(전역변수) x = 50
def func(): global x
print('x is', x) # 이때는 위에 선언한 x의 값을 읽어서 50이 출력이 된다. x = 2 print('Changed global x to', x)
func() print('Value of x is', x) # 이건 func() 함수 안에서 x의 값이 변경이 되었으므로 # 변경되어서 출력이 된다. |
- 결과화면
[DocString]
: 설명(Documentation) 문자열(String) 이라고 불리우는 짧게 줄여서 DocString라 불리우는 편리한 기능을 가지고 있다. DocString은 여러분이 만든 프로그램을 알아보기 쉽게 해주고, 또 후에 프로그램에 대한 설명서를 작성할 때 유용하게 사용될 수 있는 중요한 도구다.
- 동작원리 함수에 포함된 첫 논리적 명령행에 적어둔 문자열은 함수의 DocString이라고 불리우는 것이다. DocString은 모듈과 클래스에도 똑같이 적용된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def print_max(x, y): '''Prints the maximum of two numbers. The two values must be integers.''' x = int(x) y = int(y)
if x > y: print(x, 'is maximum') else: print(y, 'is maximum')
print(print_max.__doc__) |
- 결과화면
'기초 > Python' 카테고리의 다른 글
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
---|---|
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 함수 (0) | 2018.08.07 |
[Python 기초] for문, break문, continue문 (0) | 2018.08.06 |
[파이썬 기초] 흐름제어 IF문 (0) | 2018.08.05 |
글
[기초] 함수
복합적인 기능을 사용하기 위해서 편하게 함수로 선언을 하고, 필요할 때 마다 호출해서 불러와서 쓰는 게 함수다.
파이썬에서는 함수를 def로 선언을 하고, def로 선언된 문에 필요한 기능을 넣으면 된다. 형식은 아래와 같다.
def 함수명(입력파라미터):
문장1
문장2
[return 리턴값]
그래서 간단한 예제 코드를 짜보자.
1 2 3 4 5 6 | # 함수 예제1 def say_hello(): print("Hello World") say_hello() say_hello() |
- 함수는 한번을 호출하든 두번을 호출하든 똑같은 코드가 반복되어 실행됨으로
똑같은 화면을 출력할 수 있다.
- 그리고 함수는 저렇게 보이는 화면 말고도 매개변수를 이용해서 함수 안쪽으로 값을
넘겨줘서 함수 안에서는 밖에서 받아온 변수의 값으로 실행이 되어져 결과값을 보여준다.
- 함수를 정의할 때 주어진 이름을 매개 변수라고 하고, 함수에 넘겨준 값을 인자라고
한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #함수 예제2 def print_max(a,b): if a > b: print(a, "is maximum") elif a == b: print(a, "is equal to", b) else: print(b, "is maximum") print_max(3, 4) x = 5 y = 10 print(x, y) |
4 is maximum
10 is maximum
named 매개변수
: 함수를 호출할 때 보통 함수에 정의된 대로 입력 파라미터를 순서대로 전달한다. 이러한 순서에 의한 전달 방식 외에 또 다른 호출 방식으로 "파라미터명=파라미터값"과 같은 형식으로 파라미터를 전달할 수도 있는데, 이를 Named Parameter라 부른다.
1 2 3 4 5 | # named 매개변수 def my(name, age, score): print(name, age, score) my(age=20, name="ina", score=88) |
[결과화면]
ina 20 88
가변길이 인자
: 함수의 입력 값들 중 갯수를 미리 알 수 없거나, 0부터 N개의 인자를 받아들이도록 하고 싶다면 가변길이 인자 앞에 *를 붙여 가변길이임을 표시한다.
1 2 3 4 5 6 7 8 9 10 11 | def sub(*numbers): sum = 0 for n in numbers: sum += n return sum t = sub(1, 2) print(t) t = sub(1, 5, 2, 6) print(t) |
[결과화면]
3
14
리턴값
: 함수로부터 호출자로 리턴하기 위해서는 return 문을 사용한다. return문은 단독으로 쓰이면 아무 값을 호출자에게 전달하지 않으며, 'return 리턴값'처럼 쓰이면, 값을 호출자에게 전달한다.
1 2 3 4 5 6 7 8 9 10 11 | def calc(*num): cnt = 0 tot = 0 for n in num: cnt += 1 tot += n return cnt, tot cnt, sum = calc(7, 9, 10, 11, 15) print(cnt, sum) |
'기초 > Python' 카테고리의 다른 글
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
---|---|
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[Python 기초] for문, break문, continue문 (0) | 2018.08.06 |
[파이썬 기초] 흐름제어 IF문 (0) | 2018.08.05 |
글
[Python 기초] for문, break문, continue문
[for문]
반복문 종류 중에서 하나로 쓰여지는 for문이다. for ..in 문은 객체의 열거형(Sequence)을 따라서 반복하여 실행할 때 사용되는 파이썬이 내장된 또 하나의
반복문이다.
for i in range(1, 5):
print(i)
else:
print('The for loop is over')
위의 형식을 가지고 있다. while문 같은 경우엔 조건이 주어진 한에서 돌아간다면
for문은 시작점과 끝점을 정할 수 있다.
for문 예제1
1 2 3 4 | animals = [땅다람쥐, 바다코끼리, 스컹크, 아나콘다, 코알라, 하이에나, 바다소] for animal in animals: print(animal) |
for문 예제2
1 2 3 | for j in range(2, 10): for i in range(1, 10): print('{}x{}={}'.format(j, i, j * i)) |
1 2 | for i in range(1, 10): print('{}x{}={}'.format(2, i, 2 * 1)) |
[break문]
: break문은 루프 문을 강제로 빠져나올 때, 즉 아직 루프 조건이 'False'가 되지 않았거나 열거형의 끝까지 루프가 도달하지 않았을 경우 루프 문의 실행을 강제로 정지시키고 싶을 떄 사용된다.
break문 예제
1 2 3 4 5 6 7 | while True: s = input('Enter something : ') if s == 'quit': break print('Length of the string is', len(s)) print('Done') |
실행을 시키면 입력된 값이 'quit'이란 문자열이 되어야지 for문을 빠져나오는 프로그램이다. 그래서 quit을 입력을 안하면 게속 무한 루프에 빠지게 되는 거다.
[continue문]
: continue 문은 현재 실행중인 루프 블록의 나머지 명령문들을 실행하지 않고 곧바로 다음 루프로 넘어가도록 한다.
continue문 예제
1 2 3 4 5 6 7 8 9 10 11 12 | while True: s = input('Enter something : ') if s == 'quit': break if len(s) < 3: print('Too small') continue print('Input is of sufficient Length') |
'기초 > Python' 카테고리의 다른 글
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
---|---|
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
[파이썬 기초] 흐름제어 IF문 (0) | 2018.08.05 |
글
[파이썬 기초] 흐름제어 IF문
If문
if문은 조건을 판별할 때 사용이 된다. if(만약) 조건이 참이라면, _if 블록_의 명령문을 실행하며 else (아니면) _else 블록_의 명령문을 실행합니다. 이 때 else 조건절은 생략이 가능하다.
if 조건문:
~~~~
elif 조건문:
~~~~
else:
~~~
위의 형식을 가진다.
1 2 3 4 5 6 7 8 9 | guess = int(input()) if guess == 1: print('Guess is %d\n', guess) elif guess == 2: print('Guess is %d\n', guess) else: print('Guess is Not value!\n') |
1 2 3 4 5 6 7 8 9 10 | guess = 'pizza' if guess == 'hambuger': print('Guess is hambeguer!') elif guess == 'pizza': print('Guess is pizza') else: print('Guess is not food') print('done') |
사용예제 2
1 2 3 4 5 6 7 8 9 10 11 | guess = int(input()) if guess == 1: print('guess is ', guess) elif guess == 2: print('guess is ', guess) elif guess == 3: print('guess is ', guess) elif guess == 4: print('guess is ', guess) |
'기초 > Python' 카테고리의 다른 글
[파이썬 기초] 입력과 출력 (0) | 2018.08.14 |
---|---|
[파이썬 기초] 객체지향, 클래스 (0) | 2018.08.10 |
[기초] 지역변수, Global문, DocString (0) | 2018.08.08 |
[기초] 함수 (0) | 2018.08.07 |
[Python 기초] for문, break문, continue문 (0) | 2018.08.06 |