01 함수
1 2 3 4 5 6 7 8 9 10 11 12 | a = 1 b = 2 c = -8 # a * x^2 + b * x + c = 0, a != 0 인 x에 관한 2차방정식에 대해 # 근의 공식은 def print_sqrt(): r1 = (-b + (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) r2 = (-b - (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) print('해는 {} 또는 {}'.format(r1, r2)) print_sqrt() | cs |
Java의 메서드와 유사한 기능을 하는 것 같다. def 통해 선언하고 매개변수를 설정할 수 있다.
Java 외길 인생인 나로선 상당히 당황스럽다. 메서드로 치면 public void print_sqrt() 이려나...
함수의 특징은 다음과 같다.
1. 함수는 코드의 덩어리에 이름을 붙인 것이다.
2. 우리는 새 함수를 만들 수 있다.
3. print는 미리 만들어진 함수이다.
4. 함수는 한 번 만들고 나며, 그 안은 잊어버려도 좋다.
선언 방법
def 함수이름(매개변수):
실행할 코드
다음과 같이 매개변수 명이 달라도 상관없다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | def print_root(a, b, c): r1 = (-b + (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) r2 = (-b - (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) print('해는 {} 또는 {}'.format(r1, r2)) x = 1 y = 2 z = -8 print_root(x, y, z) a = 2 b = -6 c = -8 print_root(a, b, c) def print_round(number): rounded = round(number) print(number) print_round(5) | cs |
02 return
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def add_10(value): if value < 10: return -1 result = value + 10 return result def print_root(a, b, c): r1 = (-b + (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) r2 = (-b - (b ** 2 - 4 * a * c) ** 0.5) / (2 * a) return r1, r2 # 여러개의 값을 반환할 수 있다. print(add_10(20)) print(print_root(1, 2, 3)) print(print_root(add_10(12), add_10(23), add_10(33))) """ 함수는 return을 이용해 값을 돌려줄 수 있다. 함수를 사용하는 것은 함수 안의 코드를 모두 실행한 뒤 이 함수의 자리에 return에 있는 값을 넣은 것과 같다. 여러 값을 반환하려면 return 뒤에 여러 값을 쉼표로 나누어 넣는다. """ | cs |
Java와는 확실하고 중요하게 다르다. 반환값이 여러개 올 수 있고, 쉼표로 구분한다.
획기적이라고 해야할지... 혼란을 가져온다고 해야할지... 아직은 잘 모르겠다. 유용하다고 치자.
03 문자열
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 인사 로봇 number = 20 greeting = "안녕하세요" place = "문자열 포맷의 세계" welcome = "환영합니다." # old way print(number, "번 손님 ", greeting, '.', place, "에 오신 것을", welcome, "!") base = '{}번 손님, {}. {}에 오신 것을 {}!' new_way = base.format(number, greeting, place, welcome) print(base) print(new_way) mine = '가위' yours = '바위' result = "졌다" print('나는 {}, 너는 {}, 그래서 {}'.format(mine, yours, result)) | cs |
.format() 함수를 통해 {}에 들어갈 값을 순서대로 지정해 줄 수 있다.
04 따옴표
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 따옴표와 문자열 string1 = "Some Text" string2 = "어떤 텍스트" string3 = '{}도 {}도 지금 이것도 문자열'.format(string1, string2) print(string3) quote = '문법검사기 왈 "직접 인용은 큰따옴표다"' emphasize = "'문법검사기'를 인용하다니" # error = "엄마 친구 아들이 "파이썬이 좋아" 라고 했대" long_string = '''첫째줄은 좋은데 둘째줄도 괜찮을까?''' print(long_string) quote1 = "가끔은 '와 " + '"를 모두 쓰기도 해' quote2 = """가끔은 '와 "를 모두 쓰기도 해""" print(quote1) print(quote2) # error = "'"이런건 안되요"'" | cs |
따옴표 세 개로 여러 줄 문장과 "와 '를 중간중간에 별도의 표시(\라던가)없이 사용할 수 있다.
그런데 여러줄 주석과 같아서 헷갈릴것 같기도...
07 나누기
1 2 3 4 5 | div1 = 6 / 5 div2 = 6 // 5 print(div1) print(div2) | cs |
나누기 연산 같은 경우, 자연수만 출력할지, 소숫점까지 출력할지 선택해야한다.
/ 은 소숫점까지, // 은 자연수만 출력된다.
반응형
'🚽 Deprecated > PYTHON' 카테고리의 다른 글
[입문] 3~4일차 (0) | 2017.10.07 |
---|---|
[입문] 1일차 (0) | 2017.09.27 |