Python Intro - 002 - 대문자 시그마 기호와 파이 기호
■ Introduction
[ 중요 ] 초간단 덧셈 표기법과 곱셈 표기법입니다.
수학에서 실제로 사용됩니다.
대문자 시그마, 대문자 파이. 각각의 용도는 :
1부터 n까지 합을 구하라....
1부터 n까지 곱을 구하라...
...입니다. ^.^;
초단축 표현입니다.
i는 시작 수, n은 끝 수.
i와 n이 모두 계산에 포함됩니다. 중요 사항임.

■ Code
덧셈 시그마만 파이썬으로 표기하면,
# 덧셈을 실제로 수행하는 함수 하나를 ..
def mySigma(start, n):
mySum = 0
for i in range(start, n+1):
mySum = mySum + i
print(mySum)
# 이 함수를 콜.. 해서 실행합니다.
# 옵션으로 시작 값과 끝 값을 포함해서.
mySigma(1, 100)
'''
실행 결과 : 5050
'''
# 실제 좀 더 다듬어진 전체 코드 :
def mySigma(start, n):
mySum = 0
for i in range(start, n+1):
mySum = mySum + i
return mySum
def main():
print(mySigma(1, 100))
main()
■ 핵심 Notes ::
파이썬에서는 for i in range(n): 하면 0부터 n-1까지 계산됩니다. n이 포함되지 않습니다. 중요.
range(5) 하면 0부터 시작해서
0, 1, 2, 3, 4 까지 포함됩니다.
i가 이 숫자들을 잠시 기억하는 역할을 합니다.
다음처럼,
for i in range(100):
......
이렇게 하면 0부터 시작합니다. 0부터 99까지만 포함됩니다.
☆☆☆☆
그런데, 시작 숫자를 지정할 수 있습니다.
예를 들어, 0부터가 아니라 1부터 100까지 마지막 숫자 100을 포함하려면, range()부분을 다음과 같이 수정해야 합니다. 옵션이 하나가 아니라 2 개입니다.
for i in range(1, 101):
......
1부터 100까지 합계 출력, 100도 포함, 100을 n이라고 가정하면, 이것을 그대로 원리를 따지자면, 다음과 같습니다.
for i in range(1, n+1):
......
실제로 뭔가를 출력을 해보겠습니다.
for i in range(1, 101):
print(i)
# 결과 : 1부터 100까지 100줄을 출력합니다.
# 100은 포함. 101은 제외됨.
☆☆☆
range(1, n)은 1부터 시작해서 n-1까지 포함됨.
range(5, 9)라면, 5, 6, 7, 8.
range(7, n)이라면 7, 8, ......, n-1.
☆☆☆
옵션으로 숫자 하나만 주어지면, 다음처럼,
range(12)는 0, 1, 2, 3, ..., 9, 10, 11.
시작 수가 지정되지 않으면 0부터 시작합니다.
주의가 필요합니다.
■ 주요 코드
def mySigma(start, n):
# 위 함수 머리(Header) 부분에 옵션으로 start와 n이 지정되어 있는데, 이 함수 다음에 그 아래에서 이 함수를 호출(Call콜)할 때, start와 n값이 정해집니다.
# 함수 콜은 다음과 같고 :
mySigma(1, 100)
# 이 콜 덕분에 옵션 숫자 순서대로 start는 1,
n은 100으로 결정됩니다.
mySum = 0
# 함수가 시작되면 변수 muSum을 0으로 초기화합니다. for 반복문이 시작되기 전 위치에서 실행합니다.
# 이 부분은 for 반복문 내부에 넣으면 안 됩니다. 그럼 for 반복문이 실행될 때마다 0이 되므로. 의미상 오류.
for i in range(start, n+1):
# for 반복문입니다. start 숫자부터 n까지 처리합니다. n+1은 제외됩니다.
mySum = mySum + i
# i값은 start부터 n까지 반복할 때마다 자동 증가됩니다. for 반복문 내부의 반복 블록은 여기서는 100번 실행됩니다. 실행될 때마다 mySum 결과값은 누적 덧셈이 됩니다.
print(mySum)
# 현재 반복 횟수에서 mySum 누적 합계값을 출력합니다.
mySigma(1, 100)
# mySigma()함수를 호출Call해서 실행합니다. 옵션으로 시작값은 1, 반복 종료값stop값으로는 100을 사용합니다.
# mySigma 함수 내부에 range(start, n+1): 때문에, start가 1, n이 100, range()함수가 의미상 range(1, 101)이 되므로, 결과적으로 1부터 100까지 출력됩니다.
■ return 값
return은 특정 함수 내에서 변수와 함께 사용되어 return 위치에서 그 해당 함수가 종료됨과 동시에 return 변수값을 계산해서 반환합니다. 예제를 살펴봅니다.
def f():
a = 55
return a # return 변수. a값이 반환됨
print(f())
함수 f()가 return a 값으로 대체됩니다. 그 결과,
print(f())는
print(55)와 같습니다.
return a는 'a 변수에 저장된 값을 반환한다'는 뜻입니다.
'반환한다'라는 말이 어렵게 느껴질 수 있습니다. '대신한다', 또는 '대체한다' 정도의 뜻으로 생각할 수 있습니다.
함수f()를 실행하면 함수 자리에 return a의 값으로 대신한다, 대체한다.
return 명령이 호출되면 그 함수는 return 명령이 실행되고 return 값을 반환한 다음 그 위치에서 함수가 종료됩니다. 따라서 해당 함수 내부에 return문장 다음에 있는 명령들은 실행되지 않습니다.
def f():
a = 55
b = 33
return a
# 실행 후 이 위치에서 함수 종료.
b = 77 # 이 부분은 실행되지 못함.
b = 77 이 부분은 실행되지 않기에 b= 33이 여전히 유효합니다.
return a 다음 위치에서 함수가 종료되어 버립니다. return a는 실행되고 종료됩니다.
return a + 1처럼 계산 표현식도 허용됩니다. 이 문장까지는 실행되고 끝납니다. 변수 a 값이 55라면 return a + 1은 56. 따라서 56을 반환하고 함수f()가 종료됩니다.
해당 함수 f()만 종료되며 프로그램 전체가 종료되는 것은 아닙니다.
■ Ref.
Not yet!
■ Files.
Not yet!
즐거운 프로그래밍!
^.^;