์ฝ๋ฉํ ์คํธ์์ ์ฌ์ฉ๋๋ Python ๊ธฐ๋ณธ
๐ต์ธ๋ดํธ
๊ณต๋ฐฑ 4์นธ์ด ์์น
๐ต๋ค์ด๋ฐ ์์น
Snake Case์ ์งํฅ - ์๋ฌธ์ + ๋จ์ด๋ฅผ ๋ฐ์ค(_)๋ก ๊ตฌ๋ถ
๐ต๋๋ค ํํ์
lambda ๋งค๊ฐ๋ณ์: ํํ์์ ํํ๋ก ์ฌ์ฉ๋๋ฉฐ,
์ฃผ๋ก map ํจ์์ ํจ๊ป ์ฌ์ฉ๋จ
map(lambda ๋งค๊ฐ๋ณ์: ํํ์, input๊ฐ)
๐ตList Comprehension
: ๊ธฐ์กด ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ด๋ ๋ฌธ์ฅ(๋ฒ์ 2.7 ์ดํ ๋์ ๋๋ฆฌ๋ ๊ฐ๋ฅ)
๋ฌธ๋ฒ๊ณผ ์๋ฏธ๋ฅผ ์ถ์ฝํ์ฌ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๊ฐ๋ ฅํ์ง๋ง, ๊ฐ๋ ์ฑ์ ๋จ์ด๋จ๋ฆฌ๋ ๋จ์ ์ด ์๋ค.
์์ ) 100 ์ดํ ์ง์์ 100์ ๊ณฑํ์ฌ๋ผ
[n*100 for n in range(1, 100+1) if n%2==0]
๐ตGenerator
: ๋ฐ๋ณต๋ฌธ์ ๋์์ ์ ์ดํ ์ ์๋ ๋ฃจํด ํํ
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ง ์๊ณ , ์ฐ์ฐ๋ง ๋ง๋ค์ด ๋ ๋ค์(yield) ์ฌ์ฉ(next) ํ๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ผ ์ ์์
์ฌ๋ฌ ํ์ ์ ๊ฐ์ ํ๋์ ํจ์์์ ์์ฑ ๊ฐ๋ฅ
์์ ) ์์ฐ์๋ฅผ ๊ตฌํ๋ Generator์ ๋ง๋ค๊ณ 100 ์ดํ์ ์์ฐ์์ ํฉ์ ๊ตฌํ์ฌ๋ผ.
def get_natural_number():
num=0
while True:
num+=1
yield num
g=get_natural_number()
for _ in range(0, 100+1):
sum+=next(g)
print(sum)
์์ ) ๋ค์ํ ์๋ฃํ์ ํฌํจํ๋ Generator์ ๋ง๋ค์ด๋ผ
def get_my_info():
yield 25
yield 162
g=get_my_info()
next(g) ##return 25
next(g) ##return 162
๐ตEnumerate
: ์ฌ๋ฌ ์๋ฃํ์ ์ธ๋ฑ์ค๋ฅผ ํฌํจํ enumerate ๊ฐ์ฒด๋ก ๋ฆฌํด
a=[0, 1, 2, 3, 4, 5]์ผ๋, ์ธ๋ฑ์ค์ ๊ฐ์ ํจ๊ป ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด
for index, value in enumerate(a):
print(index, value)
๐ต๋ฐ๋ณต๋ฌธ
์์ ) 0๋ถํฐ 10๊น์ง์ ํฉ์ ๊ตฌํ์ฌ๋ผ
# ver1. ๋ง์
์ฐ์ฐ์(+)๋ฅผ ์ด์ฉํ ๊ตฌํ
result=0
for i in range(0, 10+1):
result+=1
# ver2. ๊ธฐ๋ณธ ๋ด์ฅํจ์ sum()์ ์ด์ฉํ ๊ตฌํ
result=sum(i for i in range(0, 10+1))
# ver3. ๊ธฐ๋ณธ ๋ด์ฅํจ์ sum()์ ์ด์ฉํ ๊ตฌํ
result=sum(range(0, 10+1))
๐ตGeneric Progromming(ํ๋ผ๋ฏธํฐ ํ์ ์ด ๋์ค์ ์ง์ )
ํ์ด์ฌ์ ๊ฒฝ์ฐ ์๋ ๋์ ํ์ดํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ๋ผ๋ฏธํฐ ํ์ ์ด ๋์ค์ ์ง์ ๋๋ค.
ํ์ง๋ง, ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ํ์ ์ ๋ช ์์ ์ผ๋ก ํ์ํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค.
from typing import TypeVar
A=TypeVar('A')
B=TypeVar('B')
def var_type_is_equal(a:A, b:B ) -> bool:
return type(A)==type(B)
var_type_is_equal(25, 25.4)
๐ตํด๋์ค
ํ์ด์ฌ์ ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ ์ ์๋ค.
class Car:
price=0
wheel_num=0
temperature=0
# ์์ฑ์
def __init__(self, price:int=None, wheel_num:int=None, temperature:float=None)->None:
self.price=price
self.wheel_num = wheel_num
self.temperature = temperature
Genesis=Car()
Genesis.price=4000
๐ต๊ตฌ์กฐ์ฒด
ํ์ด์ฌ์ ๊ฒฝ์ฐ ๊ตฌ์กฐ์ฒด๊ฐ ์์์ผ๋
3.7 ๋ฒ์ ๋ถํฐ dataclass๋ฅผ ํ์ฉํด ๊ตฌ์กฐ์ฒด ํํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
dataclass๋ฅผ ํ์ฉํด ํด๋์ค๋ฅผ ์ ์ธํ๋ฉด ์ฌ๋ฌ ๊ฐ์ง ๋ด๋ถ ํจ์์ ๊ธฐ๋ฅ(__init__ ๋ฑ)์ ์๋์ผ๋ก ๊ตฌํํด ์ฃผ๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
from dataclasses import dataclass
@dataclass
class Car:
price: int=None
wheel_num: int=None
temperature: float=None
Genesis=Car()
Genesis.price=4000
๐ตPass
: ์ฝ๋์ ์ ์ฒด ๊ณจ๊ฒฉ์ ๋ง๋ค๊ณ ๋ด๋ถ์์ ์ฒ๋ฆฌํ ํจ์๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ฉด ์ฉ์ด
class Circle:
def get_radius(self):
pass
def get_area(self):
pass
'์๊ณ ๋ฆฌ์ฆ๐ฅ > ๋ฌธ์ ํ์ด (Python)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 561. array_partition_i (Easy) 2023/5/2 (0) | 2023.05.02 |
---|---|
[LeetCode] 15. 3sum (Medium) 2023/5/1 (0) | 2023.05.01 |
[LeetCode] 1. two_sum (Easy) 2023/4/29 (0) | 2023.04.29 |
[LeetCode] 5. longest_palindromic_substring (Medium) 2023/4/28 (0) | 2023.04.28 |
[LeetCode] 49. group-anagrams (Medium) 2023/4/28 (0) | 2023.04.28 |