1. mutable & immutable

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป  mutable : ์ƒ์„ฑ๋œ ํ›„์—๋„ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜• 

        ex. list, set, dict

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป immutable : ์ƒ์„ฑ๋œ ํ›„์—๋Š” ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜• 

        ex. int, float, str, tuple

# mutable
# ํ• ๋‹น๋ฐ›๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ
# id() : ๊ฐ์ฒด์˜ ๊ณ ์œ ๊ฐ’ ๋ฐ˜ํ™˜. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ
me = [1, 2, 3]
print(id(me)) # 4370596288
me.append(4)
print(id(me)) # 4370596288 / ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ์ด ๋˜์ง€ ์•Š์Œ

# immutable
# ํ•œ ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ์ตœ์ดˆ๋กœ ์ €์žฅ๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ
obj = 10
print(id(obj)) # 4343431696
obj = obj + 1
print(obj) # 11
print(id(obj)) # 4343431728 / ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋จ
# ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ƒˆ๋กœ ํ• ๋‹น์„ ๋ฐ›์•„์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ

 


 

2. % ์—ฐ์‚ฐ์ž

      %s : string 

      %f : float

      %d : decimal (์‹ญ์ง„๋ฒ•)
name = 'Kai'
print('๋‚ด ์ด๋ฆ„์€ %s ์ž…๋‹ˆ๋‹ค.' % name) # ๋‚ด ์ด๋ฆ„์€ Kai ์ž…๋‹ˆ๋‹ค. 
print('๋‚ด ์ด๋ฆ„์€ ', name, '์ž…๋‹ˆ๋‹ค.', sep='')
print('๋‚ด ์ด๋ฆ„์€ ' + name + '์ž…๋‹ˆ๋‹ค.')

height = 120.5
print('๋‚ด ํ‚ค๋Š” %fcm์ž…๋‹ˆ๋‹ค.' % height)  # ๋‚ด ํ‚ค๋Š” 120.500000cm์ž…๋‹ˆ๋‹ค. 

weight = 23.55
print('๋‚ด ๋ชธ๋ฌด๊ฒŒ๋Š” %.1fkg์ž…๋‹ˆ๋‹ค.' % weight)  # ๋‚ด ๋ชธ๋ฌด๊ฒŒ๋Š” 23.6kg์ž…๋‹ˆ๋‹ค.

year, month, day = 2014, 8, 25
print('๋‚ด ์ƒ์ผ์€ %d๋…„ %d์›” %d์ผ ์ž…๋‹ˆ๋‹ค.' % (year, month, day))
# ๋‚ด ์ƒ์ผ์€ 2014๋…„ 8์›” 25์ผ ์ž…๋‹ˆ๋‹ค.

 


 

3. ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป  ์ผ๋ฐ˜์ ์ธ ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž : ์กฐ๊ฑด์‹ ? ์ฐธ : ๊ฑฐ์ง“
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป  ํŒŒ์ด์ฌ ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž : ์ฐธ if ์กฐ๊ฑด์‹ else ๊ฑฐ์ง“

a = 10
b = 20
result = (a - b) if (a >= b) else (b - a)
print('{}๊ณผ {}์˜ ์ฐจ์ด๋Š” {}์ž…๋‹ˆ๋‹ค.'.format(a, b, result)) # 10๊ณผ 20์˜ ์ฐจ์ด๋Š” 10์ž…๋‹ˆ๋‹ค.

 

4. ์ง€์—ญ๋ณ€์ˆ˜/์ „์—ญ๋ณ€์ˆ˜

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

 

  ๐Ÿ“  ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ.  ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ๋Š” ์ง€์—ญ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ

def f():
    a = 10
    print(f'f()๋‚ด๋ถ€ : {a}')

f()  # f() ๋‚ด๋ถ€ : 10
# print(f'f() ์™ธ๋ถ€ : {a}')  # ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ๋Š” a ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 


 

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


๐Ÿ“ ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€๋‚˜ ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

def f():
    print(f'f() ๋‚ด๋ถ€ : {b}')  

b = 10 # ์ „์—ญ๋ณ€์ˆ˜
f() # f() ๋‚ด๋ถ€ 10
print(f'f() ์™ธ๋ถ€ : {b}')  # f() ์™ธ๋ถ€10

# 1) ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ๋‹จ์ˆœํžˆ ์ฐธ์กฐ๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ -> ์ฝ๊ธฐ๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ
a = 0
def f():
    print(a)  # ํ•จ์ˆ˜ f() ๋‚ด๋ถ€์—์„œ ์ „์—ญ๋ณ€์ˆ˜ a๋ฅผ ์ฐธ์กฐ

f()  # 0
print(a)  # 0 / ํ•จ์ˆ˜ f() ์™ธ๋ถ€์—์„œ ์ „์—ญ๋ณ€์ˆ˜ a๋ฅผ ์ฐธ์กฐ


# 2) ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ
a = 0

def f():
    global a  # ์ „์—ญ๋ณ€์ˆ˜ a๋ฅผ ์‚ฌ์šฉ
    a = 10  # ์ „์—ญ๋ณ€์ˆ˜ a์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ

f()  # ํ•จ์ˆ˜ f() ์‹คํ–‰
print(a)  # 10 / ์ „์—ญ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ํ™•์ธ

 

 

 

 

 

[ ๋‚ด์šฉ ์ฐธ๊ณ  :  IT ํ•™์› ๊ฐ•์˜ ]

+ Recent posts