๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“๐Ÿ’ช/Python

Python ํŠน๊ฐ• (1)

by ์ˆ˜์จ”์•™ 2022. 9. 5.

 python์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด, 

c, java ๋Š” ์ปดํŒŒ์ผ ์–ธ์–ด

 

python์€ ๋ฌธ๋ฒ•์ด ์‰ฝ๊ณ  ๊ฐ„๊ฒฐํ•˜๊ณ , ์ƒ์‚ฐ์„ฑ์ด ์ข‹์•„์„œ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„์ด ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ์ข‹๋‹ค

 

 

์ฝ”๋“œ ์ปจ๋ฒค์…˜

๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…์„ ํ•  ๋•Œ, ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ๋‚˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ฝ๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ •ํ•ด๋†“์€ ์•ฝ์†์ด๋‹ค

์•ˆ์ง€์ผœ๋„ ์ž˜ ๋Œ์•„๊ฐ€๊ธด ํ•จ!

ํŒ€ ํ”„๋กœ์ ํŠธ ํ•  ๋•Œ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“๊ณ  ์‹œ์ž‘ํ•˜๋ฉด ์ข‹์„ ๋“ฏ!!

 

ํŒŒ์ด์ฌ ์ปจ๋ฒค์…˜ ๊ฐ€์ด๋“œ

https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python co

peps.python.org

 

ํŒŒ์ด์ฌ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜(์–ธ์–ด๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค!)

1. Pascal : ๊ฐ ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ

2. Snake :  ๊ฐ ๋‹จ์–ด๋ฅผ _๋กœ ๊ตฌ๋ถ„

3. Camel : ์ฒซ ๋‹จ์–ด ๊ธ€์ž ์†Œ๋ฌธ์ž, ๋‚˜๋จธ์ง€ ๋‹จ์–ด๋Š” ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž

๋“ฑ๋“ฑ ๋งŽ์€๋ฐ ์œ„์˜ 3๊ฐ€์ง€๊ฐ€ ์ œ์ผ ์ž˜ ์“ฐ์ž„

 

ํด๋ž˜์Šค๋Š” pascal 

ex) class SomeClassName:

 

ํ•จ์ˆ˜, ๋ณ€์ˆ˜์„ ์–ธ ์€ snake :

ex) def some_function_name(),

 

์ƒ์ˆ˜๋Š” ๋Œ€๋ฌธ์ž

ex) PIE = 3.14

 


 

python ๋ณ€์ˆ˜์„ ์–ธ

 

๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜๋ฅผ ํ•œ๋ฒˆ์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฆฌ์ŠคํŠธ๋„!

 

๋ณ€์ˆ˜์˜ ์ฒซ ๋ฌธ์ž์— ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค!

I(๋Œ€๋ฌธ์ž i), l(์†Œ๋ฌธ์ž L), O(๋Œ€๋ฌธ์ž o)์™€ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๋‹จ์ผ ๋ฌธ์ž ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ!

ํฐํŠธ์— ๋”ฐ๋ผ I, l, 1 ํ˜น์€ 0, O ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

 

 

list, type, class์™€ ๊ฐ™์ด python์—์„œ ์ด๋ฏธ ์„ ์–ธ ๋˜์–ด ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ๋ณ€์ˆ˜ ๋ช…์œผ๋กœ ์„ ์–ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š”

์ค‘๋ณต์„ ํ”ผํ•˜๊ธฐ ์œ„์— ๋ณ€์ˆ˜ ๋ช… ๋’ค์— ์–ธ๋”๋ฐ”( _ )๋ฅผ ์ถ”๊ฐ€ํ•˜์ž

ex) list_ = [1,2,3,4]

 


 

์ž๋ฃŒํ˜•์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•

  • integer(int)
    • ์ •์ˆ˜ ์ž๋ฃŒํ˜•
    • number = 10 ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ •์ˆ˜ ์ž๋ฃŒํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜์ ์€ ์ง€์›ํ•˜์ง€ ์•Š์Œ
    • ์‚ฌ์น™์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ๊ณ„์‚ฐ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • float
    • ์‹ค์ˆ˜ ์ž๋ฃŒํ˜•
    • number = 10.3 ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์†Œ์ˆ˜์ ์„ ์ง€์›.
    • ์‚ฌ์น™์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ๊ณ„์‚ฐ์‹์„ ์ง€์›
    • ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•˜์ž

https://www.youtube.com/watch?v=ZQDsWySjY6g

  •  string(str)
    • ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•
    • hello = "world!!" ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณ€์ˆ˜์— ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ.
    • ํŒŒ์ด์ฌ์—์„œ๋Š” ๋”ฐ์˜ดํ‘œ( ‘ )์™€ ์Œ๋”ฐ์˜ดํ‘œ( “ )๋ฅผ ๊ตฌ๋ถ„X. (๋Œ€์‹  ์ผ๊ด„๋˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์Œ)
    • ๋”ฐ์˜ดํ‘œ ํ˜น์€ ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ 3๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ ๋ฌธ์žฅ ํ˜น์€ ์ฃผ์„ ํ‘œํ˜„ ๊ฐ€๋Šฅ

  • list
    • numbers = [1, 2, 3, 4, 5] ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ 1๊ฐœ ์ด์ƒ์˜ ๊ฐ’์„ ํ•œ ๋ณ€์ˆ˜์— ๋‹ด์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
    • list ์š”์†Œ์—๋Š” integer, float, string, dictionary, list ๋“ฑ ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ.
  • tuple
    • numbers = (1, 2, 3 ,4, 5)์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ ๋ฆฌ์ŠคํŠธ์™€ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ.
    • tuple ์ž๋ฃŒํ˜•์€ ๊ฐ’์„ ์„ ์–ธํ•œ ํ›„ ์š”์†Œ๋“ค์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œX.
  • set
    • numbers = {1, 2, 3, 4, 5}์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ ๋ฆฌ์ŠคํŠธ์™€ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ.
    • ๋ฆฌ์ŠคํŠธ ๋ชป๋„ฃ๋Š”๋‹ค
    • set ์ž๋ฃŒํ˜•์€ ์ค‘๋ณต ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜X.
  • dictonary(dict)
    • members = {”1”: “lee”, “2”: “park”, “3”: “kim”} ๊ณผ ๊ฐ™์ด  {key: value} ์Œ
    • key์—๋Š” integer, float, string ์ž๋ฃŒํ˜•์ด, value์—๋Š” integer, float, string, dictionary, list ๋“ฑ ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜• ๋‹ด๊น€
  • boolean(bool)
    • flag = True ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ True ํ˜น์€ False ๋‘ ๊ฐ’๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ„๊ธฐ๋ฌธ( if ) ํ˜น์€ ํ•ฉ๊ฒฉ / ๋ถˆํ•ฉ๊ฒฉ๊ณผ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉ

 


 

๋ณ€์ˆ˜ ์œ ํšจ ๋ฒ”์œ„

: ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์œ„์น˜๋‚˜ ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ผ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„

์ง€์—ญ๋ณ€์ˆ˜ (ํ•จ์ˆ˜ ์•ˆ์—์„œ ์„ ์–ธ)

์ „์—ญ๋ณ€์ˆ˜ (ํ•จ์ˆ˜ ๋ฐ–์—์„œ ์„ ์–ธ)

 

 

์ง€์—ญ๋ณ€์ˆ˜(local variable)

def func1():
    number = 10 # ํ•จ์ˆ˜ ๋‚ด์—์„œ number๋ผ๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ
    
def func2():
    print(number) # func1์—์„œ ์ƒ์„ฑ๋œ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” funt2์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
    
func1()
func2()

"""
Traceback (most recent call last):
  File "sample.py", line 8, in <module>
    func2()
  File "sample.py", line 5, in function2
    print(number)
NameError: name 'number' is not defined
"""

func1์—์„œ ์„ ์–ธ๋œ number์€ func2์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

 

์ „์—ญ๋ณ€์ˆ˜(global variable)

number = 10 # ํ•จ์ˆ˜ ๋ฐ–์—์„œ number๋ผ๋Š” ์ „์—ญ ๋ณ€์ˆ˜ ์ƒ์„ฑ

def func():
    print(number) # ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์ž์œ ๋กญ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
    
func() # ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด 10์ด ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋œ number๋Š” func์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋˜๋„๋ก ์ „์—ญ๋ณ€์ˆ˜ ์‚ฌ์šฉ์€ ์ง€์–‘ํ•œ๋‹ค.

์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ์ถ”์ ์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

PIE = 3.14์ฒ˜๋Ÿผ ์ ˆ๋Œ€์ ์œผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ „์—ญ์ƒ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ์ „์—ญ๋ณ€์ˆ˜๋Š”

๋˜๋„๋ก ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฒƒ์ด ์ข‹๋‹ค.

 

 

์ „์—ญ๋ณ€์ˆ˜ ์œ ์˜ํ•  ์  

 

1. ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊พธ๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ ์ด ์•„๋‹ˆ๊ณ , ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ๋‹ค์‹œ ์„ ์–ธ์ด ๋œ๋‹ค

number = 10


def func():
    number = 5  # ์ „์—ญ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ๋‹ค์‹œ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค.
    print(number)
func() # 5

# ํ•จ์ˆ˜ ๋‚ด์—์„œ ์žฌํ• ๋‹น ๋œ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
print(number)  # 10

 

2. ์ „์—ญ๋ณ€์ˆ˜ ์‚ฌ์šฉ๊ณผ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ํ• ๋‹น์„ ๊ฐ™์ด ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น๋ณ€์ˆ˜๋ฅผ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

print(number)์—์„œ๋Š” number๋ผ๋Š” ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ธฐ ์ „ ์ถœ๋ ฅ์„ ํ•˜๋ ค๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ ๋ฐœ์ƒํ•œ๋‹ค.

number = 10

# ์ „์—ญ ๋ณ€์ˆ˜์ธ 10์„ ์ถœ๋ ฅํ•˜๊ณ  ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ๋‹ค์‹œ ์„ ์–ธํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ
def func():
    print(number)
    number = 5

# ์‹คํ–‰์‹œ์ผœ ๋ณด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
func()
"""
Traceback (most recent call last):
  File "sample.py", line 7, in <module>
    func()
  File "sample.py", line 4, in func
    print(number)
UnboundLocalError: local variable 'number' referenced before assignment
"""

 

3. ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด global์„ ํ†ตํ•ด ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

number = 10


def func():
    global number  # ํ•จ์ˆ˜์—์„œ number ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.
    number = 5  # global ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์—ญ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.


func()

print(number)  # 5

 

 

728x90

๋Œ“๊ธ€