Posts
Q&A
ํด๋ก์ ์์ ํจ์์์ nonlocal ์ฌ์ฉ์ด ํ์ํ ์ฌ๋ถ์ ๋ํด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์ ๋ ์ด๊ฒ ๊ถ๊ธํด์ ์ข ์ฐพ์๋ณด๋๊น. ๋ฆฌ์คํธ๋ ๊ฐ๋ณํ ๊ฐ์ฒด๋ผ ๋ฌธ์ ๊ฐ ์๊ณ int, float ํ์ ๋ถ๋ณํ ๊ฐ์ฒด๋ผ ์๋๋ค๊ณ ํฉ๋๋ค. ์ฐธ๊ณ ํ์ธ์.
- 1
- 2
- 424
Q&A
๋ฐ์ฝ๋ ์ดํฐ ์์ ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
return result ๋ฅผ ์ํ๋ฉด print(time_func(1.5)) print(sum_func(100, 150, 250, 300, 350)) ์ด๋ ๊ฒ ํ์๋ ์ถ๋ ฅ์ด None ์ผ๋ก ๋์ต๋๋ค. ๋ฆฌํด๊ฐ์ ์ฌ์ฉํ์ง ์๋๊ฒฝ์ฐ๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ฆฌํด๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ๋ return result ๊ฐ ํ์ํฉ๋๋ค. sum_func ์ ๊ฒฐ๊ณผ(1150)๋ฅผ ๋ค๋ฅธ๊ณณ์์ ์ฌ์ฉํ๋ ค๋ฉด ๋ฆฌํด์ด ํ์ํฉ๋๋ค. ์ดํดํ์ ํด๋ก์ ๊ตฌ์กฐ์ return result ์ ์๊ณ ์์์ ์๋ฌด ์๊ด์ด ์์ต๋๋ค.
- 0
- 3
- 265
Q&A
_fields() ๊ด๋ จ ์ง๋ฌธ์์ด์!
์ค๊ฐ์ p4๋ฅผ ์ฌํ ๋นํด์ ๊ทธ๋ ์ต๋๋ค. ๊ทธ ๋ถ๋ถ ์ฃผ์์ฒ๋ฆฌํ๋ฉด ์ ์์ ์ผ๋ก ๋์ต๋๋ค. (์ฌ์ง) # ๋ค์๋ ํํ ๋ฉ์๋ temp = [52, 38] # _make() : ์๋ก์ด ๊ฐ์ฒด ์์ฑ p4 = Point1._make(temp) print('_make(): ์๋ก์ด ๊ฐ์ฒด ์์ฑ') print(p4) print()
- 0
- 2
- 286
Q&A
split ์ต์ ๋ฌธ์.
๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์์ธ์ ์ฐพ์์ต๋๋ค. ์์ธ์ด๋ผ๊ธฐ ๋ณด๋ค๋ ํ์์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. ์๋ฆฌ์ผ๋ก ์ถ๋ ฅํ๋๊ฒ๊ณผ dataFrame ์ผ๋ก ์ถ๋ ฅํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฆ ๋๋ค. ๋ค๋ฅธ ๋ถ๋ค๋ ์์๋ฉด ์ข์๊ฑฐ ๊ฐ์์ ๊ณต์ ํฉ๋๋ค. (์ฌ์ง) ํ๋๋ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ์ถ๋ ฅํ๊ณ ํ๋๋ ์๋ฆฌ์ผ ๋ก ์ถ๋ ฅํด ๋ณด์์ต๋๋ค. ์ฃผํผํฐ ๋ด์ฉ์ ๋ณต์ฌํด์ ํ ์คํธ ์๋ํฐ์ ๋ถ์ฌ๋ณด๋ ๊ณต๋ฐฑ์ด ์ฐจ์ด๋ฉ๋๋ค. ๋ฐ์ดํฐ ํ๋ ์์ ๊ณต๋ฐฑ์ด 1๊ฐ๋ก, ์๋ฆฌ์ผ์ ๊ณต๋ฐฑ์ด 2๊ฐ๋ก ๋ณด์ฌ์ง๋๋ค. ๊ทธ๋์ ์๋ณธ csv ํ์ผ์ ์ด์ด๋ณด๋, ์๋ณธ ํ์ผ์๋ ๊ณต๋ฐฑ์ด 2๊ฐ ์๋๊ฒ ๋ง์ต๋๋ค. ์ ํ๊ฒฝ์ ๋ฌธ์ ์ผ์๋ ์์ต๋๋ค๋ง, ์ฃผํผํฐ์์ ๊ทธ๋ ๊ฒ ๋ณด์ฌ์ฃผ๋๊ฑฐ ๊ฐ์ต๋๋ค.
- 1
- 2
- 300
Q&A
Nbextensions ์ค์น๊ด๋ จ ๋ฌธ์๋๋ฆฝ๋๋ค.
-- Nbextensions๋ฅผ ์ฃผํผํฐ ๋ ธํธ๋ถ๊ณผ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์๋์ฝ๋ค ์์ ๋ฒ์ ์์๋ ๋ฐ๋ก ๋ณด์๋๋ฐ, ์ต์ ๋ฒ์ ์ผ๋ก ์ฌ ์ค์นํ๋ ๋๋ถ๋ถ์ ์ค์ ์ด ์๋ณด์ ๋๋ค. ๋ช ๋ น์ด ์ฐฝ(์๋์ฝ๋ค ํ๋กฌํํธ)์์ ์๋ ๋ช ๋ น์ด ์ ๋ ฅํ์๊ณ ์ฃผํผํฐ ๋ค์ ์คํํ๋๋ ๋ฉ๋ด๋ค์ด ๋ค ๋ณด์ ๋๋ค. ์ ๋ ์๋์ฝ๋ค ํ๊ฒฝ์์ ์ฝ๋ค๋ก Nbextensions ์ ์ค์นํ์ต๋๋ค. pip ๋ก ์ค์นํ ๊ฒฝ์ฐ๋ ์๋์ง๋ง, ํ๋ฒํด๋ณด์ธ์. jupyter contrib nbextension install --user jupyter nbextensions_configurator enable --user
- 1
- 3
- 2K
Q&A
์ฃผํผํฐ์์ matplotlib.pyplot ์ค๋ฅ ๋ฌธ์.
๊ธฐ์กด ๊ฐ์ํ๊ฒฝ๋ค์ ์ฌ์ฉํ๊ณ ์๋๊ฒ๋ค์ด ์์ด์ ๋จผ์ ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์ ๊ธํด๋ณด๊ณ ๋ค์ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ํ๊ฒฝ์์๋ ๋ฌธ์ ๊ฐ ์๊ณ , VSCode(+3.6 ๊ฐ์ํ๊ฒฝ) ์์๋ ์๋์ํ๋๊ฒ ๊น์ง ํ์ธํ์ต๋๋ค. 3.7 ์์๋ ์ถฉ๋์ด ์กฐ๊ธ ์์์ต๋๋ค. ๋จผ์ ์ฃผํผํฐ ์ ๊ธํด๋ณด๊ณ ๊ฒฐ๊ณผ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ---------------------------------- base ๊ฐ์ํ๊ฒฝ์ ์ฃผํผํฐ๋ ธํธ๋ถ์ ์ฌ์ฉํ์ง ์๊ณ "๊ฐ์ข์ฉ ๊ฐ์ํ๊ฒฝ"์ ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์๋ก ์ค์นํ๋ ์ ์๋์ํฉ๋๋ค. ์ฃผํผํฐ ๋ ธํธ๋ถ์ด ์ค๋๋์ ์๊ธฐ๋ ๋ฌธ์ ์ธ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 2
- 2
- 1.4K
Q&A
๊ด๊ณ api ์ง๋ฌธ์ ๋๋ค.
์ ๋ ์ค๋ ์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ์์๋๋ฐ, ํ์ธํด๋ณด๋, ๋ค์ด๋ฒ์์ ์ ๋ฐ์ดํธ ํ๋๋ผ๊ณ ์๋น์ค๊ฐ ์๋๋ ๊ฒฝ์ฐ ์์ต๋๋ค. ์ ๋ ์ถฉ์ ํ์ง ์๊ณ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
- 0
- 3
- 812
Q&A
๊ธฐ์กด flask ์ ํ ๋ ๊ทธ๋จ๋ด์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ฐ์ ํด๋ง ๋ฐฉ์์ผ๋ก ํด๋ณด๊ณ ์นํ ๋ฐฉ์์ ์๋ ค์ฃผ์ ์นํ ์ฌ์ดํธ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- 1
- 2
- 792
Q&A
๊ธฐ์กด flask ์ ํ ๋ ๊ทธ๋จ๋ด์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ฐ์ ํด๋ง ๋ฐฉ์์ผ๋ก ํด๋ณด๊ณ ์นํ ๋ฐฉ์์ ์๋ ค์ฃผ์ ์นํ ์ฌ์ดํธ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- 1
- 2
- 506
Q&A
docker locale ๋ณ๊ฒฝ ๋ฌธ์.
์ธ์ด์ ๋ฌธ์ ์ธ์ง ์๋์ง ์กฐ๊ธ ํท๊ฐ๋ฆฝ๋๋ค. ๊ฒ์ํ ๊ธฐ๋ฅ์ ๋ค์ด๋ฒ api ๋ฅผ ์ถ๊ฐํด์ ๊ฒ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๊ฒ ๋ค์ด๋ฒ api ๋ฐฉ์์ธ๋ฐ, ๊ตฌ๊ธํด๋ผ์ฐ๋์์๋ ์ ์๋์ํ๋๋ฐ, ๋์ปค์ ์ฌ๋ฆฌ๋ฉด ์ ์๋์์ ํ์ง ์๋ ๋ฌธ์ ๋ก, ๊ฐ์ข๋ ์๊ด์๋ ๋ถ๋ถ์ด๋ผ ๋ฌธ์ ๋๋ฆฌ๊ธฐ ์ข ์ฃ์กํฉ๋๋ค. urlopen ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ ๊ฐ์๋ฐ, ๋์ ํ ๊ฐ์ ๋ชป์ก๊ฒ ์ต๋๋ค. ์๊ฐ์ด ๋์๋ฉด ํ๋ฒ ๋ด์ฃผ์๊ณ ์ด๋์ชฝ์ผ๋ก ๊ณ ๋ฏผ์ ํด์ผํ ์ง ๋ฐฉํฅ์ ๋๋ง์ด๋ผ๋ ์กฐ์ธ ๋ถํ๋๋ฆฝ๋๋ค. 1. ์์ค๋ ์๋์ ๊ฐ์ด ๊ฐ๋จํฉ๋๋ค. encText = urllib.parse.quote(keyword) # ๊ฒ์์ด ์ธ์ฝ๋ฉ url = URL + encText # 'https://openapi.naver.com/v1/search/blog?query='+'์ธ์ฝ๋ฉ๋ํค์๋' request = urllib.request.Request(url) request.add_header("X-Naver-Client-Id",client_id) # ๋ค์ด๋ฒ์ ๋ฑ๋ก๋ ๊ฐ๋ฐ์ ํค๊ฐ์ถ๊ฐ request.add_header("X-Naver-Client-Secret",client_secret) # ๋ค์ด๋ฒ์ ๋ฑ๋ก๋ ๊ฐ๋ฐ์ ํค๊ฐ์ถ๊ฐ response = urllib.request.urlopen(request) # ์ฌ๊ธฐ์ ์ธ์ฆ ๊ด๋ จ ์ค๋ฅ ๋ฐ์. 2. ์ค๋ฅ ๋ด์ฉ์ ์๋์ ๊ฐ์ต๋๋ค. [pid: 18|app: 0|req: 12/17] 62.170.200.183 () {44 vars in 1055 bytes} [Sat Apr 3 14:52:32 2021] GET /trendy/getBlogs?keyword=%27%EB%A9%B4%EB%8F%84%EA%B8%B0%27 => generated 290 bytes in 247 msecs (HTTP/1.1 500) 3 headers in 374 bytes (1 switches on core 0) [2021-04-03 14:52:33,289] ERROR in app: Exception on /trendy/getShops [GET] Traceback (most recent call last): File "/usr/local/lib/python3.6/urllib/request.py", line 1318, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/usr/local/lib/python3.6/http/client.py", line 1262, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/local/lib/python3.6/http/client.py", line 1308, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.6/http/client.py", line 1257, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.6/http/client.py", line 1036, in _send_output self.send(msg) File "/usr/local/lib/python3.6/http/client.py", line 974, in send self.connect() File "/usr/local/lib/python3.6/http/client.py", line 1423, in connect server_hostname=server_hostname) File "/usr/local/lib/python3.6/ssl.py", line 407, in wrap_socket _context=self, _session=session) File "/usr/local/lib/python3.6/ssl.py", line 817, in __init__ self.do_handshake() File "/usr/local/lib/python3.6/ssl.py", line 1077, in do_handshake self._sslobj.do_handshake() File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise raise value File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "./main/naver_api.py", line 84, in decorated_function res = f(*args, **kwargs) File "./main/naver_api.py", line 160, in getShops return getSearchList(keyword, NAVER_SHOP_API_URL) File "./main/naver_api.py", line 37, in getSearchList response = urllib.request.urlopen(request) ********* urlopen ์ด๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ ๊ฐ์๋ฐ, ๊ฐ์ด ์ค์ง ์์ต๋๋ค. File "/usr/local/lib/python3.6/urllib/request.py", line 223, in urlopen return opener.open(url, data, timeout) File "/usr/local/lib/python3.6/urllib/request.py", line 526, in open response = self._open(req, data) File "/usr/local/lib/python3.6/urllib/request.py", line 544, in _open '_open', req) File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain result = func(*args) File "/usr/local/lib/python3.6/urllib/request.py", line 1361, in https_open context=self._context, check_hostname=self._check_hostname) File "/usr/local/lib/python3.6/urllib/request.py", line 1320, in do_open raise URLError(err) urllib.error.URLError: [pid: 18|app: 0|req: 13/18] 62.170.200.183 () {44 vars in 1055 bytes} [Sat Apr 3 14:52:33 2021] GET /trendy/getShops?keyword=%27%EB%A9%B4%EB%8F%84%EA%B8%B0%27 => generated 290 bytes in 137 msecs (HTTP/1.1 500) 3 headers in 374 bytes (1 switches on core 0) 62.170.200.183 - - [03/Apr/2021:14:52:33 +0000] "GET /trendy/getShops?keyword=%27%EB%A9%B4%EB%8F%84%EA%B8%B0%27 HTTP/1.1" 500 290 "http://35.194.133.222:88/trendy/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36" "-"
- 1
- 4
- 828