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

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด67

ํŒŒ์ด์ฌ map, filter ํ•จ์ˆ˜(with. iterator) iterator(๋ฐ˜๋ณต์ž) ํŒŒ์ด์ฌ์—์„œ iterator(๋ฐ˜๋ณต์ž)๋Š” ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Iterator๋Š” __iter__์™€ __next__ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋กœ, __iter__๋Š” ์ž๊ธฐ ์ž์‹ ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , __next__๋Š” ๋‹ค์Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋” ์ด์ƒ ๋ฐ˜ํ™˜ํ•  ๊ฐ’์ด ์—†์„ ๋•Œ StopIteration ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์ˆœํšŒ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ„๋‹จํ•œ iterator๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค class MyIterator: def __init__(self, start, end): self.start = start self.end = end def __iter__(self): return self def __next__(self): if self.start >= self.end: rai.. 2023. 12. 17.
ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜, ๋”•์…”๋„ˆ๋ฆฌ ์ปดํ”„๋ฆฌํ—จ์…˜์˜ ๋ชจ๋“  ๊ฒƒ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(List Comprehension) ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์€ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์€ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: [ํ‘œํ˜„์‹ for ํ•ญ๋ชฉ in iterable if ์กฐ๊ฑด] - ํ‘œํ˜„์‹: ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ณ„์‚ฐ์‹ ๋˜๋Š” ํ‘œํ˜„์‹์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. - ํ•ญ๋ชฉ: ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ(iterable) ๊ฐ์ฒด์—์„œ ๊ฐ€์ ธ์˜จ ๊ฐ’์ž…๋‹ˆ๋‹ค. - iterable: ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋ฌธ์ž์—ด ๋“ฑ)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. - ์กฐ๊ฑด: ์„ ํƒ์ ์œผ๋กœ ํฌํ•จํ•  ์กฐ๊ฑด์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์€ ํ•„์š”์— ๋”ฐ๋ผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘์—์„œ ์ง์ˆ˜.. 2023. 12. 12.
ํŒŒ์ด์ฌ ์ŠคํŽ˜์…œ ๋ฉ”์„œ๋“œ์˜ ๋ชจ๋“  ๊ฒƒ(__init__, __str__, __len__ ๋“ฑ) ํŒŒ์ด์ฌ์—์„œ ์ŠคํŽ˜์…œ ๋ฉ”์„œ๋“œ(๋˜๋Š” ๋งค์ง ๋ฉ”์„œ๋“œ)๋Š” ์ด์ค‘ ์–ธ๋”์Šค์ฝ”์–ด๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ ์ด๋ฆ„์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ์ฒด์˜ ํŠน์ • ๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋“ค์€ ํด๋ž˜์Šค์— ์ •์˜๋˜๋ฉฐ, ๋‚ด์žฅ ํ•จ์ˆ˜๋‚˜ ์—ฐ์‚ฐ์ž ๋“ฑ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ŠคํŽ˜์…œ ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜์™€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. 1. __init__(self, ...): ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋กœ, ์ดˆ๊ธฐํ™”๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. class MyClass: def __init__(self, x): self.x = x obj = MyClass(10) 2. __str__(self), __repr__(self): ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. class MyClass: def __init__(self, x): self.x = x d.. 2023. 12. 11.
ํŒŒ์ด์ฌ ์˜ˆ์™ธ์ฒ˜๋ฆฌ(Exception)์˜ ๋ชจ๋“  ๊ฒƒ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์™ธ ์ƒํ™ฉ ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ƒํ™ฉ์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—†๋Š” ํŒŒ์ผ ์—ด๊ธฐ >>> f = open("abc.txt", 'r') Traceback (most recent call last): File "", line 1, in FileNotFoundError: [Errno 2] No such file or directory: 'abc.txt' Zero division >>> 4 / 0 Traceback (most recent call last): File "", line 1, in ZeroDivisionError: division by zero index error >>> a = [1, 2, 3] >>> a[3] Traceback (most recent call last): File "", lin.. 2023. 12. 10.
ํŒŒ์ด์ฌ ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€์˜ ๋ชจ๋“  ๊ฒƒ ๋ชจ๋“ˆ ๋ชจ๋“ˆ์€ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ •์˜ํ•œ ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜๋“ค์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. import mod print(mod.add(3,4)) from ๋ชจ๋“ˆ_์ด๋ฆ„ import ๋ชจ๋“ˆ_ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ๋ชจ๋“ˆ ์ด๋ฆ„ ์—†์ด ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. from mod import add add(3,4) # ๋ชจ๋“ˆ ์ด๋ฆ„ ์—†์ด ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ๋งŒ ์‚ฌ์šฉ from ๋ชจ๋“ˆ_์ด๋ฆ„ import * ํ˜•ํƒœ๋กœ ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์˜ ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŽธํ•˜๋‹ค๊ณ  import *๋กœ๋Š” ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.(ํ•ญ์ƒ ๋ช…์‹œ์  ํ˜ธ์ถœ์ด ๊ฐ€์žฅ ์ข‹์€ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค) from mod import * add(3,4) # import *๋Š” mod ํŒŒ์ผ์˜ ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ if __name __ = “main” # mod.py def add(a.. 2023. 12. 9.
ํŒŒ์ด์ฌ ์ž…์ถœ๋ ฅ(ํ‘œ์ค€, ํŒŒ์ผ ๋“ฑ)์˜ ๋ชจ๋“  ๊ฒƒ ๋“ค์–ด๊ฐ€๋ฉฐ ์ž…์ถœ๋ ฅ์˜ ์ข…๋ฅ˜ ๋ฐ ํ‘œ์ค€ ์ž…์ถœ๋ ฅ, ํŒŒ์ผ ์ž…์ถœ๋ ฅ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์„ค๋ช…์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. [C++] 13-1. ์ž…์ถœ๋ ฅ(feat. ํ‘œ์ค€์ž…์ถœ๋ ฅ๊ณผ ํŒŒ์ผ์ž…์ถœ๋ ฅ) โœ… ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ์€ ํ•˜๋‚˜์˜ ํ๋ฆ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ˆ˜๋„๊ผญ์ง€๋ฅผ ํ‹€์–ด๋†“๊ณ  ๋„ค๋ชจ๋‚œ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋ฌผ์ด ๋„ค๋ชจ ๋ชจ์–‘์œผ๋กœ ๋‚˜์˜ค๊ณ , ๋™๊ทธ๋ž€ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋™๊ทธ๋ž—๊ฒŒ ๋‚˜์˜จ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ๋ฌผ์„ ๊ณต๊ธ‰ ground90.tistory.com ํ‘œ์ค€ ์ž…์ถœ๋ ฅ input >>>> a = input("์ž…๋ ฅํ•˜์„ธ์š”: ") # ์ž…๋ ฅ ์ž…๋ ฅํ•˜์„ธ์š”: abc >>>> print(a) 'abc' output # ํฐ๋”ฐ์˜ดํ‘œ ์—ฌ๋Ÿฌ๊ฐœ print >>>> print("Let" "it" "be") 'Letitbe' >>>> print("Let"+"it"+"be") 'Letit.. 2023. 12. 5.