Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

히바리 쿄야 와 함께 하는 Developer Cafe

[3일차] DO IT 점프 투 파이썬/p150 ~ p181/ 함수 본문

Python

[3일차] DO IT 점프 투 파이썬/p150 ~ p181/ 함수

TWICE&GFRIEND 2021. 2. 19. 17:57
함수를 먼저 정의해야 함 

def add(a,b):
    return a + b
add 라는 함수를 먼저 정의함     

a = 3

b = 4

c = add(a, b)

print(c)
7

print(add(3,4))
7



def 함수이름(매개변수):
수행할 문장
...
return 결과값

a = add(3,4)

print(a)
7

결과값을 받을 함수 = 함수이름(입력인수 1, 인력인수 2,...)


def hello():
    return 'hello'
헬로우라는 함수를 정의    

a = hello()
헬로우 함수를 a 변수에 저장
print(a)  a값을 호출
hello 결과값 나옴

결과값이 없는 함수를 호출하면 돌려주는 값이 없기 떄문에 add 함수를 사용
add(3,4)

함수이름(입력인수1, 입력인수2)


Out[12]: 7

def love():
    print("I Love You")
    

love()
I Love You

매개변수 값도 없고 return 문도 없으므로 입력값도 결과값도 없는 함수이다
입력값도 없고 결과값도 없을때에는
함수이름() 를 사용한다


책에는 add 라는 메소드를 사용했는데 곱하기 메소드로 바꿔서 함수를 정의해봄
def mul(a,b):
    return a*b
    

result = mul(a=3,b=7)

print(result)
21

result = mul(b=8,a=3)

print(result)


def 함수이름(*매개변수):
수행할 문장
...


def add_many(*args):
    result = 0
    for i in args:
        result += i
    return result
    

result = add_many(1,2,3)

print(result)
6

result = add_many(1,2,3,4,5,6,7,8,9,10)

print(result)
55



def add_mod(choice, *args):
    if choice == "add":
        result = 0
        for i in args:
            result = result + i
    elif choice == "minus":
        result = 100
        for i in args:
            result = result - i
    elif choice == "mul":
        result = 2
        for i in args:
            result = result * i
    elif choice == "div":
        result = 10
        for i in args:
            result = result / i
    elif choice == "mod":
        result = 10
        for i in args:
            result = result % i
    return result
    

result = add_mod('add',1,2,3,4,5)

print(result)
15

result = add_mod('minus',1,2,3,4,5)

print(result)
85

result = add_mod('mul',1,2,3,4,5)

print(result)
240

result = add_mod('div',1,2,3,4,5)

print(result)
0.08333333333333334

result = add_mod('mod',1,2,3,4,5)

print(result)
0


키워드 파라미터를 사용할 때에는 매개변수 앞에 별 두개 (**) 를 붙인다.


def print_kwargs(**kwargs):
    print(kwargs)
    

print_kwargs(a=1)
{'a': 1}

print_kwargs(name='kim',age=24)
{'name': 'kim', 'age': 24}


def love(love):
    if love == "사랑":
        return
    print("나는 당신을 %s합니다." % love)
    

love('싫어')
나는 당신을 싫어합니다.

love('사랑')


def say_myself(name, old, woman=True):
    print("나의 이름은 %s 입니다." % name)
    print("나이는 %d 살 입니다." % old)
    if woman:
        print("여자 입니다.")
    else:
        print("남자 입니다.")
        

say_myself("김소정",24)
나의 이름은 김소정 입니다.
나이는 24 살 입니다.
여자 입니다.

say_myself("김소정",24,True)
나의 이름은 김소정 입니다.
나이는 24 살 입니다.
여자 입니다.


say_myself("강동원",42,False)
나의 이름은 강동원 입니다.
나이는 42 살 입니다.
남자 입니다.



#vartest.py
a = 1
def vartest(a):
    a = a + 1
    
vartest(a)
print(a)

1



#vartest_error.py
# a = 1
def vartest(a):
    a = a + 1
    
vartest(3)
print(a)

NameError: name 'a' is not defined

4

변수 a 를 초기화 하지 않았기 때문에 오류 발생

해결하려면 변수를 초기화 하거나 return 을 사용해야 한다


#vartest_global.py
a = 1
def vartest():
    global a
    a = a + 1
    
vartest()
print(a)

2


lambda 매개변수1, 매개변수2,...: 매개변수를 사용한 표현식

add = lambda a, b: a+b

result = add(3,4)

print(result)
7

def add(a, b):
    return a+b
    

result = add(3,4)

print(result)
7

input 함수 사용자 입력 
a = input()

Life is too short, you need python

a
Out[27]: 'Life is too short, you need python'

number = input("숫자를 입력하세요: ")

숫자를 입력하세요: 1

print(number)
1

a = 123

print(a)
123

a = "Python"

print(a)
Python

a = [1,2,3]

print(a)
[1, 2, 3]


큰따옴표("") 로 둘러싸인 문자열은 + 연산자와 동일하다
print("life" "is" "too short")
lifeistoo short

print("life"+"is"+"too short")
lifeistoo short

문자열 띄어쓰기는 콤마로 구분한다.
print("life","is","too short")
life is too short

for i in range(10):
    print(i, end=' ')
    
0 1 2 3 4 5 6 7 8 9 



f = open("새파일.txt",'w')
f.close()

파일 객체 = open(파일이름,파일열기모드)

r : 읽기 모드 - 파일을 읽기만 할때 사용
w : 쓰기 모드 - 파일에 내용을 쓸 때 사용
a : 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

#writedata.py
# f = open("D:\Python\새파일.txt",'w')
# for i in range(1,11):
#     data = "%d번째 줄입니다.\n" % i
#     f.write(data)
# f.close()

for i in range(1,11):
    data = "%d번째 줄입니다.\n" % i
    print(data)
    
1번째 줄입니다.

2번째 줄입니다.

3번째 줄입니다.

4번째 줄입니다.

5번째 줄입니다.

6번째 줄입니다.

7번째 줄입니다.

8번째 줄입니다.

9번째 줄입니다.

10번째 줄입니다.


#readline.py
f = open("D:\Python\새파일.txt",'r')
line = f.readline()
print(line)
f.close()

1번째 줄입니다.


#readline_all.py
f = open("D:\Python\새파일.txt",'r')
while True:
    line = f.readline()
    if not line:break
    print(line)
f.close()

1번째 줄입니다.

2번째 줄입니다.

3번째 줄입니다.

4번째 줄입니다.

5번째 줄입니다.

6번째 줄입니다.

7번째 줄입니다.

8번째 줄입니다.

9번째 줄입니다.

10번째 줄입니다.


f = open("D:\Python\새파일.txt",'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()

1번째 줄입니다.

2번째 줄입니다.

3번째 줄입니다.

4번째 줄입니다.

5번째 줄입니다.

6번째 줄입니다.

7번째 줄입니다.

8번째 줄입니다.

9번째 줄입니다.

10번째 줄입니다.


#adddata.py
f = open("D:\Python\새파일.txt",'a')
for i in range(11,20):
    data = "%d 번째 줄입니다.\n" % i
    f.write(data)
f.close()

1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.
11 번째 줄입니다.
12 번째 줄입니다.
13 번째 줄입니다.
14 번째 줄입니다.
15 번째 줄입니다.
16 번째 줄입니다.
17 번째 줄입니다.
18 번째 줄입니다.
19 번째 줄입니다.


with open("direct.txt","w") as f:
    f.write("Life is too short, you need python")
    
    
#sys1.py
import sys

args = sys.argv[1:]
for i in args:
    print(i)


#sys2.py
import sys

args = sys.argv[1:]
for i in args:
    print(i.upper(), end=' ')
    
    
Comments