반응형

(PYTHON)파이썬 람다(lambda) 함수 만들기

 

파이썬에서 함수를 만드는 기본 명령어는 def 문입니다. 하지만 간단한 함수는 lambda를 이용하면 보다 빠르게 만들수 있습니다.

 

곱셉을 리턴하는 함수 vs 람다(lambda)

# def 함수식 곱셈

def 함수(i):
    return i * 3

print(함수(12))	# 12*3이 리턴되서 돌아오고 프린트 됨
# lambda식 곱셈

y = lambda x : x * 3	# y에 12*3이 할당됨

print(y(12))	# y = lambda 12 : 12 * 3을 호출하고 프린트함

 

 

문자열 슬라이싱 함수 vs 람다( lambda)

# 일반 문자열 슬라이싱

text1 = "123_456_789_10"
print(text1[:10])    #좌측부터 10개 출력

text2 = "abc_def_ghi_j"
print(text2[:10])    #좌측부터 10개 출력
# lambda식 문자열 슬라이싱

text1 = "123_456_789_10"
left10 = lambda x : x[:10]	# 람다 정의 : x의 좌측 10개를 left10 변수에 입력
print(left10(text1))	# text1 변수를 아규먼트로 람다 호출

text2 = "abc_def_ghi_j"
print(left10(text2))	# text2 변수를 아규먼트로 람다 호출




원화를 달러로 변환하기 함수 vs 람다(lambda) (1000원 -> 1달러)

# def 함수식 원화 -> 달러 계산 (1000원-> 1달러)

def exchange(won):
    return won * 0.001

print(exchange(1000))	# 1출력
print(exchange(1500))	# 1.5출력
print(exchange(2500))	# 2.5출력
# lambda식 원화 -> 달러 계산

exchange = lambda won : won * 0.001

print(exchange(1000))	# 1출력
print(exchange(1500))	# 1.5출력
print(exchange(2500))	# 2.5출력

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

(PYTHON)파이썬 tkinter 윈도우 프로그램 - 창 메뉴, 함수호출, 그리기

 

from tkinter import *

윈도우 = Tk()

메인메뉴 = Menu(윈도우) # 메인메뉴 변수에 Menu설정(윈도우창생성)
윈도우.config(menu=메인메뉴)

파일메뉴 = Menu(메인메뉴)

메인메뉴.add_cascade(label="파일", menu=파일메뉴) # .add_cascade 상위메뉴와 하위 메뉴 연결 (상위=파일메뉴 "파일")
파일메뉴.add_command(label="열기")    # .add_command 기본 메뉴 항목생성
파일메뉴.add_separator()    # .add_separator() 구분선 생성
파일메뉴.add_command(label="종료")

window.mainloop()

 

from tkinter import *
from tkinter import messagebox	# 메세지박스 사용

# 함수 선언부
def func_open() :   # func_open 함수 선언
    messagebox.showinfo("메뉴선택", "열기 메뉴를 선택함")   # 메세지박스 띄우기

def func_exit() :   # func_exit 함수 선언
    window.quit()
    window.destroy()    # 창 종료

# 메인 코드
window = Tk()

mainMenu = Menu(window)
window.config(menu=mainMenu)

fileMenu = Menu(mainMenu)
mainMenu.add_cascade(label="파일", menu=fileMenu)
fileMenu.add_command(label="열기", command=func_open) # 선택시 command 작동. func_open 실행
fileMenu.add_separator()
fileMenu.add_command(label="종료", command=func_exit) # func_exit 실행

window.mainloop()

파일 - 열기 클릭 시 함수 호출

 

from tkinter import *
from tkinter.simpledialog import *  # tkinter.simpledialog 사용

# 함수 정의 부분
window = Tk()
window.title("본체 창")    # window 변수의 창 이름을 "본체 창"으로 설정
window.geometry("400x100")

label1 = Label(window, text="라벨1의 다이얼로그 입력전 값") # label1의 텍스트를 입력
label1.pack()

value = askinteger("askinteger 창", "!!!!!!!!주사위 숫자(1~6)을 입력하세요!!!!!!!!", minvalue=1, maxvalue=6)
# 변수 value에 askinteger로 숫자를 입력받는 다이얼로그 설정(창제목, 창내용, 최소값, 최대값)

label1.configure(text=str(value))   # label1의 텍스트를 변경(텍스트값은 문자화(value변수로 입력받은 값)

window.mainloop()

숫자를 넣고 ok를 누르면 "본체 창" 라벨1의 텍스트가 변경 됨

 

from tkinter import *
from tkinter.simpledialog import *

# 함수 정의 부분
window = Tk()

canvas = Canvas(window, height=300, width=300) # 변수 canvas에 캔버스를 윈도창에 부착. 300x300크기)
canvas.pack()

canvas.create_line([[0,0], [90,65], [150,20]], fill="pink", width=4)    # .create_line 선을 그림. 핑크색으로 두깨는 4
canvas.create_polygon([[100,100], [100,150], [150,150], [150,100]], fill="orange")  # .create_polygon 면을 그림. 오랜지색으로
canvas.create_text([200, 200], text="캔버스에 텍스트 쓰기", font=("굴림", 15)) # .create_text 글자를 적음. 굴림체 15폰트로

window.mainloop()

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

(PYTHON)파이썬 tkinter 윈도우 프로그램 - 창 띄우기, 라벨, 버튼, 에디트박스, 리스트박스

from tkinter import *	# tkinter 임포트

윈도우 = Tk()	# 윈도우 변수에 Tk() 셋

# 이 부분에서 화면을 구성하고 처리

윈도우.mainloop()	#윈도우 변수의 .mainloop() 호출해서 창띄우기

 

from tkinter import *

window = Tk()
window.title("윈도창 연습")	# 윈도우창 이름
window.geometry("400x100")	#크기 가로x세로
window.resizable(width=FALSE, height=FALSE)	#리사이즈 가로세로 금지

window.mainloop()

 

from tkinter import *
window = Tk()

라벨1 = Label(window, text="라벨텍스트1")	# 라벨1 변수에 Label() 생성. window 변수에 텍스트표현.
라벨2 = Label(window, text="라벨텍스트2", font=("궁서체", 30), fg="blue")	# 폰트 궁서체 30크기. 글자색 블루.
라벨3 = Label(window, text="라벨텍스트3", bg="magenta", width=20, height=5, anchor=SE)	# 백그라운드 마젠타. anchor 사우스이스트(남동)

라벨1.pack()	# 라벨1을 표현
라벨2.pack()
라벨3.pack()

window.mainloop()

 

from tkinter import *
from tkinter import messagebox	# 메세지박스 추가

def clickButton() :	#함수 선언 clickButton()
    messagebox.showinfo('메세지박스 제목', '메세지박스 내용입니다.')	# 함수호출시 메세지박스 보여주기(박스제목, 박스내용)

window = Tk()
window.geometry("200x200")

버튼1 = Button(window, text="요기 눌러요", fg="red", bg="yellow", command=clickButton)	#버튼1 변수에 버튼 생성. 커맨드(클릭시)=clickButton 함수 호출
버튼1.pack(expand = 1)	#버튼1.채워넣기(확장두께=1)

window.mainloop()

 

from tkinter import *
window = Tk()   #window 변수에 창띄우는 함수 Tk() 설정
window.geometry("400x100")	#크기 가로x세로

버튼1 = Button(window, text="버튼1")    # 버튼1 변수에 버튼 설정(윈도우변수에, 텍스트 넣어서)
버튼2 = Button(window, text="버튼2")
버튼3 = Button(window, text="버튼3")

버튼1.pack(side=LEFT) #버튼.채워넣기(왼쪽에)
버튼2.pack(side=LEFT)
버튼3.pack(side=RIGHT)  # 오른쪽정렬. 채워넣을때 정렬 pack(side=위치)

window.mainloop()

 

from tkinter import *
window = Tk()
window.geometry("400x100")	#크기 가로x세로

btnList = [None] * 3    # btnList 빈리스트 3개 공간 생성

for i in range(0,3) :   # 변수 i는 0~2까지 실행
    btnList[i] = Button(window, text="버튼"+str(i+1))	# i는 0,1,2로 돌지만 버튼 텍스트는 +1 해서 1,2,3으로 쓰여짐

for btn in btnList :    # 변수btn에 btnList[0,1,2] 설정
    btn.pack(side=RIGHT)

window.mainloop()

 

from tkinter import *

window = Tk()
window.geometry("200x200")

upFrame = Frame(window) #프레임 upFrame 변수에 셋
upFrame.pack()  # 채워넣기

downFrame = Frame(window)   #프레인 downFrame 변수에 셋
downFrame.pack()    # 채워넣기

editBox = Entry(upFrame, width = 10, bg = 'pink')   #editBox변수에 한줄텍스트박스 Entry설정(upFrame을, 가로10, 배경색핑크로)
editBox.pack(padx = 10, pady = 10)  # 채워넣기(여백)

listbox = Listbox(downFrame, bg = 'orange') # listbox변수에 Listbox설정(downFrame에, 배경색 오렌지로)
listbox.pack()  # 채워넣기

listbox.insert(END, "인서트텍스트1")  # listbox에 값입력
listbox.insert(END, "인서트텍스트2")

window.mainloop()

 

Tkinter 위젯

위젯명 설명
Button 단순한 버튼.
Label 텍스트 혹은 이미지 표시.
CheckButton 체크박스.
Entry 단순한 한 라인 텍스트 박스.
ListBox 리스트 박스.
RadioButton 옵션버튼.
Message Label과 비슷하게 텍스트 표시하지만,
Label과 다르게 자동 래핑 기능이 있음.
Scale 슬라이스 바.
Scrollbar 스크롤 바.
Text 멀티라인 텍스트박스로서 일부 Rich Text 기능 제공.
Menu 메뉴 Pane.
Menubutton 메뉴 버튼.
Toplevel 새 윈도우를 생성할 때 사용.
Tk()는 윈도우를 자동으로 생성하지만 추가로 새 윈도우 혹은 다이얼 로그를 만들 경우 Toplevel을 사용.
Frame 컨테이너 위젯. 다른 위젯들을 그룹화할 때 사용.
Canvas 그래프와 점들로 그림을 그릴 수 있으며, 커스텀 위젯을 만드는데 사용될 수 있음

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형