from IPython.core.display import HTML
11wk-1: 밈과 클래스 (2)
강의영상
youtube: https://youtube.com/playlist?list=PLQqh36zP38-y_wMxWRPdN7TE79Ghx8xUA
imports
예비학습
코드줄바꿈
\
: 코드가 길때 줄을 바꾸는 기능
-
예시1
\
a=55
a
55
=\
a33
a
33
-
예시2
=0.5
a a
0.5
\(a+a^2+a^3+a^4+a^5\) 를 계산하고 싶다면?
(방법1)
+ a**2 + a**3 + a**4 + a**5 a
0.96875
(방법2)
+\
a **2 +\
a**3 +\
a**4 +\
a**5 a
0.96875
'''
으로 선언하는 문자열
-
예시1
= '\n1. asdf\n2. sdfa\n3. dfas\n4. fasd\n'
string print(string)
1. asdf
2. sdfa
3. dfas
4. fasd
= \
string '''
1. asdf
2. sdfa
3. dfas
4. fasd
'''
print(string)
1. asdf
2. sdfa
3. dfas
4. fasd
-
예시2
= \
string '''
1. asdf
2. sdfa
3. dfas
4. fasd
5. {}
6. {}
'''
print(string.format('aaaa','bbbb'))
1. asdf
2. sdfa
3. dfas
4. fasd
5. aaaa
6. bbbb
문자열 포맷팅
-
예시1
= \
string '''
1. 이름: {}
2. 소속: {}
'''
print(string.format('최규빈','통계학과'))
1. 이름: 최규빈
2. 소속: 통계학과
print(string.format('통계학과','최규빈'))
1. 이름: 통계학과
2. 소속: 최규빈
-
예시2
= \
string '''
1. 이름: {name}
2. 소속: {affiliation}
'''
print(string.format(name='최규빈', affiliation='통계학과'))
1. 이름: 최규빈
2. 소속: 통계학과
print(string.format(affiliation='통계학과',name='최규빈'))
1. 이름: 최규빈
2. 소속: 통계학과
HTML
-
예제1: 텍스트 출력
= '''
html_str <p> 파이썬 프로그래밍 2023 </p>
'''
HTML(html_str)
파이썬 프로그래밍 2023
-
예제2: 텍스트의 스타일변경
= '''
html_str <style>
.title {
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}
</style>
<p class="title">파이썬 프로그래밍 2023</p>
'''
HTML(html_str)
파이썬 프로그래밍 2023
-
예제3: 이미지의 삽입
= '''
html_str <img src = https://github.com/guebin/PP2023/blob/main/posts/03_Class/JungGGuckMa.jpg?raw=true>
'''
HTML(html_str)
-
예제4: 텍스트 + 이미지
= '''
html_str <p> 로그전 패배는 괜찮아 </p>
<img src = https://github.com/guebin/PP2023/blob/main/posts/03_Class/JungGGuckMa.jpg?raw=true>
<p> 중요한 건 꺾이지 않는 마음 </p>
'''
HTML(html_str)
로그전 패배는 괜찮아
중요한 건 꺾이지 않는 마음
display
-
아래는 HTML(html_str)
의 내용을 명시적으로 display 하는 코드이다.
display(HTML(html_str))
로그전 패배는 괜찮아
중요한 건 꺾이지 않는 마음
-
이것은 마치 아래와 유사함.
=1 a
a
1
print(a)
1
중요한 것은 꺽이지 않는 마음
구현
-
기사처럼 보이도록 html_str 을 선언
= '''
html_str <style>
.title {
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}
.text {
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}
.highlight {
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}
</style>
<p class="title">RGE전 패배는 괜찮다.</p>
<img src=https://github.com/guebin/PP2023/blob/main/posts/03_Class/JungGGuckMa.jpg?raw=true width="600">
<p> \n </p>
<p class="text"> Q: 로그와 2라운드 재대결, 어떤 점에 유의해야 할까?</p>
<p class="text"> A: 상대팀에 대해서 더 분석할 건 없는 것 같고, 저희가 저희 플레이 잘하는 게 제일 중요한 것 같고 오늘 지긴 했지만 저희끼리만 안 무너지면 충분히 이길 수 있을 것 같아요.
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">마음</span></p>
'''
display(HTML(html_str))
RGE전 패배는 괜찮다.
Q: 로그와 2라운드 재대결, 어떤 점에 유의해야 할까?
A: 상대팀에 대해서 더 분석할 건 없는 것 같고, 저희가 저희 플레이 잘하는 게 제일 중요한 것 같고 오늘 지긴 했지만 저희끼리만 안 무너지면 충분히 이길 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
1단계: 밈의 구상
-
파이썬 프로그래밍 2023 중간고사.
= '''
html_str <style>
.title {
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}
.text {
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}
.highlight {
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}
</style>
<p class="title">파이썬 프로그래밍 중간고사 패배는 괜찮다.</p>
<img src=https://github.com/guebin/PP2023/blob/main/posts/03_Class/PP2023mid.jpg?raw=true width="600">
<p> \n </p>
<p class="text"> Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?</p>
<p class="text"> A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">마음</span></p>
'''
display(HTML(html_str))
파이썬 프로그래밍 중간고사 패배는 괜찮다.
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
-
이거 왠지 재미있는데?
-
밈의 속성을 추려보자.
- title: 타이틀에 해당하는 텍스트
- img: DEFT의 인터뷰 이미지
- Q: 인터뷰질문에 해당하는 텍스트
- A: 인터뷰답변에 해당하는 텍스트
- 중꺽마에서의 “마음”
2단계: 양식틀의 완성 (함수이용)
= '''
html_str <style>
.title {{
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}}
.text {{
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}}
.highlight {{
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}}
</style>
<p class="title">{ttl}</p>
<img src={url} width="600">
<p> \n </p>
<p class="text"> {Q}</p>
<p class="text"> {A}</p>
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">{hl}</span></p>
'''
= '파이썬 프로그래밍 중간고사 패배는 괜찮다!!!'
title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/PP2023mid.jpg?raw=true'
imgurl = 'Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?'
ques = 'A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.'
ans = '마음' highlight
= html_str.format(
_str = title,
ttl = imgurl,
url = ques,
Q = ans,
A = highlight
hl
) display(HTML(_str))
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
-
함수의 선언
def show_JungGGuckMa(html_str,title,imgurl,ques,ans,highlight):
= html_str.format(
_str = title,
ttl = imgurl,
url = ques,
Q = ans,
A = highlight
hl
) display(HTML(_str))
show_JungGGuckMa(html_str,title,imgurl,ques,ans,highlight)
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
3단계: 밈놀이 (함수)
t=1 – 밈1: 파이썬 프로그래밍 중간고사
# 필요한 변수들 선언
# show_JungGGuckMa 함수 선언
# 사용
show_JungGGuckMa(html_str,title,imgurl,ques,ans,highlight)
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
t=2 – 밈2: 버거킹
ref: https://i2.ruliweb.com/ori/22/12/03/184d62f98aace2c4.png
= '버거 2개를 골라도 6000원'
title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/burgerking.png?raw=true'
imgurl2 = '기간: 11월28일(월)-12월4일(일)'
ques = '콰트로치즈 와퍼 주니어, 통새우 와퍼 주니어, 롱치킨 버거 최대 42% 할인'
ans = '할인' highlight
show_JungGGuckMa(html_str,title,imgurl2,ques,ans,highlight)
버거 2개를 골라도 6000원
기간: 11월28일(월)-12월4일(일)
콰트로치즈 와퍼 주니어, 통새우 와퍼 주니어, 롱치킨 버거 최대 42% 할인
중요한 것은 꺾이지 않는 할인
t=3 – 밈1변경: 중요한 것은 꺾이지 않는 “집중력”
= '파이썬 프로그래밍 중간고사 패배는 괜찮다!!!'
title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/PP2023mid.jpg?raw=true'
imgurl = 'Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?'
ques = 'A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.'
ans = '집중력' highlight
show_JungGGuckMa(html_str,title,imgurl,ques,ans,highlight)
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 집중력
-
수정이 아니라 거의 새로 만든 수준인데?
t=4 – 밈2변경: 버거 종류 수정
-
귀찮아서…
이러한 코드의 비판
-
변수들이 정리가 되어있지 않고 산만함
3단계: 밈놀이 (클래스)
class JungKKuckMa:
pass
t=1 – 밈1: 파이썬 프로그래밍 중간고사
= JungKKuckMa()
pp2023 pp2023
<__main__.JungKKuckMa at 0x7f101ca06fd0>
(참고) 여기에서 pp2023.
을 치고 tab을 눌러도 아무런 변화가 없음.
= '파이썬 프로그래밍 중간고사 패배는 괜찮다!!!'
pp2023.title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/PP2023mid.jpg?raw=true'
pp2023.imgurl = 'Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?'
pp2023.ques = 'A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.'
pp2023.ans = '마음'
pp2023.highlight =\
pp2023.html_str '''
<style>
.title {{
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}}
.text {{
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}}
.highlight {{
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}}
</style>
<p class="title">{ttl}</p>
<img src={url} width="600">
<p> \n </p>
<p class="text"> {Q}</p>
<p class="text"> {A}</p>
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">{hl}</span></p>
'''
(참고) 이 상태에서 pp2023.
+ tab 을 하면 아래와 같이 보인다.
def show(pp2023):
= pp2023.html_str.format(
_str = pp2023.title,
ttl = pp2023.imgurl,
url = pp2023.ques,
Q = pp2023.ans,
A = pp2023.highlight
hl
) display(HTML(_str))
show(pp2023)
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 마음
t=2 – 밈2: 버거킹
= JungKKuckMa()
burger burger
<__main__.JungKKuckMa at 0x7f101ca069d0>
(참고) 여기에서 burger.
을 치고 tab을 눌러도 아무런 변화가 없음.
= '버거 2개를 골라도 6000원'
burger.title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/burgerking.png?raw=true'
burger.imgurl = '기간: 11월28일(월)-12월4일(일)'
burger.ques = '콰트로치즈 와퍼 주니어, 통새우 와퍼 주니어, 롱치킨 버거 최대 42% 할인'
burger.ans = '할인'
burger.highlight =\
burger.html_str '''
<style>
.title {{
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}}
.text {{
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}}
.highlight {{
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}}
</style>
<p class="title">{ttl}</p>
<img src={url} width="600">
<p> \n </p>
<p class="text"> {Q}</p>
<p class="text"> {A}</p>
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">{hl}</span></p>
'''
(참고) 이 순간은 burger.
+ tab 을 하면 아래와 같이 나온다.
-
show() 함수는 재사용가능하겠는데?
# def show(pp2023):
# _str = pp2023.html_str.format(
# ttl = pp2023.title,
# url = pp2023.imgurl,
# Q = pp2023.ques,
# A = pp2023.ans,
# hl = pp2023.highlight
# )
# display(HTML(_str))
- pp2023, burger 를 show 함수의 입력 x로 생각해도 무방
show(burger)
버거 2개를 골라도 6000원
기간: 11월28일(월)-12월4일(일)
콰트로치즈 와퍼 주니어, 통새우 와퍼 주니어, 롱치킨 버거 최대 42% 할인
중요한 것은 꺾이지 않는 할인
t=3 – 밈1변경: 중요한 것은 꺾이지 않는 “집중력”
= '집중력' pp2023.highlight
show(pp2023)
파이썬 프로그래밍 중간고사 패배는 괜찮다!!!
Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?
A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.
중요한 것은 꺾이지 않는 집중력
t=4 – 밈2변경: 버거 종류 수정
= '기네스콰트로치즈와퍼, 기네스와퍼, 몬스터와퍼, 몬스터X 최대 XX% 할인' burger.ans
show(burger)
버거 2개를 골라도 6000원
기간: 11월28일(월)-12월4일(일)
기네스콰트로치즈와퍼, 기네스와퍼, 몬스터와퍼, 몬스터X 최대 XX% 할인
중요한 것은 꺾이지 않는 할인
코드의 복습 + 대응하는 용어의 정리
-
코드조각1: 아래의 과정은 “JungKKuckMa
라는 이름의 클래스를 선언한다.” 라고 표현한다.
class JungKKuckMa:
pass
- ’JungKKuckMa.HWP’라는 빈 한글파일을 만들어 두는 과정이라 비유할 수 있다.
-
코드조각2: 아래의 과정은 “JungKKuckMa
라는 클래스에서 pp2023
이라는 인스턴스를 생성시켰다.” 고 표현한다.
= JungKKuckMa()
pp2023 pp2023
<__main__.JungKKuckMa at 0x7f101ca06fa0>
- 만들어둔 ‘JungKKuckMa.HWP’를 Ctrl + C,V 하여 새로운 hwp파일을 만들고 파일이름을 ’pp2023.HWP’ 파일로 변경한 상황으로 비유하라 수 있다.
- 느낌: ’JungKKuckMa.HWP’에서 ’pp2023.HWP’이 태어난 느낌!!
-
코드조각3: 아래의 과정은 pp2023
안의 소속된 변수를 정의한다.
- 여기에서 정의된
pp2023.title
등을 “pp2023
의 attribute” 라고 표현한다.
= '파이썬 프로그래밍 중간고사 패배는 괜찮다!!!'
pp2023.title = 'https://github.com/guebin/PP2023/blob/main/posts/03_Class/PP2023mid.jpg?raw=true'
pp2023.imgurl = 'Q: 파이썬 프로그래밍 기말고사, 어떤 점에 유의해야 할까?'
pp2023.ques = 'A: 최규빈 교수 문제 스타일에 대해서 더 분석할 건 없는 것 같고, 제가 제 코드를 잘 구현하는 게 제일 중요한 것 같고 오늘 중간고사는 망하긴 했지만 저 스스로가 안 무너지면 충분히 기말고사는 잘 볼 수 있을 것 같아요.'
pp2023.ans = '마음'
pp2023.highlight =\
pp2023.html_str '''
<style>
.title {{
font-family: "Times New Roman", serif;
font-size: 30px;
font-weight: 900;
}}
.text {{
font-family: "Arial", sans-serif;
font-size: 20px;
font-style: italic;
}}
.highlight {{
font-family: "Montserrat", monospace;
font-size: 35px;
font-weight: 900;
text-decoration: underline;
font-style: normal;
color: darkblue;
background-color: #FFFF00;
}}
</style>
<p class="title">{ttl}</p>
<img src={url} width="600">
<p> \n </p>
<p class="text"> {Q}</p>
<p class="text"> {A}</p>
<p class="title">중요한 것은 꺾이지 않는 <span class="highlight">{hl}</span></p>
'''
- ‘pp2023.HWP’ 라는 문서안에 내용을 채우는 과정이라고 비유할 수 있다.
-
코드조각4: 아래의 과정은 클래스에서 생성된 인스턴스를 입력으로 받아서 어떠한 동작을 수행할 함수를 정의
def show(pp2023):
= pp2023.html_str.format(
_str = pp2023.title,
ttl = pp2023.imgurl,
url = pp2023.ques,
Q = pp2023.ans,
A = pp2023.highlight
hl
) display(HTML(_str))
- 특징: show의 입력은 너무 깔끔하다. 클래스에서 생성된 인스턴스의 이름을 받아서 여러변수를 한번에 정리하였음.
-
코드조각5: 아래의 과정은 생성된 인스턴스를 입력으로 받아서 어떠한 함수를 수행하는 과정이다.
# show(pp2023)
# show(burger)
- show 라는 버튼을 눌러서 ‘pp2023.HWP’ 혹은 ‘burger.HWP’ 를 보는 느낌
- show 라는 버튼은 ‘pp2023.HWP’ 혹은 ‘burger.HWP’ 외부에서 독립적으로 선언된 함수임.
숙제
없습니다