2020. 8. 22. 15:54ใํ์ด์ฌ ๊ธฐ์ด
ํ์ด์ฌ ํจ์
ํ์ด์ฌ์ ํจ์์ ๋ํด์ ์์๋ณด์.
ํจ์์ ๊ตฌ์กฐ๋ ์ด๋ ๋ค.
def ํจ์๋ช
(๋งค๊ฐ๋ณ์):
<์ํํ ๋ฌธ์1>
<์ํํ ๋ฌธ์2>
return ๋ฆฌํด ๊ฐ
๋งค๊ฐ๋ณ์๋ก ๋ฌด์ธ๊ฐ ๊ฐ์ ์ฃผ๋ฉด ๊ฐ๊ณต์์ผ return๊ฐ์ ์ค๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํ์ง๋ง ๊ผญ ํจ์๋ผ๊ณ return๊ฐ์ด ์์ด์ผ ํ๋ ๊ฒ ์๋๋ค. ๊ฒฐ๊ณผ๊ฐ์ด ์๋ ํจ์๋ ์๋ค.
def sum(a,b):
print("%d, %d์ ํฉ์ %d์
๋๋ค." (a,b,(a+b))
sum(1,2)
์์ ๊ฐ์ ํจ์๋ ์ถ๋ ฅ๊ฐ๋ง ์ฃผ๊ณ return ๊ฐ์ ์ฃผ์ง ์๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ ๋ ฅ๊ฐ๋ ๊ฒฐ๊ณผ๊ฐ๋ ์๋ํจ์๋ ์๋ค.
def say():
print('Hi')
say()
--> ์ถ๋ ฅ๊ฐ๋ง ์๋ ํจ์์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ํจ์์์ ์ฌ๋ฌ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ฐ์ ๋์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น?
๋งค๊ฐ๋ณ์๋ก *args๋ฅผ ์ฃผ๋ฉด๋๋ค.
def sum_many(*args):
sum=0
for i in args:
sum = sum + i
return sum
์ ๋ง ๊ฐ๋จํ๋ค.
์กฐ๊ธ ์ฌํ๋ ๊ฐ๋ ์ผ๋ก ํค์๋ ํ๋ผ๋ฏธํฐ๋ ์ด์ฉํ ์ ์๋ค.
ํค์๋๋ฅผ ์ ๋ ฅํ๋ค๋ ๊ฒ์ ๋์ ๋๋ฆฌ์์์ key๋ฅผ ์ด์ฉํ๋ค๊ณ ํ ์ ์๋ค.
def print_kwargs(**kwargs):
for k in kwargs.keys():
if(k == "name"):
print("๋น์ ์ ์ด๋ฆ์ :"+k)
ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ ํ๋์ด๊ธฐ ๋๋ฌธ์ ํ๋๋ง ์ถ๋ ฅ๋๋ค. (๋ฌผ๋ก ํํ๋ก ์ซ์ ์ฌ๋ฌ๊ฐ๋ฅผ ์ถ๋ ฅํ ์๋ ์๋ค.)
๋ค์์ ๋งค๊ฐ๋ณ์์์์ ์ด๊ธฐ๊ฐ์ ์ค์ ํด๋ณด์.
def say_mysef(name, old, man=True):
print("๋์ ์ด๋ฆ์ %s ์
๋๋ค." % name)
print("๋์ด๋ %d์ด์
๋๋ค." % old)
if man:
print("๋จ์์
๋๋ค.")
else:
print("์ฌ์์
๋๋ค.")
say_mysef("๊ณต์ธ์ค",23)
say_mysef("๊ณต์ธ์ค",27,True)
say_mysef("๊ณต์ธ์ค",23)์ ์ธ๋ฒ์งธ ์นธ์ True, False๊ฐ ์์ด๋ ๋์๊ฐ๋ค. ๊ธฐ๋ณธ์ True๋ก ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ name๊ณผ old์ ์์น๋ฅผ ๋ฐ๊ฟ๋ name = "๊ณต์ธ์ค" ์ด๋ ๊ฒ ๋ช ์ํด์ค๋ค๋ฉด ์ ์์ ์ผ๋ก ์คํ๋๋ค.
ํจ์์ ๋ฒ์
ํจ์์ ๋ฒ์๋ผ๋ ๊ฒ์ ์ ํํ๋ 'ํจ์ ์์์ ์ฌ์ฉ๋๋ ๋ณ์'์ ๋ฒ์์ด๋ค.
์๋ฅผ๋ค์ด ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ํ์.
a = 1
def vartest(a)
a = a+1
vartest(a)
print(a)
a=2๊ฐ ์ถ๋ ฅ์ด ๋ ๊น? ์๋๋ค.
a๊ฐ ํจ์์์ ๋ค์ด๊ฐ๋ฉด์ a=2๊ฐ ๋ ๊ฒ์ด ๋ง์ง๋ง ํจ์๊ฐ๋๋๊ณ ๋ฐ์ผ๋ก ๋์ฌ ๋ ๋ค์ a=1์ด ๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ global a๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
a=1
def vartest():
global a
a = a+1
vartest()
print(a)
์ด๋ ๊ฒ ์์ฑํ๋ค๋ฉด a=2๊ฐ ๋์จ๋ค.
๋ค์์ ํจ์๋ฅผ ๋ณด๋ค ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด๋ณด๋ 'ํจ์'๋ฅผ ์์๋ณด์.
Lambda()
happy = [lambda a,b:a+b, lambda a,b :a*b]
print(happy[0](1,2))
์ด์ ๊ฐ์ด lambda๋ฅผ ์ด์ฉํ๋ฉด def์ ํจ์์ ์ด๋ฆ๋ ์ ์ง์๊ณ ์ ๋์ ์ผ๋ก ์ด์ฉํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์์๋ณด๊ฒ ๋ค.
์ ๋ ฅ์ ๋ง ๊ทธ๋๋ ์ฐ๋ฆฌ๊ฐ ํค๋ณด๋๋ฅผ ํตํด ์ ๋ ฅํ๋ ๊ฒ์ด๊ณ , ์ถ๋ ฅ์ ์ง๊ธ๊น์ง ์ฌ์ฉํด์จ print์ ๊ฐ๋ค.
์ ๋ ฅ์ ๊ธฐ๋ณธ์ input์ด๋ค.
์๋ฅผ๋ค์ด
number = input("์ซ์๋ฅผ ์
๋ ฅํ์ธ์: ")
์ฝ์์ฐฝ : ์ซ์๋ฅผ ์
๋ ฅํ์ธ์:
์์๊ฐ์ด ๋์ค๊ณ ๋งจ ๋ค์๋ ์
๋ ฅํ ์ ์๋ ์๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ๋ ์ซ์๋ฅผ ์
๋ ฅํ ํ
print(number)๋ฅผ ํด๋ณธ๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์
๋ ฅํ ๊ฐ์ด number๋ผ๋ ๋ณ์์ ์ ์ฅ๋๊ณ ๊ทธ๊ฒ์ด ์ถ๋ ฅ๊ฐ์ผ๋ก ๋์จ๋ค.
ํ์ผ ์ฝ๊ณ ์ฐ๊ธฐ
ํ์ผ ์์ฑํ๊ธฐ
์ฝ๋๋ฅผ ํตํด ํ์ผ์ ์์ฑํ ์๋ ์๋ค. ๋ช
๋ น์ด opne๋ง ๊ธฐ์ตํ๋ฉด ๋๋ค.
๋ง์ฝ ํ์ผ์ ์์ฑํ๊ณ ์ถ์ ๋๋
f = open("์ํ์ผ.txt", 'w')
f.close()
์ฌ๊ธฐ์ open์ ํ์ผ์ ์์ฑํ๋ ํจ์์ด๊ณ , ์ํ์ผ์ ์์ฑํ๋ ํ์ผ์ ์ด๋ฆ, w๋ ํ์ผ์ ๋ด์ฉ์ ์ธ ๋ ์ฌ์ฉํ๋ค.
ํ์ผ์ ์ฝ๋ ๊ฒ์ realline() ๊ณผ read()๊ฐ ์๋ค.
๋จผ์ readline()์ "ํ์ค์ฉ ์ฝ๋๋ค."์ด๋ค.
f = opne("์ํ์ผ.txt",'r')
line = f.readline()
print(line)
f.close()
์ ์ฝ๋๋ ํ์ผ์ ์ด์ด ํ์ค์ ์ฝ์ด์ ์ถ๋ ฅํ๋ ๋ฌธ์ฅ์ด๋ค. ์๊น๋ open๋ค์ 'w'๋ฅผ ์ ์์ง๋ง ์ด๋ฒ์๋ ์ฝ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ 'r'์ ์ฌ์ฉํ๋ค.
readline์ ํ์ค๋ง ์ฝ๋ ๊ฒ์ด์ง๋ง readlines๋ผ๊ณ ๋ฆฌ์คํธ๋ก ์ฝ๋ ๊ฒ์ด ์๋ค.
๋ฆฌ์คํธ๋ก ์ฝ๊ฒ ๋๋ค๋ฉด for๋ฅผ ์ด์ฉํ์ฌ ์์๋ณ์๋ฅผ ํตํด ํ๋์ฉ ์ถ๋ ฅํด์ผ ํ ๊ฒ์ด๋ค.
f = open("์ํ์ผ.txt", 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close
์ด์ฒ๋ผ ๋ง์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ์ ๋ค์ f.close๋ฅผ ํด์ฃผ๋๋ฐ, ์ด๋ฅผ ์ํ๊ฒ๋๋ฉด ํ์ผ์ด ๋ซํ ๊ฒ ์๋๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ฐ์ ์์ฑํ ์ฝ๋์ ๊ฒน์น ์๊ฐ ์๋ค. ๊ทธ๋์ ๊น๋จน์ง๋ง๊ณ ํด์ฃผ๋๋ก ํ์.
๊ทธ๋ฆฌ๊ณ read()๋ ๋ฉ๋ชจ์ฅ์ ์๋ ๊ธ ์ ์ฒด๋ฅผ ์ฝ๋ ๊ฒ์ด๋ค.
w๋ ์๋ก์ด ํ์ผ์ ๊ธ์ ์์ฑํ๋ ๊ฒ์ด๊ณ , r์ ์ฝ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ธฐ์กด์ ๋ด์ฉ์ ๋ ๊ธ์ ์ถ๊ฐํ๊ณ ์ถ์ ๋๋ ๋ฌด์์ ์ ๋ ฅํ๋ฉด ๋ ๊น? ์ด๋ ๋ช ๋ น์ด a๋ฅผ ์ ๋ ฅํ๋ฉด ํด๊ฒฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ with๋ฌธ์ ์ฐ๊ฒ๋๋ค๋ฉด f.close๋ฅผ ์ํด๋ ๋๋ค. ๊ทธ ๋๋ง ์ฐ๊ณ ๊ทธ ๋ ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
ํํ๋ with open(ํ์ผ์์น, '๋ช
๋ น์ด') as ๋ณ์: ์ด๋ค.
๋.
'ํ์ด์ฌ ๊ธฐ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ ์์ด-next_purmutations(Biggest is greater) (0) | 2022.02.07 |
---|---|
ํ์ด์ฌ์ ์์ํ๋ฉด์-5 (0) | 2020.08.24 |
ํ์ด์ฌ์ ์์ํ๋ฉด์-3 (0) | 2020.08.20 |
ํ์ด์ฌ์ ์์ํ๋ฉด์-2 (0) | 2020.08.20 |
ํ์ด์ฌ์ ์์ํ๋ฉด์ (0) | 2020.08.19 |