ν‹°μŠ€ν† λ¦¬ λ·°

πŸ“š ν•¨μˆ˜μ˜ 이해

 

πŸ“˜ ν•¨μˆ˜μ˜ κ°œλ…


⁕ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λͺ…λ Ήλ¬Έμ˜ μ§‘ν•©

β‡’ νŠΉμ • μž‘μ—…μ„ ν•©μˆ˜μ˜ μ΄λ¦„μœΌλ‘œ λŒ€μ²΄
β‡’ μœ μ‚¬ν•œ μœ ν˜•μ˜ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ„λ‘ κ³ λ €

⁕ μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜

β‡’ λ‚΄μž₯ ν•¨μˆ˜μ™€ 달리 μ‚¬μš©μžμ˜ λͺ©μ μ— 따라 μ •μ˜λœ ν•¨μˆ˜

⁕ λ°˜ν™˜κ°’μ— λ”°λ₯Έ ν•¨μˆ˜μ˜ μ’…λ₯˜

β‡’ λ°˜ν™˜κ°’μ΄ μ—†λŠ” ν•¨μˆ˜ : print
β‡’ λ°˜ν™˜κ°’μ΄ μžˆλŠ” ν•¨μˆ˜ : input, format, int λ“±

 


πŸ“š λ°˜ν™˜κ°’μ΄ μ—†λŠ” ν•¨μˆ˜ μ •μ˜


⁕ ꡬ문 ν˜•μ‹

β‡’ ν•¨μˆ˜ 이름은 μ‹λ³„μž
β‡’ λ§€κ°œλ³€μˆ˜ λ¦¬μŠ€νŠΈλŠ” 0개 μ΄μƒμ˜ 값을 ν•¨μˆ˜ λ‚΄λΆ€λ‘œ 전달
β‡’ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ λ§€κ°œλ³€μˆ˜ λ¦¬μŠ€νŠΈλŠ” λ³€μˆ˜μ™€ λ™μΌν•˜κ²Œ μ‚¬μš©

 

πŸ“˜ 원뿔 λΆ€ν”Ό 계산 ν•¨μˆ˜ μ •μ˜ & 호좜

def prt_cone_vol(r, h) :		# μ •μ˜
    if r > 0 and h > 0 :
        # r, h λͺ¨λ‘ μ–‘μˆ˜μΌ λ•Œ
        vol = 1/3 * 3.14 * r ** 2 * h
        print("μ›λΏ”μ˜ λΆ€ν”ΌλŠ”", vol, "μž…λ‹ˆλ‹€.")
    else :
        # r, hκ°€ 음수일 λ•Œ
        print("λ°˜μ§€λ¦„κ³Ό 높이 값에 μ–‘μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”")

rad = 20
hei = 30
prt_cone_vol(rad, hei)			# 호좜

 

πŸ“˜ 숫자λ₯Ό μž…λ ₯λ°›κ³  μ—­μˆœμœΌλ‘œ μΆœλ ₯ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œ ν”„λ‘œκ·Έλž¨ λ¬Έμ œ

num = 123456

def reverse_num(num) :	# num : μž…λ ₯ νŒŒλΌλ―Έν„°λ‘œμ¨μ˜ λ§€κ°œλ³€μˆ˜ num
    while num != 0 :
        digit = num % 10    # 1의 자리λ₯Ό digit에 μ €μž₯
        num = num // 10   # μ†Œμˆ˜μ  버림
        print(digit, end="")    # end="" : κ°œν–‰λ¬Έμž 제거

reverse_num(num)	# 1번 μ€„μ—μ„œ μ •μ˜ν•œ λ³€μˆ˜ num

# κ²°κ³Ό : 123456

 

 


πŸ“š λ°˜ν™˜κ°’μ΄ μžˆλŠ” ν•¨μˆ˜

// κ·Έλ™μ•ˆ λ‹€λ£¨λ˜ ν•¨μˆ˜λŠ” λ°˜ν™˜κ°’ 없이 ν•¨μˆ˜ λ‚΄μ—μ„œ 좜λ ₯ print()κΉŒμ§€ λ‹€ μ§„ν–‰λœ ν˜•νƒœ

 

πŸ“˜ λ°˜ν™˜κ°’μ΄ μžˆλŠ” ν•¨μˆ˜ μ •μ˜


⁕ ꡬ문 ν˜•μ‹


⁕ μ‹€ν–‰ ν›„ 결과값을 λ‚¨κΈ°λŠ” ν•¨μˆ˜

β‡’ return λͺ…령어와 λ°˜ν™˜κ°’μ„ μ—΄κ±°
β‡’ ν•¨μˆ˜ 내뢀에 μ—¬λŸ¬ 개의 return μ‚¬μš© κ°€λŠ₯

βœ“ 첫 번째 return이 λ‚˜μ˜€λŠ” μˆœκ°„, κ·Έ λ’€ μ½”λ“œλ“€μ€ μ‹€ν–‰ μ•ˆ 됨

 

πŸ“˜ format ν•¨μˆ˜

 

πŸ“˜ 원뿔 λΆ€ν”Ό κ³„μ‚° κ²°κ³Ό λ°˜ν™˜ ν•¨μˆ˜ μ •μ˜

def rtn_cone_vol(r, h) :
    if r > 0 and h > 0 :
        # r, h λͺ¨λ‘ μ–‘μˆ˜μΌ λ•Œ
        vol = 1/3 * 3.14 * r ** 2 * h
        return vol
    else :
        # r, hκ°€ 음수일 λ•Œ
        print("λ°˜μ§€λ¦„κ³Ό 높이 값에 μ–‘μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”")

print(format(rtn_cone_vol(10, 20), "<20.3f"), "μž…λ‹ˆλ‹€.")

# κ²°κ³Ό : 2093.333             μž…λ‹ˆλ‹€.

 

πŸ“˜ λ™μ‹œ ν• λ‹Ήμ˜ κ°œλ…

νŒŒμ΄μ¬μ—μ„œλŠ” μ‹œν€€μŠ€μ˜ κ°œλ…μ„ μ‚¬μš©ν•˜μ—¬
ν•˜λ‚˜μ˜ ν• λ‹Ή μ—°μ‚°μžλ§ŒμœΌλ‘œ μ—¬λŸ¬ 값듀을 ν•œ λ²ˆμ— 전달!

⁕ 볡수 개의 λ³€μˆ˜μ— 값을 λ™μ‹œμ— ν• λ‹Ή

β‡’ λ³€μˆ˜μ˜ κ°œμˆ˜μ— μƒμ‘ν•˜λŠ” 값을 콀마( , ) 둜 λ‚˜μ—΄

 

πŸ“˜ κ΅ν™˜ (swap)

⁕ νŒŒμ΄μ¬μ—μ„œλŠ” 볡수 개의 λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 값을 λ§žλ°”κΏˆ

 

πŸ“˜ 원뿔 λΆ€ν”Ό 및 겉넓이 λ°˜ν™˜ ν•¨μˆ˜ μ •μ˜

def rtn_cone_vol_surf(r, h) :
    if r > 0 and h > 0 :
        # r, h λͺ¨λ‘ μ–‘μˆ˜μΌ λ•Œ
        vol = 1/3 * 3.14 * 4 ** 2 * h
        surf = 3.14 * r ** 2 + 3.14 * r * h
        return vol, surf #λ™μ‹œμ— 리턴
    else :
        # r, hκ°€ 음수일 λ•Œ
        print("λ°˜μ§€λ¦„κ³Ό 높이 값에 μ–‘μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”")

vol1, surf1 = rtn_cone_vol_surf(50, 100)

print(format(vol1, ".3f"), "μž…λ‹ˆλ‹€.")
print(surf1, "μž…λ‹ˆλ‹€.")

'''
<κ²°κ³Ό>
1674.667 μž…λ‹ˆλ‹€.
23550.0 μž…λ‹ˆλ‹€.
'''

 

πŸ“˜ μ„Έ 개의 μ‚¬μš©μž μž…λ ₯을 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬μ •λ ¬λœ 값을 좜λ ₯ν•˜λŠ” 문제

a = int(input("첫 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: "))
b = int(input("두 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: "))
c = int(input("μ„Έ 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: "))

def sort3(a, b, c) :
    if a > b :
        a, b = b, a
    if a > c :
        a, c = c, a
    if b > c :
        b, c = c, b

    print(a, b, c)

sort3(a, b, c)

# ν•¨μˆ˜ λ‚΄λΆ€μ—λŠ” κ°’λ§Œ μ „λ‹¬λ˜λ―€λ‘œ λ³€μˆ˜μ—λŠ” 영ν–₯ μ—†μŒ
print("좜λ ₯ 이후", a, b, c)

'''
<κ²°κ³Ό>
첫 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: 34
두 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: 15
μ„Έ 번째 숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”: 50
15 34 50
좜λ ₯ 이후 34 15 50
'''

 


πŸ“š ν•¨μˆ˜μ˜ ν™•μž₯

 

πŸ“˜ κ°’μ˜ 전달


⁕ ν•¨μˆ˜κ°€ 호좜될 λ–„, 값이 ν˜•μ‹ λ§€κ°œλ³€μˆ˜μ— 전달 (κ°’ 전달 X)

β‡’ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ λ³€κ²½λœ 값은 외뢀에 반영될 수 μ—†λ‹€

def rtn_cone_vol(r, h) :
    if r > 0 and h > 0 :
        # r, h λͺ¨λ‘ μ–‘μˆ˜μΌ λ•Œ
        vol = 1/3 * 3.14 * r ** 2 * h
        r, h = 0, 0
        return vol
    else :
        # r, hκ°€ 음수일 λ•Œ
        print("λ°˜μ§€λ¦„κ³Ό 높이 값에 μ–‘μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”")

r = 50
h = 100
print(format(rtn_cone_vol(r, h), ">10.3f"))
print("ν•¨μˆ˜ μ‚¬μš© ν›„", r, h)

'''
<κ²°κ³Ό>
261666.667
ν•¨μˆ˜ μ‚¬μš© ν›„ 50 100
'''

⇨ 이름은 r, h 둜 μ„œλ‘œ κ°™μ•„ λ³΄μ΄μ§€λ§Œ, ν•¨μˆ˜ λ‚΄λΆ€μ˜ λ³€μˆ˜μ™€ μ™ΈλΆ€μ˜ λ³€μˆ˜λŠ” λ‹€λ₯΄λ‹€

 

πŸ“˜ λ³€μˆ˜μ˜ μŠ€μ½”ν”„

⁕ ν”„λ‘œκ·Έλž¨μ—μ„œ λ³€μˆ˜κ°€ 참쑰될 수 μžˆλŠ” μ˜μ—­

μ „μ—­λ³€μˆ˜ : ν”„λ‘œκ·Έλž¨ 전체 μ˜μ—­μ—μ„œ μ ‘κ·Ό κ°€λŠ₯

μ§€μ—­λ³€μˆ˜ : μ„ μ–Έλœ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯

x = 1

def inc1() :
	y = x + 1
    print("y의 값은", y)

inc1()
print("x의 값은", x)
print("y의 값은", y) # 였λ₯˜

# xλŠ” μ „μ—­λ³€μˆ˜ / yλŠ” μ§€μ—­λ³€μˆ˜
x = 1
# 1
print("1. x의 값은", x)

def inc(x) :    
    x = x + 1
    print("2. x의 값은", x)

# 2
inc(x)
# 3
print("3. x의 값은", x) 

'''
< κ²°κ³Ό >
1. x의 값은 1
2. x의 값은 2
3. x의 값은 1
'''

⇨ ν•¨μˆ˜ λ‚΄/μ™ΈλΆ€μ˜ λ³€μˆ˜λ“€λ‘œ 인해 ν˜Όλ™λ˜μ§€ μ•Šλ„λ‘ λ³€μˆ˜ 이름을 λͺ…ν™•νžˆ μ§€μ •ν•˜λŠ” 것이 tip

 

πŸ“˜ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜

⁕ ν•¨μˆ˜ 호좜 μ‹œ λ§€κ°œλ³€μˆ˜κ°€ μ „λ‹¬λ˜μ§€ μ•Šμ„ 경우 기본값이 μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜

print("Hello", "i am python")
print("Hello", "i am python", sep = "")
# sep = " " : 곡백 1κ°œκ°€ κΈ°λ³Έ κ°’
# sep = "" : 좜λ ₯κ°’λ“€ μ‚¬μ΄μ˜ 곡백 μ—†μ• κΈ°

⇨ sep = " " : 좜λ ₯ κ°’λ“€ 사이 곡백 1κ°œκ°€ κΈ°λ³Έ κ°’
⇨ sep = "" : 좜λ ₯ κ°’λ“€ 사이 곡백 제거
⇨ end = "" : κ°œν–‰λ¬Έμž 제거

# 원뿔 계산 ν•¨μˆ˜ μ •μ˜
def prt_cone_vol_surf(r = 20, h = 30) :
    if r > 0 and h > 0 :
        # r, h λͺ¨λ‘ μ–‘μˆ˜μΌ λ•Œ
        vol = 1/3 * 3.14 * r ** 2 * h
        surf = 3.14 * r ** 2 + 3.14 * r * h
        return vol, surf
        # return 1/3 * 3.14 * r ** 2 * h, 3.14 * r ** 2 + 3.14 * r * h
    else :
        # r, hκ°€ 음수일 λ•Œ
        print("λ°˜μ§€λ¦„κ³Ό 높이 값에 μ–‘μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”")

print("λ§€κ°œλ³€μˆ˜ κ°’ μ§€μ •O :", prt_cone_vol_surf(10, 15))
print("λ§€κ°œλ³€μˆ˜ κ°’ μ§€μ •X :", prt_cone_vol_surf())
# ν•¨μˆ˜ λ§€κ°œλ³€μˆ˜μ— 기본값을 μ§€μ •ν–ˆκΈ° λ•Œλ¬Έμ— μ—λŸ¬ λ°œμƒ μ•ˆ 함

'''
< κ²°κ³Ό >
λ§€κ°œλ³€μˆ˜ κ°’ μ§€μ •O : (1569.9999999999998, 785.0)
λ§€κ°œλ³€μˆ˜ κ°’ μ§€μ •X : (12559.999999999998, 3140.0)
'''

 

πŸ“˜ κΈ°λ³Έ λ§€κ°œλ³€μˆ˜μ˜ μ •μ˜

⁕ ꡬ문 ν˜•μ‹

β‡’ 일반 λ§€κ°œλ³€μˆ˜ μ•žμ— μœ„μΉ˜ν•  수 μ—†μŒ

 

πŸ“˜ κ°€λ³€ λ§€κ°œλ³€μˆ˜μ˜ μ •μ˜

// λ³€μˆ˜μ˜ κ°œμˆ˜κ°€ ν•œμ •λ˜μ–΄μžˆμ§€ μ•ŠμŒ

⁕ ꡬ문 ν˜•μ‹

β‡’ 일반 λ§€κ°œλ³€μˆ˜ μ•žμ— μœ„μΉ˜ν•  수 μ—†μŒ
β‡’ κ°€λ³€ λ§€κ°œλ³€μˆ˜λŠ” 1개만 μ‚¬μš© κ°€λŠ₯

βœ“ κ°€λ³€ λ§€κ°œλ³€μˆ˜λŠ” 전달될 λ•Œ 리슀트 ν˜•νƒœλ‘œ 전달 (forλ¬Έ μ‚¬μš© εΏ…)

 

πŸ“˜ μ—¬λŸ¬κ°œμ˜ μˆ˜λ₯Ό μž…λ ₯λ°›κ³  ν•©κ³Ό ν‰κ· μ„ λ°˜ν™˜ν•˜λŠ”λŠ” var_sum_avg ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬, (20, 25, 10, 85, 100, 150)에 λŒ€ν•œ ν•©κ³Ό ν‰κ· μ„ μΆœλ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

def var_sum_avg(*numbers) :
    sum = 0
    count = 0   # νŒŒλΌλ―Έν„° 개수 체크할 μš©λ„ (avg ꡬ해야 함)

    for num in numbers :
        sum = sum + num
        count = count + 1

    return sum, (sum/count)

print(var_sum_avg(20, 25, 10, 85, 100, 150))

'''
< κ²°κ³Ό >
(390, 65.0)
'''

 


 

λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG more
Β«   2025/06   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
κΈ€ 보관함