明日学習キャンプAI-翌日TIL,2022.04.19
71060 ワード
スパルタコードクラブ
明日学習キャンプAI Web開発トレーニングコース第2話
20220419 - TIL
1.やはり気まずい関係
09:00-12:30午前中勉強
2日間キャンプをする.今のところ、選手たちとの雰囲気はまだ気まずい.あとしばらくすればよくなります.
今日はマネージャーや指導者たちの知らせなしに自主学習を始めました.何の導きもない状況で、自分が少し気まずい思いをし始めたと思っています.昨日はメンバーとおしゃべりをする時間も長く、仕事のたびにノートパソコンを持ってラウンジに行くのは不便でした.だから今日は勉強カフェではなく家で勉強します.しかし、悪い面もある.朝から部屋で勉强しようと思って、眠れなかった.「本当に疲れた…」「アステディカフェに行くと知っていたのに…」本当にたくさん考えた明日はどうする...
つまり学習内容はキャンプで提供されるPythonの基礎文法です!Pythonは何度も使っているので、簡単に聞けばいいのですが…思いついた.しかし、逆に私の知らない内容がたくさんあります.
そして、ネットプログラミングの基礎授業を2、3週間聞いて、時間が経つのがとても速いです.前に聞いた授業と差は少ないですが、途中でlocalではなくmongodyを使うので、その部分はもっと丁寧に聞いています.
2.家でもっと疲れることについて
12:30-13:30ランチタイム
13:30-14:00グループミーティング
2時からゲスタに集まると聞いていたので、30分前に昼食をとりました.実は30分早く休まないと本当に我慢できませんどうして家で勉強するのがもっと疲れているのか分からない.とにかくご飯を食べて元気を出したら、昼食の時間が過ぎたことに気づいた.2時までに、チームメイトたちと明日のミニプロジェクトについて話しました.幸いなことに、プロジェクト公告のメニューがいいので、大きな計画を立てる必要はありません.
3.グループ自己紹介時間
14:00~15:00グループ自己紹介
ゲスタ(講堂)に集まり、各グループに自己紹介の時間がある.私を驚かせたのは、隊長が代表として隊員たちを紹介すべきだったが、私たちのチームは2番目だったので、何も知らずにでたらめを言ったようだ.幸いにも隊員たちの反応は悪くなく、私たちのチームのほかにもいろいろな人が集まっています.楽しいチーム、個性的なチーム、本当に静かなチームなど本当にいろいろあります.これからチームが交代すれば、彼らの中の誰に会えるか知りたいです.
4.スモールプロジェクトの準備
15:00-19:00午後の勉強時間
講堂でパーティーが終わった後、私たちは以前話したミニプロジェクトについて簡単に話しました.音楽という共通の関心事でチームを組んで、自分の好きな曲のYouTube動画を紹介ページに載せることにした.
簡単な会議の後、プロジェクト用のGitアカウントが作成されました.一部のチームメンバーはgitを初めて使用し、アカウントの作成と使用方法を説明し、想像以上に時間を費やした.私もGitをたくさん使ったことがありませんが、できるだけ既知の範囲で教えてあげます.
次に、基本スケルトンと一時ページを作成し、repositoryにアップロードし、チームメンバーにプッシュがうまくいっているかどうかを確認します.私はsoucetreeを使っているのでそれを紹介しましたが、あるチームメンバーがgithup desktopを使うと言っていたので、私も一度使ったことがありますが、いい感じです.
5.TIL提出を忘れないで!
19:00-20:00ディナータイム
20:00-21:00毎日レビューとTIL作成
実は昨日の初日だったのでTILを書いたのですが提出しなかったので今日マネージャーさんが探していた不祥事がありましたWILとTILだけを提出するとは知りませんでしたが、これは間違いです.不思議なことに、私は知りません.私たちの隊員はみな自分で渡したのです.組長のような私は本当に私たちのチームです...心配ですね.
とにかく、真ん中のサーバーももっと爆発して、思ったより時間が近くなりました.勉強している間は時間が経つのが遅いですが、なぜ今のようにTILを書くのがこんなに早いのか分かりません.でも今日も一日お疲れ様でした、という一日一日が積み重なってきて、4ヶ月以内にいい成果を出して欲しいです.明日から本格的にチームプロジェクトが始まるので楽しみです.頑張りましょう.
6.開発ログ
# doc
people = [{'name':'dongwoo', 'age':29}]
# tuple
people = [('dongwoo', 29)]
temp = ['a', 'b', 'c', 'a']
temp_set = set(temp)
print(temp_2) # {'a', 'b', 'c'}
# 교집합, 합집합
a = ['a', 'b', 'c', 'd', 'f']
b = ['b', 'c', 'd', 'f', 'e']
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # {'c', 'b', 'd', 'f'}
print(a_set | b_set) # {'c', 'd', 'e', 'f', 'b', 'a'}
# 차집합
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
a_set = set(student_a)
b_set = set(student_b)
print(a_set - b_set) # {'음악', '화학1', '국어', '물리2'}
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = s['score']
print(name+'의 점수는 '+str(score))
print(f'{name}의 점수는 {score}')
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print(person['name'], 'error')
from main_func import *
say_hi()
say_hi_to('dongwoo')
main_fun.py def say_hi():
print('hi')
def say_hi_to(name):
print(f'{name} hi!')
num = 3
if num % 2 == 0:
result = 'even'
else:
result = 'odd'
result = 'even' if num % 2 == 0 else 'odd'
a_list = [1, 3, 2, 5, 1, 2]
b_list = []
for a in a_list:
b_list.append(a * 2)
b_list = [a * 2 for a in a_list]
print(b_list) # [2, 6, 4, 10, 2, 4]
特に,関数パラメータでは,リストを無制限に渡すことが有用であるようである.
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
result = map(lambda person: 'adult' if person['age'] > 20 else 'teenager', people)
print(list(result))
# ['teenager', 'adult', 'teenager', 'teenager', 'adult', 'adult', 'adult', 'adult']
result = filter(lambda person: person['age'] > 20, people)
print(list(result))
# [{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]
# 매개변수 무제한으로 받기
def cal(*args):
for name in args:
print(name)
cal(['a', 'b']) # ['a', 'b']
cal(['a', 'b', 'c']) # ['a', 'b', 'c']
# 매개변수를 키워드와 함께 받기
def cal2(**kwargs):
print(kwargs)
cal2(name='dongwoo') # {'name': 'dongwoo'}
cal2(name='dongwoo', age='29') # {'name': 'dongwoo', 'age': '29'}
すでに知っているか、繰り返している内容はすばやくスキップされ、私が逃した内容や混同しやすい内容だけが記録されています.
class Monster():
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
def status_check(self):
print('alive') if self.alive else print('dead')
m1 = Monster()
m1.damage(150)
m1.status_check() # dead
m2 = Monster()
m2.damage(90)
m2.status_check() # alive
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rtan",
data: {},
success: function (response) {
let url = response['url']
let msg = response['msg']
$('#img-rtan').attr('src', url)
$('#text-rtan').text(msg)
}
})
// 이미지 url 변경
$('#img-rtan').attr('src', url)
// text 변경
$('#text-rtan').text(msg)
JavaScriptではrepeat構文は初めて見たので不思議でした.
あとは0、1位を羅列する必要があるときに使えるでしょう.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"></script>
<link href="https://fonts.googleapis.com/css2?family=Gowun+Dodum&display=swap" rel="stylesheet">
<title>스파르타코딩클럽 | 부트스트랩 연습하기</title>
<style>
* {
font-family: 'Gowun Dodum', sans-serif;
}
.mytitle {
width: 100%;
height: 250px;
background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://i.ytimg.com/vi/ElHf0dJykug/maxresdefault.jpg');
background-position: center;
background-size: cover;
color: white;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.mypost {
width: 95%;
max-width: 500px;
margin: 20px auto 0px auto;
padding: 20px;
box-shadow: 0px 0px 3px 0px gray;
}
.mybtns {
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: left;
margin-top: 20px;
}
.mycard{
margin: 20px auto 10px auto;
}
</style>
<script>
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/weather/seoul",
data: {},
success: function (response) {
let temp = response['temp']
$('#temp').text(temp)
}
})
});
</script>
</head>
<body>
<div class="mytitle">
<h1>레드벨벳 웬디 팬명록</h1>
<p>현재 기온 : <span id="temp">00.00</span>도</p>
</div>
<div class="mypost">
<div class="form-floating mb-3">
<input type="email" class="form-control" id="floatingInput" placeholder="[email protected]">
<label for="floatingInput">닉네임</label>
</div>
<div class="form-floating">
<textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea2"
style="height: 100px"></textarea>
<label for="floatingTextarea2">응원댓글</label>
</div>
<div class="mybtns">
<button type="button" class="btn btn-dark">응원 남기기</button>
</div>
<div class="card mycard">
<div class="card-body">
<blockquote class="blockquote mb-0">
<p>사! 랑! 해! 요! 레! 드! 벨! 벳! </p>
<footer class="blockquote-footer">kimphysicsman<cite title="Source Title"></cite>
</footer>
</blockquote>
</div>
</div>
</div>
</body>
</html>
let star = 3
let star_score = '*'.repeat(star)
// star_score == '***'
スモールプロジェクトスケルトンの作成
授業で学んだように、フラスコを利用して簡単にできました.
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
#body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.number
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
rank = tr.select('td.number')
rank = rank[0].text.split('\n')[0]
title = tr.select('td.info > a.title.ellipsis')
title = title[0].text.strip()
title = title.split('\n')[-1].strip()
artist = tr.select('td.info > a.artist.ellipsis')
artist = artist[0].text
print(rank, title, artist)
from flask import Flask, render_template
app = Flask(__name__)
# HTML 화면 보여주기
@app.route('/')
def home():
return render_template('index.html')
@app.route('/dongwoo')
def dongwoo_page():
return render_template('dongwoo.html')
@app.route('/heejeong')
def heejeong_page():
return render_template('heejeong.html')
@app.route('/jinyoung')
def jinyung_page():
return render_template('jinyoung.html')
@app.route('/songhee')
def songhee_page():
return render_template('songhee.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
Reference
この問題について(明日学習キャンプAI-翌日TIL,2022.04.19), 我々は、より多くの情報をここで見つけました https://velog.io/@kimphysicsman/내일배움캠프-AI-2일차-TIL-2022.04.19テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol