nonezerok@gmail.com
last modified: 2018.3.16
--------------------------------------------------------------------------------
맨 마지막에 넣은 값이 출력된다.
여기서 a를 변수라고 한다.
a = 1
a = 2
a = 3
print(a)
a = 0
a = a + 1
a = a + 1
a = a + 1
print(a)
a=a+1 형태는 프로그래밍에서 정말 많이 사용된다.
----------------------------------------
a = 1
b = 2 + a * 3
식, 변수, 상수, 연산자, 할당연산자
+, -, *, /, //, %
a = 3 / 2
b = 3 // 2
print(a, b)
print(3/2, 3//2)
print(5%3)
print(0%3)
print(1%3)
print(2%3)
print(3%3)
print(4%3)
print(5%3)
% 연산자는 0~X-1 까지의 숫자가 필요할 때 종종 사용된다.
----------------------------------------
a = 2 + 3
print(a)
print 괄호 안에서 계산 가능하다.
print(a, 2+3)
----------------------------------------
2단을 출력해 보자
print("2 x 1 = 2")
print("2 x 2 = 4")
print("2 x 3 = 6")
2, 3단 해보세요.
9단까지 해보세요. ㅠㅠ
좀 개발자 답게 처리해 보자.
숫자가 변하는 부분은 변수로 대치한다
a=1
print("2 x ", a, "= ", 2 * a)
a=2
print("2 x ", a, "= ", 2 * a)
a=3
print("2 x ", a, "= ", 2 * a)
print( ) 문장이 모두 똑 같아졌다.
a 값은 1에서 3으로 변하고 있다.
이 부분을 수식으로 표현해 보자.
a=0
a=a+1
print("2 x ", a, "= ", 2 * a)
a=a+1
print("2 x ", a, "= ", 2 * a)
a=a+1
print("2 x ", a, "= ", 2 * a)
이제 두 문장이 반복된다.
이 두 문장을 반복시키면 된다.
a=0
for i in range(9):
a=a+1
print("2 x ", a, "= ", 2 * a)
print()
2단과 3단을 모두 출력해 보자
d = 2
a = 0
for i in range(9):
a = a + 1
print(d, " x ", a, "= ", d * a)
print()
d = 3
a = 0
for i in range(9):
a = a + 1
print(d, " x ", a, "= ", d* a)
print()
- 공통 부분이 많다.
- 코드 낭비다.
- 다음과 같은 멋진 방법이 있다.
def dan2():
a = 0
d = 2
for i in range(9):
a = a + 1
print(d, "x", a, " = ", d * a)
print()
def dan3():
a = 0
d = 3
for i in range(9):
a = a + 1
print(d, "x", a, " = ", d * a)
print()
dan2()
dan2()
dan3()
- def 부분은 자동으로 실행되지 않는다.
- dan2(), dan3()을 통해 실행할 수 있다.
- 그래도 def dan2(), def dan3() 부분의 코드가 거의 일치한다.
- 다음과 같이 두 개를 하나로 합칠 수 있다.
def dan(d):
a = 0
for i in range(9):
a = a + 1
print(d, "x", a, " = ", d * a)
print()
dan(13)
- dan( ) 아주 멋진 녀석이다.
- 이름이 있어야 겠다.
- function; 함수
- dan은 함수 이름
- dan( d )에서 d는 변수; 특별히 매개변수; parameter라고 부른다.
- dan(2) 이 부분을 '함수 dan을 호출;call 한다'라고 한다.
- 이때, def dan(d=2) 처럼 d에는 2가 할당된다.
- def dan(d) 부분을 함수의 프로토타입; prototype 이라고 부른다.
- def dan(d) 밑에 있는 코드를 함수 dan(d)의 구현; implementation부라고 부른다.
a = 0
for i in range(9):
a=a+1
print(d, " x ", a, "= ", d * a)
print()
- 앞으로 '함수를 구현해 보라'라는 말을 듣게 된다.
위와 같이 dan( ) 함수를 만들어 놓으면 구구단 전체를 쉽게 '구현'할 수 있다.
def dan(d):
a = 0
for i in range(9):
a = a + 1
print(d, " x ", a, "= ", d* a)
print()
for d in range(8):
dan(d+2)
- d는 처음에 0부터 시작하도록 되어 있는데, 2부터 시작할 수도 있다.
for d in range(2, 10):
dan(d)
for d in range(2, 10, 1):
dan(d)
for d in range(2, 10, 2):
dan(d)
- 시작값, 조건값, 증분값
어느 것이 1년 뒤에 보았을 때 알아보기 쉬운가?
for d in range(2, 10):
a = 0
for i in range(9):
a=a+1
print(d, " x ", a, "= ", d * a)
print()
----------
def dan(d):
a = 0
for i in range(9):
a=a+1
print(d, " x ", a, "= ", d * a)
print()
for d in range(2,10):
dan(d)
- 함수 그뤠잇; 나중에 더 살펴보자.
----------------------------------------
print는 쓸데없이 오버하는 기능이 있다.
print("a")
print("a" * 3)
print("Abc")
print("Abc" * 3)
문자(열)에 곱셈을 취하면 그 문자(열)가 반복된다.
참고로 regular expression 이라는 문법이 있는데 , 여기서 * 기호의 역할이 이런 식으로 정해져 있다.
여기서의 키 포인트는 문자, 문자열
1, "1"은 다르다.
특정한 단을 입력받아 출력해 보자
dan = input("단을 입력하세요:")
a = 0
for i in range(9):
a=a+1
print(dan, " x ", a, "= ", dan * a)
print()
단을 입력하세요:2
2 x 1 = 2
2 x 2 = 22
2 x 3 = 222
2 x 4 = 2222
2 x 5 = 22222
2 x 6 = 222222
2 x 7 = 2222222
2 x 8 = 22222222
2 x 9 = 222222222
- 원하지 않는 결과가 나왔다.
- dan에 들어 있는 값은 숫자가 아니라 문자다. "2"
문자를 숫자로 바꾸어 주어야 한다. "2" → 2
dan = input("단을 입력하세요:")
dan = int(dan)
a = 0
for i in range(9):
a = a + 1
print(dan, " x ", a, "= ", dan * a)
print()
- int 는 문자열을 숫자로 바꾸어 준다.
a = "12345"
b = int(a)
print(a, b)
- 소수점은 변환이 안된다.
a = "12.345"
b = int(a)
print(a, b)
ValueError: invalid literal for int() with base 10: '12.345'
- 소수점 변환은 float를 사용한다.
a = "12.345"
b = float(a)
print(a, b)
- eval은 두 경우 모두 사용할 수 있다.
- 계산되는 값이 정수인지 실수인지 정확히 아는 경우라면 int 나 float 사용이 좋다.
a = "12.345"
b = eval(a)
print(a, b)
- 물론 숫자로 구성된 문자열이 아닌 경우는 에러가 난다.
a = "abc12.12"
b = eval(a)
print(a, b)
SyntaxError: unexpected EOF while parsing
정수(integer), 실수(real), int, float; floating point, 부동소수점
----------------------------------------
댓글 없음:
댓글 쓰기