๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ | Python40

[Python] BLE ํ†ต์‹  ํ•˜๊ธฐ with bleak (MacOS) - 2) ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ 2023.05.24 - [๐Ÿ | Python/ํŒŒ์ด์ฌ ์ดˆ๊ฐ„๋‹จ ํ”„๋กœ์ ํŠธ] - [Python] BLE ํ†ต์‹  ํ•˜๊ธฐ with bleak (MacOS) - 1) ํƒ์ƒ‰, ์—ฐ๊ฒฐ ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ๋Š” bleak ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด ์ฃผ๋ณ€ ๊ธฐ๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ํ•ด๋ณด์•˜๋‹ค. ์ด๋ฒˆ์—๋Š” ํ˜„์žฌ Kit์˜ ์„œ๋น„์Šค ์ •๋ณด๋ฅผ ์•Œ์•„๋ณด๊ณ  ๊ทธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ kit๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„๋ณด์ž! 1. ์—ฐ๊ฒฐํ•œ ์žฅ์น˜์˜ ์„œ๋น„์Šค 1) ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ํ™•์ธ import asyncio from bleak import BleakClient, BleakScanner async def main (): devices = await BleakScanner.discover() for idx, device in enumerate(devices): print(f'{idx}\t\t',.. 2023. 5. 24.
[Python] BLE ํ†ต์‹  ํ•˜๊ธฐ with bleak (MacOS) - 1) ํƒ์ƒ‰, ์—ฐ๊ฒฐ ํŒŒ์ด์ฌ์˜ ๋ชจ๋“ˆ ์ค‘ bleak์„ ์ด์šฉํ•˜์—ฌ Mac์—์„œ BLE ํ†ต์‹ ์„ ํ•ด๋ณด์ž! 1. BLE๋ž€ ๋ฌด์—‡์ธ๊ฐ€ BLE๋Š” Bluetooth Low Energy์˜ ์•ฝ์ž๋กœ ๋ธ”๋ฃจํˆฌ์Šค์™€ ๊ฐ™์ง€๋งŒ ๋” ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๊ฒŒ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋•Œ๋ฌธ์— ์Šค๋งˆํŠธ ์›Œ์น˜, ํƒœ๊ทธ, ์ž‘์€ ์žฅ์น˜๋“ค์— ์ฃผ๋กœ ์ด์šฉํ•œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์‹ฌ์ „๋„, ๋ฉ”์‹œ์ง€ ํ†ต์‹  ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. 2. bleak ๋ชจ๋“ˆ ์ด์šฉํ•˜๊ธฐ bleak๋Š” ํŒŒ์ด์ฌ์—์„œ ๋ธ”๋ฃจํˆฌ์Šค LE๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ์ด๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅด ํ†ตํ•ด์„œ MacOS, Windows, Linux ๋“ฑ์—์„œ๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์žฅ์น˜์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” bleak์„ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋“ค์ด๋‹ค. --- ์‹ค์Šตํ™˜๊ฒฝ python 3.9.6 bleak 0.20.2 ์ˆ˜ํ–‰ ๋‹จ๊ณ„ ์š”์•ฝ 1. Bluetooth ์žฅ๋น„ O.. 2023. 5. 24.
[Python] collections ๋ชจ๋“ˆ Python์˜ ๋ชจ๋“ˆ ์ค‘ collections์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ List, Tuple, Dict๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด ์ข…๋ฅ˜ deque, Counter, OrderedDcit, defaultdict, namedtuple deque - stack๊ณผ queue๋ฅผ ์ง€์› - List์— ๋น„ํ•ด์„œ ํšจ์œจ์ ์ธ(๋น ๋ฅธ) ์ž๋ฃŒ ์ €์žฅ ๋ฐฉ์‹ ์ง€์›! from collections import deque appendleft() : ๋ฆฌ์ŠคํŠธ์˜ ์•ž์— ์š”์†Œ ์ถ”๊ฐ€ deque_list = deque() # ๊ฐ์ฒด ์„ ์–ธ for i in range(5): deque_list.append(i)# [0,1,2,3,4] deque_list.appendleft(10)# ์•ž์— ์ถ”๊ฐ€ deque_list >>> deque([10, 0,.. 2023. 1. 5.
Python_๋‘ ๊ฐœ์˜ ๋”•์…”๋„ˆ๋ฆฌ ํ•ฉ์น˜๊ธฐ! ํŒŒ์ด์ฌ์˜ dictionary๋ฅผ ๋‹ค๋ฃจ๋Š” ๋„์ค‘ 2๊ฐœ์˜ dictionary๋ฅผ ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค! 1. key๊ฐ’์ด ๊ฒน์น˜์ง€ ์•Š์„ ๋•Œ dict_1 = {'A':1, 'B':2, 'C':3} dict_2 = {'D':1, 'E':2, 'F':3} - update() result = dict_1 result.update(dict_2) >>> {'A': 1, 'B': 2, 'C': 3, 'D': 1, 'E': 2, 'F': 3} dictnary์˜ ๋ฉ”์†Œ๋“œ ์ค‘ ํ•˜๋‚˜์ธ update๋ฅผ ์ด์šฉํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋‘ ๊ฐœ๋ฅผ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, key๊ฐ’์ด ๋ชจ๋‘ ๊ฒน์น˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์ „์ œ์กฐ๊ฑด์ด ์žˆ๋‹ค. ๋งŒ์•ฝ ๊ฒน์นœ๋‹ค๋ฉด, ์ค‘๋ณต๋œ ๊ธฐ์กด key๊ฐ’์€ update์˜ ์ธ์ˆ˜๋กœ ๋„ฃ์–ด์ค€ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋œ๋‹ค. 2. key๊ฐ’์ด ๊ฒน์น  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋”•.. 2022. 1. 19.
Python_Call by Object Reference ํŒŒ์ด์ฌ์˜ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. Call by Object Reference ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ€ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์•„๋ž˜์˜ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ณด์ž! def tomato(apple): print(apple)# [0] apple.append(1)# 1 ์ถ”๊ฐ€ print(tomato)# [0,1] print(apple)# [0,1] carrot = [0] tomato(carrot) print(carrot) #print(apple) apple์€ local๋ณ€์ˆ˜๋ผ์„œ ๋‹น์—ฐํžˆX -------- # [0] # [0,1] # [0,1] # [0,1] ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด์ž carrot์ด๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ํ• ๋‹น์ด ๋œ๋‹ค. carrot์„ tomato๋ผ๋Š” ํ•จ์ˆ˜์— ๋„ฃ์–ด์„œ carrot์€ apple์ด ๋˜.. 2022. 1. 18.
Python_์—ฌ์ˆ˜๋ฐค๋ฐ”๋‹ค '์•„' ํšŸ์ˆ˜๋ฅผ ์„ธ์–ด๋ณด์ž 'ํ์•„ใ…ใ…'๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๋งˆ๋‹ค ํ•œ ์ž”์„ ํ•˜๋Š” '์žฅ๋ฒ”์ค€ ๊ฒŒ์ž„'๋„ ์žˆ๋Š” ๋งŒํผ ์—ฌ์ˆ˜๋ฐค๋ฐ”๋‹ค ๋…ธ๋ž˜์˜ '์•„' ํšŸ์ˆ˜๋ฅผ ์„ธ์–ด๋ณด์•˜๋‹ค. ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์ด ์กฐ๋ช…์— ๋‹ด๊ธด ์•„๋ฆ„๋‹ค์šด ์–˜๊ธฐ๊ฐ€ ์žˆ์–ด ๋„ค๊ฒŒ ๋“ค๋ ค์ฃผ๊ณ ํŒŒ ์ „ํ™œ ๊ฑธ์–ด ๋ญํ•˜๊ณ  ์žˆ๋ƒ๊ณ  ๋‚˜๋Š” ์ง€๊ธˆ ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์•„ ์•„ ์•„ ์•„ ์•„ ์–ด ์–ด ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ๋‹ค ์ด ๋ฐ”๋‹ค๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ์–ด ์ด ๊ฑฐ๋ฆฌ๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ๋‹ค ์ด ๋ฐ”๋‹ค๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ์–ด ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์ด ๋ฐ”๋žŒ์— ๊ฑธ๋ฆฐ ์•Œ ์ˆ˜ ์—†๋Š” ํ–ฅ๊ธฐ๊ฐ€ ์žˆ์–ด ๋„ค๊ฒŒ ์ „ํ•ด์ฃผ๊ณ ํŒŒ ์ „ํ™œ ๊ฑธ์–ด ๋ญํ•˜๊ณ  ์žˆ๋ƒ๊ณ  ๋‚˜๋Š” ์ง€๊ธˆ ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์—ฌ์ˆ˜ ๋ฐค๋ฐ”๋‹ค ์•„ ์•„ ์•„ ์•„ ์•„ ์–ด ์–ด ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ๋‹ค ์ด ๋ฐ”๋‹ค๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ์–ด ์ด ๊ฑฐ๋ฆฌ๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๊ฑท๊ณ  ์‹ถ๋‹ค ์ด ๋ฐ”๋‹ค๋ฅผ ๋„ˆ์™€ ํ•จ๊ป˜ ๋„ˆ์™€ ํ•จ๊ป˜ ์˜ค ๋ฐ”๋‹ค ์ด ์กฐ๋ช…์— ๋‹ด๊ธด ์•„๋ฆ„๋‹ค์šด ์–˜๊ธฐ๊ฐ€ .. 2022. 1. 17.
Python_๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ Python์œผ๋กœ ์ด๊ฒƒ์ €๊ฒƒ ๊ฐ€์ง€๊ณ  ๋†€๋‹ค๊ฐ€ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์žˆ์–ด์„œ ํ•œ ๋ฒˆ ๊ธฐ๋กํ•ด๋ณด์•˜๋‹ค! 1. ์Šฌ๋ผ์ด์‹ฑ ์ด์šฉํ•˜๊ธฐ [::step] a = "dissaK si eman olleH" result = a[::-1] # Hello my name is Kassid ํŒŒ์ด์ฌ์˜ ์Šฌ๋ผ์ด์‹ฑ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํด๋ก (:)์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šฌ๋ผ์ด์‹ฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ a=[1,2,3,4,5,6,7,8,9] a[1:6] #[2,3,4,5,6] ์œ„์˜ ์˜ˆ์‹œ๊ฐ€ ๊ธฐ์กด์— ์•Œ๊ณ ์žˆ์—ˆ๋˜ ์Šฌ๋ผ์ด์‹ฑ์ด๋‹ค. ์ด ์ƒํƒœ์—์„œ ํ•œ ๊ฐ€์ง€๋ฅผ ๋” ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค! [์‹œ์ž‘:๋:๊ฐ„๊ฒฉ] a = [1,2,3,4,5,6,7,8,9] a[1:6:2] #[2,4,6] a[1:6:3] #[2,5] a[6:1:-1] #[7,6,5,4,3] 0๊ณผ ๊ฐ€์žฅ ๋ ์ธ๋ฑ์Šค๋ฅผ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ.. 2022. 1. 17.
python _ id()ํ•จ์ˆ˜_์ถ”๊ฐ€๋กœ ์•Œ๊ฒŒ ๋œ ์ ! ์ „์— ๋‹ค๋ค˜์—ˆ๋˜ id()ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ ์กฐ๊ธˆ ๋” ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์ด๋‹ค! id()ํ•จ์ˆ˜๋Š” ์ง€์ •ํ•œ '๊ฐ์ฒด'์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ ์œ„์น˜, ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. a=1 id(a) >>> 1532352 ์œ„์™€ ๊ฐ™์€ ์˜ˆ์‹œ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. ๋‹ค์Œ์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด a=1 b=a c=b d=1 print(id(a)) print(id(b)) print(id(c)) print(id(d)) >>> 1532352 >>> 1532352 >>> 1532352 >>> 1532352 b=a ์™€ ๊ฐ™์€ ๋Œ€์ž… ์—ฐ์‚ฐ์„ ์ด์ „์— ๋ฐฐ์—ด์„ ํ†ตํ•ด์„œ ๋‹ค๋ค˜์—ˆ๊ณ , ์ •์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ™์€ ๊ณผ์ •์„ ์‹คํ–‰ํ•ด๋ณด์ง€ ์•Š์•˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์œ„์—์„œ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ •์ˆ˜ ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค! ์ด์— ๋Œ€ํ•ด์„œ ์กฐ์‚ฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค. 1. Python์˜.. 2021. 12. 30.
์›น ํฌ๋กค๋ง _ ๋ฆฌ๊ทธ์˜ค๋ธŒ๋ ˆ์ „๋“œ ์ „์  ๊ฒ€์ƒ‰๊ธฐ ๊ฐœ์š” ์œ ๋ช… ๊ฒŒ์ž„ '๋ฆฌ๊ทธ์˜ค๋ธŒ๋ ˆ์ „๋“œ'์˜ ์ „์  ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ์ธ OP.GG์—์„œ ์›น ํฌ๋กค๋ง์„ ํ•ด๋ณด์•˜๋‹ค! ์‚ฌ์šฉ์ž๊ฐ€ ๋‹‰๋„ค์ž„์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•ด๋‹น ์œ ์ €์˜ ์ตœ๊ทผ 20๊ฐœ์˜ ๊ฒŒ์ž„ ์ „์ ์ด ์ถœ๋ ฅ์ด ๋œ๋‹ค. โ–ผ์ฝ”๋“œ https://github.com/Bluishhot-Star/WEB/blob/master/LolStatCrawl.py ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ bs4, requests ๊ณผ์ • ์‚ฌ์ดํŠธ์˜ url์„ ์‚ดํŽด๋ณด๋‹ˆ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์ฐฝ์— ์œ ์ €์˜ ๋‹‰๋„ค์ž„์„ ์ž…๋ ฅํ•˜๋ฉด API๊ฐ€ ์ž…๋ ฅํ•œ ๋‹‰๋„ค์ž„์„ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์œ„์˜ url์„ ์กฐ๊ธˆ ๋ถ„์„ํ•ด๋ณด๋ฉด api์ฃผ์†Œ์ธ summoner ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ์ธ userName=(์‚ฌ์šฉ์ž๋‹‰๋„ค์ž„) ์ด๋•Œ userName์•ž์— ?๊ฐ€ ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค.(?๋ฅผ ์ž…๋ ฅํ•ด๋„ ์ •์ƒ ์ž‘๋™๋จ!) ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์„œ ํฌ๋กค๋ง ํ• .. 2021. 12. 27.