python์ด ์ฒ์์ด๋ฉด ์์ํ ๊ธฐ๋ณธ์ ์ธ ์ฉ์ด๋ค์ ๋ํด ์ ๋ฆฌํด ๋ณด์์ต๋๋ค!
๋ ์์ธํ๊ฒ ํฌ์คํ ํ ์์ ์ด๋ผ ๊ฐ๋จํฉ๋๋ค. ๐
๐ ๊ธฐ์ด ์ฉ์ด ์ ๋ฆฌ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ(library) : ํจํค์ง๋ฅผ ๋ชจ์๋์ ๊ฒ
- ํจํค์ง(package): ๋ชจ๋์ ๋ชจ์ ๋์ ๊ฒ
- ๋ชจ๋(module) : ํจ์, ๋ณ์, ํด๋์ค ๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ชจ์๋์ ๊ฒ
- ํด๋์ค(class) : ์์ฑ๊ณผ ํจ์๋ฅผ ํฌํจํ๋ ๊ตฌ์กฐ (ํด๋น ๋ธ๋ก๊ทธ OOP ์นดํ ๊ณ ๋ฆฌ์์ ๋ ์์ธํ๊ฒ ๋ค๋ฃจ๊ณ ์์ต๋๋ค)
- ๋ฉ์๋(method) : ํด๋์ค ์์ ์ ์๋ ํจ์
- ํจ์(function) : ์ ๋ ฅ๊ฐ์ ๋ฐ๊ณ ์ง์ ํ ์ฐ์ฐ์ ์ํํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ
- ๊ฐ์ฒด(object) : ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง ๋ชจ๋ ๊ฒ
โก๏ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ≥ ํจํค์ง ≥ ๋ชจ๋ ≥ ํด๋์ค ≥ ๋ฉ์๋ = ํจ์
์ฒ์๋ถํฐ ๋ชจ๋ ํจ์๋ฅผ ํ๋ํ๋ ์ธ์ฐ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์ตํ๊ณ , ๋์ค์ ๊ตฌ๊ธ๋งํด์ ์ฌ์ฉํ ์ ์์ ์ ๋๋ก๋ง ์๊ฐํ๋ฉด ๋ฉ๋๋ค!
๋น์ฐํ ์์ฃผ ์ฌ์ฉํ๋ ํจ์๋ค์ ์์ฐ์ค๋ฝ๊ฒ ์ธ์์ง๋๋ค! ๐ค ๊ทธ๋์ ๊ตฌ๊ธ๋ง ํ์ ๋ํด์ ๊ฐ์ด ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
๐ Googling Tips
- "๋ฐ์ดํ" : "๋ฐ์ดํ์์ ๋ด์ฉ์ ๊ทธ๋๋ก" ๊ฒ์
- ํ์ดํ(-) : "mustard-cars"๋ก ๊ฒ์ํ๋ฉด, 'car'์ด๋ผ๋ ๋จ์ด ์ ์ธํ๊ณ ๊ฒ์
- ์ฝ๋ก (:) : "์์ทจ์๋ฆฌ:naver.com"๋ก ๊ฒ์ํ๋ฉด, ํน์ ์ฌ์ดํธ ๋ด์์ ๊ฒ์
- ๋ณํ(*) : ๋ ธ๋ ๊ฐ์ฌ ์ฐพ๊ธฐ ์์ (ex) "come*right now*me" → Beatles song
- ์ ์ฌํ ์ฌ์ดํธ ์ฐพ๊ธฐ : "related:amazon.com" → ์๋ง์กด๊ณผ ์ ์ฌํ ์ฌ์ดํธ ๊ฒ์
- ํ๋ฒ์ ์ฌ๋ฌ ๋จ์ด ๊ฒ์(OR) : (ex) "chocolat OR white chocolate"
- ์ซ์ ๋ฒ์ ๊ฒ์(..) : ์ซ์๋ฅผ ํ๋๋ง ์ฐ๋ฉด ์ด์ ์ด๋ ์ดํ๋ฅผ ์ ์ธ, ๋๊ฐ๋ฉด ๋ฒ์
(ex) 41..43, what teams have won the Stanley Cup..2004 - ๊ฒ์ ๋ฐ๋ก๊ฐ๊ธฐ(*word*)
(ex) time *place* → ์ ๋ ฅํ ์ฅ์์ ์๊ฐ์ ๋ฐ๋ก ํ์
(ex) def *word* → ์ ๋ ฅํ ๋จ์ด์ ์ ์๋ฅผ ๋ฐ๋ก ํ์ - ํน์ ํ์ผ ์ฐพ๊ธฐ : pandas*filetype.pdf
์ถ๊ฐ๋ก ์ฒ์ python์ ๋ฐฐ์ธ ๋, PEP 8์ด๋ผ๋ python์ ๋ง๋ ๊ฐ๋ฐ์๋ค์ด ์์ฑํ ์ฝ๋ฉ ์คํ์ผ ๊ฐ์ด๋์ ๋ํด ๊ฐ๋จํ๊ฒ ๋ณด๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค! ๐๊ฐ๋ฐ์ ํผ์ ํ๋ ๊ฒ์ด ์๋๊ธฐ๋๋ฌธ์, ๊ฐ๋ ์ฑ ์๊ณ ์ผ๊ด์ฑ ์๋ ์ฝ๋๋ ํ์ ๊ฐ ๋งค์ฐ ์ค์ํ ์์์ ๋๋ค.
์ธ ์ด ๋ฒ๋ฆ ์ฌ๋ ๊ฐ๋ค๊ณ , ์ฒ์ ๋ฐฐ์ธ ๋๋ถํฐ ์ ๋ฐฐ์๋๋ฉด ์ข์ผ๋๊น์! ์๋์ ์ ๊ฐ ์์ฑํ ๋ธ๋ก๊ทธ ๋งํฌ ์ฒจ๋ถํฉ๋๋ค. ํ์ด์ฌ ๊ณต์ ์ฌ์ดํธ๋ฅผ ํ ๋๋ก ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค.
https://imdona.tistory.com/31?category=985565
1. ์๋ณ์(Identifier)
์ํค๋ฐฑ๊ณผ์ ์ํ๋ฉด, ์ด๋ค ๋์์ ์ ์ผํ๊ฒ ์๋ณ·๊ตฌ๋ณํ ์ ์๋ ์ด๋ฆ์ ๋ปํ๋ค. ์๋ณ์๋ ์ ๋ณด๋ฅผ ๋ค๋ฃจ๋ ๋ชจ๋ ์ฒด๊ณ์์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๋๋ฐ, ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๊ทธ ์ ๋ณด๋ฅผ ๊ฐ๋ฆฌํฌ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฝ์ด ID๋ ์๋ณ(identity), ์๋ณ ๊ณผ์ (identification), ์๋ณ์๋ฅผ ์๋ฏธํ๊ธฐ๋ ํ๋ค. ์๋ณ์๋ ๋จ์ด, ์ซ์, ๋ฌธ์, ๊ธฐํธ, ๋ ์ด๋ค์ ์ด๋ ํ ๊ฒฐํฉ๋ ๋ ์ ์๋ค.
โก๏ธ ๊ฒฐ๋ก : ํ๋ก๊ทธ๋๋ฐ์์ ํด๋์ค, ํจ์, ๋ณ์๋ฅผ ๊ตฌ๋ถ·์ง์นญํ๊ธฐ ์ํด์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ๋งํ๋ค.
โช๏ธ Identifier Rule(๊ท์น)
- ํค์๋(keyword) 1, ์์ฝ์ด(reserved word)๋ ์ฌ์ฉํ ์ ์๋ค. 2
- ํน์๋ฌธ์๋ _๋ง ํ์ฉ (์ฆ, ์๋ฌธ์, ์ซ์, _์ ์กฐํฉ์ผ๋ก๋ง ๊ตฌ์ฑ)
- ์ซ์๋ 2๋ฒ์งธ ๋ฌธ์๋ถํฐ ํ์ฉ
- ๊ณต๋ฐฑ(๋์ด์ฐ๊ธฐ) ํ์ฉX
- ์์ด ๋·์๋ฌธ์ ๊ตฌ๋ถํจ
- ์ ๋์ฝ๋ ๋ฐฉ์์ ์ฌ์ฉ
- [์ฐธ๊ณ ] ๋๋ชจ๋ ๋ณ์ ์ด๋ฆ(mnemonic varaiable name)์ด๋? ๐ค ๋ณด๋ ์ฌ๋์ ์ํด ์ ์ ํ ์ ํ๋ ๋ณ์ ์ด๋ฆ, ๊ธฐ์ตํ๊ธฐ ์ฌ์ด์ด๋ผ๋ ๋ป์ผ๋ก, ๋ณ์ ์ด๋ฆ์ ์ง์ ๋ ์ฌ์ฉ ๋ชฉ์ ๋ฑ์ ๋ง๊ฒ ์ง์ด์ง ์ด๋ฆ์ ๋งํฉ๋๋ค. ์ ๋ ์์ด์ฌ์ , ์์ด ์ ์์ด ์ฌ์ ์ ์ ์ฉํ๋ ํธ์
๋๋ค. ์ ๋ง ๊ฐ๋จํ ์๋ก, ์ด๋ฆ์ ๋ณ์๋ก ์ง์ ํ๊ณ ์ถ์ ๋,
a = 'dona'
์ฒ๋ผ ์๋ฌด ์๋ฏธ๊ฐ ์๋a
๋ณด๋ค๋name = 'dona'
๊ณผ ๊ฐ์ด ๋ณ์ ์ด๋ฆ๋ง ๋ณด์๋ ๊ทธ ๋ชฉ์ ๋ฑ์ ์ ์ถํ ์ ์๋ ์ด๋ฆ์ด ์ข์ต๋๋ค! ๐
โช๏ธ Identifier Convention(๊ด๋ก)
- ๊ท์น(Rule)๊ณผ ๊ด๋ก(convention)์ ์ฐจ์ด
- ๊ท์น : ์์งํค๋ฉด Error
- ๊ด๋ก : ์์งํจ๋ค๊ณ Error๊ฐ ๋์ง๋ ์์ง๋ง, ๋ ์ค์ํ๋ค!
1) Camel Case(๋ํ)
- ํ๋ก๊ทธ๋๋ฐ์์ ํ์ผ, ๋ณ์, ํจ์ ๋ฑ ๋์์ ์ด๋ฆ์ ๋์ด์ฐ๊ธฐ ์์ด ์ง๊ธฐ ์ํ์ฌ ๋ฐ๋ฅด๋ ๊ด๋ก์ธ ๋ค์ด๋ฐ์ปจ๋ฒค์ (Naming convention)์ ํ๋ - ์ํค๋ฐฑ๊ณผ ์ฐธ๊ณ
- ๋ฌธ์์ ๋ฌธ์์ ํฉ์ฑ์ด๋ฅผ ์ฌ์ฉํ ๋, ๋ค์ ๋ฌธ์๋ ๋๋ฌธ์๋ก ์์ํ๋ค.
- ๋จ, ์ฒซ๋ฒ์งธ ๋ฌธ์๊ฐ ๋๋ฌธ์์ธ ๊ฒฝ์ฐ์๋ง ์ ์ฉ โก๏ธ ์ฆ, Class(ํด๋์ค)์ ์ด๋ฆ์ ์ง์ ํ ๋๋ง ์ ์ฉ๋๋ค (ํด๋์ค ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์ํจ)
- ๋ฌธ์์ ๋ฌธ์๊ฐ ์กฐํฉ๋ ๋, 2๋ฒ์งธ ๋ฌธ์ ์ฒซ๋ฒ์งธ ๊ธ์๋ ๋ค์ ๋๋ฌธ์
- (ex) PersonInfo (O) / personInfo (X), CoffeHouse (O) / coffeHouse (X)
2) snake_case(๋ฑ) : _
- snake case(stylized as snake_case)๋ ๊ฐ ๊ณต๋ฐฑ์ด ๋ฐ์ค(_)๋ก ๋์ฒด๋๊ณ , ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์๋ฌธ์๋ก ์ฐ์ฌ์ง ์ฐ๊ธฐ ์คํ์ผ
- ๋ณ์๋ช ๊ณผ ํจ์๋ช ์ ๋ฌด์กฐ๊ฑด ์๋ฌธ์๋ก ์์
- ์๋ฌธ์๋ก ์์ํ๋ ๋ชจ๋ ์ด๋ฆ์ snake_case ๊ธฐ๋ฒ์ ๋ฐ๋ฅธ๋ค.
- (ex)
get_info()
,house_name
## code example
# ํ์ด์ฌ์์ '='๋ ํ ๋นํ๋ค, ์ ์ฅํ๋ค์ ์๋ฏธ๋ก ์๊ฐํ์!
name = 'Dona'
first_name, last_name = 'Dona', 'Lim' # ๋ ๋ณ์ ๋์์ ํ ๋น๋ ๊ฐ๋ฅ!
2. ์ถ๋ ฅ๋ฌธ(print)
โช๏ธpython print documentation
python ๊ณต์ documentation์ ์ฐธ๊ณ ํ๋ฉด ์๋์ ๊ฐ์ ์ธ์์ ๋ํดํธ ์ต์ ๊ฐ๋ค์ ์ ์ ์๋ค. end ์ธ์๊น์ง๋ ์์ฃผ ์ฌ์ฉํจ์ผ๋ก ์์๋์!
# ํ์
print(*values , sep =' ', end = '\n', file = sys.stout, flush = False)
* values
: ์ถ๋ ฅ ๋์์ด ๋๋ ํญ๋ชฉ๋ค (์ฌ๋ฌ ๊ฐ๋ ,๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅ์ด ๊ฐ๋ฅํจ)sep = ' '
: ์ถ๋ ฅ ๋์๋ค ์ฌ์ด์ ๊ตฌ๋ถ์(separation) (๋ํดํธ๋ ํ๋์ ๊ณต๋ฐฑ)end = '\n'
: ์ถ๋ ฅ๊ฐ๊ณผ ์ด์ด์ ์ถ๋ ฅ, ๋์ ์ถ๊ฐ ๊ธฐ๋ฅ (๋ํดํธ๋ ๊ฐํ : ์ค๋ฐ๊ฟ, '\n')- ๋ค์์ ์ด์ค์ผ์ดํ ๋ฌธ์(\)๋ก, end์ ๋ํ์ ์ธ ์ต์
- \t : ํญ(tab)
- \\ : ์ถ๋ ฅ ๋ฌธ์์ด ๋ด \ ํ๊ฐ ์ถ๋ ฅ
- \"\" (or \'\') : ์ถ๋ ฅ ๋ฌธ์์ด ๋ด ํฐ๋ฐ์ดํ(or ์์๋ฐ์ดํ) ์ถ๋ ฅ
file = sys.stout
: ์ถ๋ ฅ ๋์ (๋ํดํธ๋ ์ฝ์ sys.stout)flush = False
: ์ถ๋ ฅ ๋ฒํผ๋ฅผ ๋น์ฐ๋ ๊ธฐ๋ฅ
โช๏ธpython print ํ์ฉํ๊ธฐ
์ฒ์ฒํ ์ฝ์ด๋ณด๊ณ , ์์ ์ฝ๋๋ฅผ ๋๋ ค๋ณด๊ธฐ ๐
- ์ฌ๋ฌ ์ค ํ๋ฒ์ ์ถ๋ ฅํ๊ธฐ : """ """ or ''' ''' ์ฌ์ด์ ๋ฃ์ด์ ํ ๋น or printํด์ค๋ค. ์์์ฝ๋ ์ฐธ๊ณ !
- ์ฌ๋ฌ๊ฐ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ : ์ฝค๋ง(,) ๋ฐ ๋ํ๊ธฐ(+)๋ ๊ณต๋ฐฑ์ ํฌํจํ์ฌ ์ฌ๋ฌ๊ฐ๋ฅผ ์ถ๋ ฅ
- ์ธ๋ฏธ์ฝ๋ก (;)์ ์ค๋ฐ๊ฟ
- ๋ฌธ์์ด ์์ ์๋ฐ์ดํ(") ๋๋ ํ๋ฐ์ดํ(')๋ฅผ ๋ฃ๋ ๋ฐฉ๋ฒ : ์์์ฝ๋ ์ฐธ๊ณ !
- ์ด์ค์ผ์ดํ ๋ฌธ์์ด๊ณผ ํจ๊ป ํ๋ฆฐํธ ํด๋ณด๊ธฐ : ์์์ฝ๋ ์ฐธ๊ณ !
- \" : ๋ฌธ์์ด์ด ์๋๋ผ ๋จ์ํ ํฐ๋ฐ์ดํ๋ก ์ธ์
- \' : ๋ฌธ์์ด์ด ์๋๋ผ ๋จ์ํ ํ๋ฐ์ดํ๋ก ์ธ์
## example code
# ํ๋๋ง ์ถ๋ ฅ
print("ํ๋๋ง ์ถ๋ ฅํด์")
# ์ฌ๋ฌ๊ฐ ์ถ๋ ฅ
print(1, 2, 3, 4, "์ฌ๋ฌ๊ฐ์ผ")
print("Hello", "World")
print("Do" + "na")
# ์ฌ๋ฌ ์ค ํ๋ฒ์ ์ถ๋ ฅ
print("""1. ๋ํด๋ฌผ๊ณผ
2. ๋ฐฑ๋์ฐ์ด
3. ๋ง๋ฅด๊ณ ๋ณ๋๋ก
4. ํ๋๋์ด ๋ณด์ฐํ์ฌ
5. ์ฐ๋ฆฌ ๋๋ผ ๋ง์ธ
""")
# ์ธ๋ฏธ์ฝ๋ก (;) : ์ค๋ฐ๊ฟ
print("์๋
ํ์ธ์; ๋๋์
๋๋ค.")
# ๋ฌธ์์ด ์์ "" ์๋ฐ์ดํ ๋ฃ๊ธฐ
greet = '์๋
ํ์ธ์ "Dona"์
๋๋ค.'
print(greet)
# ๋ฌธ์์ด ์์ '' ํ๋ฐ์ดํ ๋ฃ๊ธฐ
greet = "์๋
ํ์ธ์ 'Dona'์
๋๋ค."
print(greet)
# ์ด์ค์ผ์ดํ ๋ฌธ์์ด ์ฌ์ฉ
print(" \"์ต๊ณ ์ผ~~!!\" ๋ผ๊ณ ๋งํ์ต๋๋ค ")
print("์๋
ํ์ธ์. \n๋ฉค๋ฒ๋ค์ ์๊ฐํฉ๋๋ค.")
print('='*30)
print("์ด๋ฆ\t๋์ด\t์ฃผ์")
print("dona\t20\t์์ธํน๋ณ์")
print("semi\t20\t์์ธํน๋ณ์")
# sep : ๊ตฌ๋ถ์ -> ๊ฐ๋ผ ๋์ ๋ฌธ์๋ฅผ ์ง์ ํ ์ ์๋ค!
print('S','E','P', sep='@') # S@E@P -> @๊ฐ ๊ตฌ๋ถ์๊ฐ ๋๋ค.
print(a,b,sep=':') #3:16 -> :๊ฐ ๊ตฌ๋ถ์๊ฐ ๋๋ค.
# end : ๋์ ์ถ๊ฐ
print("Dona")
print("Dona", end = "์
๋๋ค.")
### ํน์๋ฌธ์ ์ถ๋ ฅ : \ ํ์ฉ
## "!@#$%^&*()' ์ถ๋ ฅํ๊ธฐ
# case 1 : ์ถ๋ ฅํ ๋ฌธ์์ธ ๋ฐ์ดํ ์์ \ ๋ถ์ด๊ธฐ
print('\"!@#$%^&*()\'')
# case 2 : f์คํธ๋ง ํ์ฉ
a='"'
print(f"{a}!@#!@$%'")
Reference
- ์๋ณ์ - ์ํค๋ฐฑ๊ณผ
- python keyword documentation - python ๊ณต์ ํํ์ด์ง
- camel case - ์ํค๋ฐฑ๊ณผ
- Snake case - ์ํคํผ๋์
- ์ด์ค์ผ์ดํ ๋ฌธ์ ๊ด๋ จ ์ฐธ๊ณ ๋ธ๋ก๊ทธ
์ธ ์ฐธ๊ณ ํ ๊ธฐ์ด ๊ฐ์ ์ฌ์ดํธ url์ [python] (0) OT : My Python Timeline ํฌ์คํ ์ ์์ต๋๋ค. ๐
๐ ๊ฐ์ฃผ
- ํ์ด์ฌ์์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๋ ์ธ์ด๋ก, ์ฌ์ฉ์๊ฐ ์ผ๋ฐ์ ์ธ ์๋ณ์๋ก ์ฌ์ฉํ ์ ์๋ ๋จ์ด๋ค์ ๋งํ๋ค. ํค์๋๋ ์์ฝ์ด๋ฅผ ํฌํจํจ [๋ณธ๋ฌธ์ผ๋ก]
- ์์ฝ์ด๋ ํค์๋์ ๋ถ๋ถ์งํฉ์ผ๋ก, ๋ชจ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฉฐ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ์๋ณ์์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ๋ฅํจ. ํท๊ฐ๋ฆฌ๋ฉด ์ฐ์ ๋ ํฐ ์๋ฏธ์ธ ํค์๋๋ ์๋ณ์๋ก ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ๋ง ์ ์ํ๋ฉด ๋๋ค! [๋ณธ๋ฌธ์ผ๋ก]