다음주는 크롤링할 것이다.
1차원 리스트
aa = [10,20,30]
aa = [[]
]
ch07의 ex5부터 시작함.
ex6
# 튜플
tt1 = (10,20,30,40)
print(tt1[0])
print(tt1[1])
print(tt1[2])
print(tt1[3])
print(tt1[1:3]) # (20, 30)
print(tt1[1:]) # (20, 30, 40)
print(tt1[:3]) # (10, 20, 30)
tt2 = ('A','B')
print(tt1 + tt2) # (10, 20, 30, 40, 'A', 'B')
print(tt2 * 3) # ('A', 'B', 'A', 'B', 'A', 'B')
tt3 = ((1,2,3),
(4,5,6),
(7,8,9))
for i in tt3:
print(i)
# (1, 2, 3)
# (4, 5, 6)
# (7, 8, 9)
# 튜플 => 리스트
myTuple = (10,20,30)
myList = list(myTuple)
myList.append(40)
for i in myList:
print( i)
myTuple = tuple(myList)
for i in myList:
print(i)
# 10
# 20
# 30
# 40
ex7
# 딕셔너리 : key와 value 쌍으로 구성
dic1 = {1:'a', 2:'b', 3:'c'}
print(dic1)
# {1: 'a', 2: 'b', 3: 'c'}
student1 = {'학번':1000, '이름':'홍길동','학과':'컴퓨터학과'}
print(student1)
# {'학번': 1000, '이름': '홍길동', '학과': '컴퓨터학과'}
# 타입이 일치하지 않아도 잘 출력이 된다.
student1['연락처'] = '010-2222-3333'
print(student1)
# {'학번': 1000, '이름': '홍길동', '학과': '컴퓨터학과', '연락처': '010-2222-3333'}
# 수정
student1['학과'] = '파이썬학과'
print(student1)
# {'학번': 1000, '이름': '홍길동', '학과': '파이썬학과', '연락처': '010-2222-3333'} 수정
# 삭제
del(student1['학과'])
print(student1)
# {'학번': 1000, '이름': '홍길동', '연락처': '010-2222-3333'}
# 찾기
print(student1.get('학과'))
# none
print(student1.get('이름'))
# 홍길동
print(student1.get('홍길동'))
# key 값을 찾아야함 => none
# key값 리턴하기
print(student1.keys())
:사이에 공백이 있으면 안된다
ex8
singer={}
singer["이름"] = "트와이스"
singer['구성원수'] = 9
singer['데뷔'] = '서바이벌 식스틴'
singer['대표곡'] = 'SIGNAL'
for k in singer.keys() :
print("%s --> %s"%(k, singer[k]))
# 이름 --> 트와이스
# 구성원수 --> 9
# 데뷔 --> 서바이벌 식스틴
# 대표곡 --> SIGNAL
ex9
import operator
trainDic, trainList = {}, []
# 딕셔너리, 리스트
trainDic = {'Thomas':'토마스', 'Edward':'에드워드', 'Henry':'헨리', 'Gothen':'고든', 'James':'제임스'}
print(trainDic)
# {'Thomas': '토마스', 'Edward': '에드워드', 'Henry': '헨리', 'Gothen': '고든', 'James': '제임스'}
trainList = sorted(trainDic.items(), key=operator.itemgetter(0))
print(trainList)
# [('Edward', '에드워드'), ('Gothen', '고든'), ('Henry', '헨리'), ('James', '제임스'), ('Thomas', '토마스')]
trainList = sorted(trainDic.items(), key=operator.itemgetter(1))
print(trainList)
# [('Gothen', '고든'), ('Edward', '에드워드'), ('James', '제임스'), ('Thomas', '토마스'), ('Henry', '헨리')]
# 음식을 치면 궁합 음식을 출력해준다
foods = {"떡볶이":"오뎅",
"짜장면":"단무지",
"라면":"김치",
"피자":"피클",
"맥주":"땅콩",
"치킨":"치킨무",
"삼겹살":"상추" };
# key값을 list로 변환해 출력
while True:
myFood = input(str(list(foods.keys())) + "중 좋아하는 음식은?")
# ['떡볶이', '짜장면', '라면', '피자', '맥주', '치킨', '삼겹살']중 좋아하는 음식은?
if myFood in foods:
print("<%s> 궁합 음식은 <%s>입니다." %(myFood, foods.get(myFood)))
elif myFood == "끝":
break
else:
print("그런 음식이 없습니다. 확인해보세요")
'''
filename : ex3.py
author : JYR
date : 2022.11.28
'''
# 실제 현직에서 추가,수정,삭제한 사람 위에 처럼 남겨놔야한다
ss = input('날짜(연/월/일) 입력 ==> ')
ssList = ss.split('/')
print('입력한 날짜의 10년 후 ==> ', end='')
print(str(int(ssList[0])+10)+'년', end='')
print(ssList[1] + '월',end='')
print(ssList[2] + '일',end='')
# 날짜(연/월/일) 입력 ==> 22/11/28
# 입력한 날짜의 10년 후 ==> 32년11월28일
ex10
import turtle
import random
# 거북이로 뭔가 만들기
#전역변수 선언
myTurtle, tx, ty, tColor, tSize, tShape = [None]*6
# print(myTurtle)
shapeList = []
playerTurtle = []
swidth, sheight = 500,500
#메인 코드
if __name__ == '__main__':
turtle.title("거북 리스트 활용"),
turtle.setup(width=swidth+50, height=sheight+50)
turtle.screensize(swidth,sheight)
shapeList= turtle.getshapes()
# print(shapeList)
# ['arrow', 'blank', 'circle', 'classic', 'square', 'triangle', 'turtle']
for i in range(1,100):
random.shuffle(shapeList)
myTurtle = turtle.Turtle(shapeList[0])
tx = random.randrange(-swidth/2, swidth/2)
ty = random.randrange(-sheight/2, sheight/2)
r = random.random(); g=random.random(); b=random.random();
tSize = random.randrange(1,3)
playerTurtle.append([myTurtle,tx,ty,tSize,r,g,b])
# print(playerTurtle)
# 리스트 100개 생성됨
for tList in playerTurtle:
myTurtle = tList[0]
myTurtle.color(tList[4],tList[5],tList[6])
myTurtle.pencolor((tList[4],tList[5],tList[6]))
myTurtle.turtlesize(tList[3])
myTurtle.goto(tList[1],tList[2])
turtle.done()
ch08
ex1
ss = '파이썬 짱'
sslen = len(ss)
for i in range(0,sslen):
print(ss[i] + '$', end='')
# 파$이$썬$ $짱$
'''
title : 거북 글자 쓰기
filename : ex4.py
author : JYR
date : 22.11.28
'''
import turtle
import random
from tkinter.simpledialog import *
# 전역변수
inStr = ''
swidth, sheight = 300,300
tx, ty ,fontSize= [0]*3
turtle.title('거북 글자 쓰기')
turtle.shape('turtle')
turtle.setup(width=swidth+50, height=sheight+50)
turtle.screensize(swidth,sheight)
# turtle.pendown()
turtle.penup()
inStr = askstring('문자열입력', '거북이 쓸 문자열을 입력')
for ch in inStr:
tx = random.randrange(-swidth/2, swidth/2)
ty = random.randrange(-swidth/2, swidth/2)
r = random.random()
g = random.random()
b = random.random()
txtSize = random.randrange(10,50)
turtle.goto(tx,ty)
turtle.pencolor((r,g,b))
turtle.write(ch, font=('맑은고딕', txtSize, 'bold'))
turtle.done()
# 여러줄이면 세미콜론이 있어야 한다
'''
title : 거북이 나선모양 글자쓰기
'''
import turtle
import random
import math
from tkinter.simpledialog import *
# 전역변수
inStr = ''
swidth, sheight = 500,500
tx, ty, txtSize = [0]*3
turtle.title('거북 글자 쓰기')
turtle.shape('turtle')
turtle.setup(width=swidth+50, height=sheight+50)
turtle.screensize(swidth,sheight)
turtle.penup()
inStr = askstring('문자열입력', '거북이 쓸 문자열을 입력')
dist = 200
angle = 0
value = int(360*2 / len(inStr))
for ch in inStr:
rad = 3.141592 * angle / 180
tx = dist * math.cos(rad)
ty = dist * math.sin(rad)
dist -= 200 / len(inStr)
angle += value
r = random.random()
g = random.random()
b = random.random()
txtSize = random.randrange(10,20)
# txtSize = random.randrange(10,50)
turtle.goto(tx,ty)
turtle.pencolor((r,g,b))
turtle.write(ch, font=('맑은고딕', 20, 'bold'))
turtle.done()
jsp 결제 시스템 선생님 블로그
https://blog.naver.com/simba222/222076054838
ch09 ex1
#ex1.py
# 전역변수
# function제작
coffee = 0
def coffee_machine(button):
print()
print('#1.뜨거운 물을 준비한다')
print('#2.종이컵을 준비한다')
if coffee == 1:
print('#3.보통커피를 탄다')
elif coffee == 2:
print('#3.설탕커피를 탄다')
elif coffee == 3:
print('#3.블랙커피를 탄다')
else:
print('#3.아무거나 탄다\n')
print("#4. 물을 붓는다.");
print("#5. 스푼으로 젓는다.");
print()
# 여기까지 function
coffee = int(input("어떤 커피를 드릴까요?(1.보통 2.설탕 3.블랙)"))
coffee_machine(coffee)
print("A손님 여기 커피있습니다");
coffee = int(input("어떤 커피를 드릴까요?(1.보통 2.설탕 3.블랙)"))
coffee_machine(coffee)
print("B손님 여기 커피있습니다");
print();
coffee = int(input("어떤 커피를 드릴까요?(1.보통 2.설탕 3.블랙)"))
coffee_machine(coffee)
print("C손님 여기 커피있습니다");
# 함수와 메서드의 차이점
# 메서드는 반복되는 일을 사용할 때 많이 사용됨
# ex2.py
def plus(v1,v2):
result = v1 + v2
return result
hap = 0
hap = plus(100,200)
print("100과 200의 plus 함수 결과는 %d" % hap)
def calc(v1, v2,op):
result = 0
if op == '+':
result = v1+v2
elif op == '-':
result = v1-v2
elif op == '*':
result = v1 * v2
elif op == '/':
result = v1/v2
return result
res = 0
var1, var2, oper = 0,0,""
oper = input("계산을 입력하세요(+,-,*,/)")
var1 = int(input("첫 번째 수를 입력하세요"))
var2 = int(input("두 번째 수를 입력하세요"))
res = calc(var1,var2,oper)
print('## 계산기 : %d %s %d = %d' % (var1,oper,var2,res))
def func1():
a = 10
print('func1()에서 a값 %d' %a)
def func2():
print('func1()에서 a값 %d' %a)
a = 20 #전역변수
func1()
func2()
def func3():
# 전역변수
global b
b = 10
print('func3()에서 b값 %d' %b)
def func4():
print('func4()에서 b값 %d' %b)
func3()
func4()
def multi(v1,v2):
reList = []
res1 = v1 + v2
res2 = v1 - v2
reList.append(res1)
reList.append(res2)
return reList
myList = []
hap, sub = 0,0
myList = multi(100,200)
hap = myList[0]
sub = myList[1]
print('multi()에서 돌려준 값 ==> %d, %d' % (hap,sub))
# 재밌는 문법
def para_func(v1,v2,v3 = 0):
result = 0
result = v1+v2+v3
return result
hap = 0
hap = para_func(10,20)
print("매개변수 2개의 계산결과 ==> %d" % hap)
hap = para_func(10,20,30)
print("매개변수 3개의 계산결과 ==> %d" % hap)
#ex5.py
# 더 재밌는 문법
def para_func(*para):
result = 0
for num in para:
result += num
return result
hap = para_func(10,20)
print('%d' % hap)
hap = para_func(10,20,30)
print('%d' % hap)
hap = para_func(10,20,30,40)
print('%d' % hap)
#ex6.py
import random
def getNumber():
return random.randrange(1,46) #1~45 범위
lotto = []
num = 0
print('*** 로또 추첨을 시작합니다 ***\n')
while True:
num = getNumber()
if lotto.count(num) == 0:
lotto.append(num)
# lotto 에 들어가있는 'n'의 개수
# 리스트 안에는 반복된 값이 들어갈 수 있다.
# count로 반복된 값을 없앨 수 있다
if len(lotto) >= 6:
break
print('추천된 로또 번호 ==> ', end='')
lotto.sort()
for i in range(0,6):
print('%d' % lotto[i], end=', ')
## 함수 선언 부분 ##
def func1() :
print("Module1.py의 func1()이 호출됨.")
def func2() :
print("Module1.py의 func2()가 호출됨.")
def func3() :
print("Module1.py의 func3()이 호출됨.")
# Module1의 메서드를 호출하였다
from Module1 import *
func1()
func2()
func3()
from myTurtle import *
import turtle
# 전역변수
inStr = ''
swidth, sheight =300,300
tx, ty, tAngle, txtSize = [0]*4
turtle.title('거북 글자 쓰기(모듈버전)')
turtle.shape('turtle')
turtle.setup(width=swidth+50, height=sheight+50)
turtle.screensize(swidth,sheight)
turtle.penup()
turtle.speed(5)
inStr = getString()
for ch in inStr:
tx,ty,tAngle,txtSize = getXYAS(swidth,sheight)
r,g,b = getRGB()
turtle.goto(tx,ty)
turtle.left(tAngle)
turtle.pencolor((r,g,b))
turtle.write(ch,font=('맑은고딕', txtSize, 'bold'))
turtle.done()
#ex9
import sys
print(sys.builtin_module_names)
import math
print(dir(math))
# math 안에 있는 함수가 리턴된다
#ex1
# tkinter : 윈도우 담당 모듈
from tkinter import *
window = Tk()
window.title('윈도우 창 연습')
window.geometry('400x100')
# window.resizable(width=FALSE, height=False) #FALSE와 False 둘 다 가능
label1 = Label(window, text='COOKBOOK~~ Python을 ')
label2 = Label(window, text='열심히',font=('궁서체',30), fg='blue')
label3 = Label(window, text='공부 중입니다.', bg='magenta', width=20, height=5, anchor=CENTER)
label1.pack()
label2.pack()
label3.pack()
window.mainloop()
#ex2.py
from tkinter import *
window = Tk()
photo = PhotoImage(file='gif/dog.gif')
# photo = PhotoImage(file='ㅎ/dog.gif')
# 대소문자 구별 안한다
label1 = Label(window, image=photo)
label1.pack()
window.mainloop()
# 대문자로 시작하는 건 클래스라고 생각하면 좋음
from tkinter import *
window = Tk()
button1 = Button(window, text='파이썬종료', fg='red', command=quit)
button1.pack()
window.mainloop()
from tkinter import *
from tkinter import messagebox
def myFunc():
messagebox.showinfo('강아지 버튼','강아지가 귀엽죠? ^^ 제 강아지입니다')
window = Tk()
photo = PhotoImage(file='gif/dog2.gif')
button1 = Button(window, image=photo, command=myFunc)
# 사진 클릭하면 창이 뜬다
button1.pack()
window,mainloop()