- 계산 자료=같은 꼴의 더미, 즉 순서열을 만듦으로써 컴퓨터는 같은 계산 과정을 반복할 수 있다.
- 다음 유도하기로 더미 해석하기: 최초 빈 더미 [ ] >> 직전 더미에 원소 하나 (100)를 추가해서 얻은 더미 [100, 1, 2, 3]
Ex) [1] == [1] + [ ]
Ex) [2, 3] == [2] + [3]
Ex) [1, 2, 3] == [1] + [2, 3]
* 순서열은 그 자체로 완전한 프로그램이다.
* 작은 순서열 맨 앞에 원소 하나를 덧붙이려면 [원소]+작은순서열의 형태로 표현한다.
계산자료의 대응관계 = 원소 두 개 여러곱 더미료 표현 가능
(계산자료 1, 계산자료 2) <==> 계산자료 1은 계산자료 2에 대응된다.
('인천', 40) <==> 인천은 40km에 대응된다. 인천의 특징은 40km이다.
('서울', [ ('인천', 40), ('대전', 163), ('강릉', 237)] ) <==> 서울의 특징으로 인천은 40km에 대응되고 대전은 163km에 대응되고 강릉은 237km에 대응된다
다음유도하기로 계산자료만들기
- Python에서는 여러합원소를 종류와 내용쌍으로 이루어진 여러곱으로 흉내낼 수 있다.
Ex) 자연수를 다음유도하기로 정의하기
자연수='최초자연수' 또는 '직전자연수 더하기1'
사람언어 >> Python 언어
종류=최초자연수, 내용은 따로 없음 >> ('zero', )
종류=더하기1, 내용=자연수 >> ('succ', 자연수)
자연수 0 = ('zero' ,)
자연수1 = ('succ', ('zero', ))
자연수2= ('succ', ('succ', ('zero', )))
...
연산자의 종류
정수연산자 (단항연산자+/-, 이항연산자)
논리값연산자 (단항연산자 not, 이항연산자 논리곱and, 논리합or)
문자열연산자 (이항연산자 +)
비교연산자
조건연산자
여러곱연산자, 순서열연산자, 여러합연산자
연산자를 왼쪽으로 결합한다, 오른쪽으로 결합한다의 의미
>>연산자의 우선순위가 같을 때 왼쪽을 우선순위로 계산한다, 오른쪽 우선순위로 결합한다는 의미
비교연산자
- 같은지 판별: ==, !=
- 대소판별: <, <=, >, >=
(비교연산자는 정수, 논리값, 문자열을 비교할 수 있다, 논리연산자보다 우선순위가 높고, 그 외 연산자보다는 낮다)
Python 언어에서 상수
- 변수의 특수한 경우로 흉내냄
- 영어, 알파벳, 숫자, 특수문자를 조합해서 사용할 수 있다. (첫 글자는 숫자가 될 수 없음, 한글 가능)
여러곱연산자의 예
(1, 2, 3, 4) [0] >> 1 (0번부터 n-1번까지 중 n번째 원소를 뽑는다)
여러합연산자의 예
피연산자=상수op
(1 if op[0] == '월요일' else
2 if op[0] == '화요일' else
3)
>> 종류가 0이 월요일이면 연산자 1을 계산하고, 그렇지 않으면 종류가 2가 화요일이면 2를 계산하고 아니면 3을 계산한다. 최종 연산값은 종류와 상관없이 일정한 정수값을 가진다.
피연산자=상수op
op=('이름', '홍길동')
op=('생년월일', (1981, 9, 18))
>>종류와 내용 둘다 있으므로 여러합 원소는 원소 두개로 이루어진 여러곱으로 흉내낸다.
>> '이름 또는 생년월일'를 받아서 태어난 일을 계산한다. 모르면 0을 계산한다.
((lamda x: 0) (op[1]) if op[0] == '이름' else
(lamda x: x[2]) (op[1]))
>> 종류op[0]이 '이름'이면 내용 op[1]을 상수 x에 기록한뒤 0이라는 연산식을 계산하고, 아니면 내용 op[1]을 상수 x에 기록한 뒤 x[2]연산식을 계산한다.
순서열연산자
상수 op에 기록된 순서열 복제하기 예
[ ] if op == [ ] else [op [0]] + op[1:]
상수 op에 기록된 순서열이 빈 순서열 [ ] 이면 빈 순서열[ ]을 계산하고, 아니면 맨 앞이후 이루어진 작은 순서열앞에 op[1:] 맨 앞 원소 op[0]를 덧붙인 순서열을 계산한다.
'살콤아내 자기계발 > 파이썬' 카테고리의 다른 글
POSTECH Python 프로그래밍 2 (요약 1-2주) (0) | 2021.04.05 |
---|---|
점프투파이썬 1주차 정리 (0) | 2021.04.05 |
POSTECH Computational Thinking 1 (1-4주차 요약) (0) | 2021.04.03 |
POSTECH Python 프로그래밍 1 (요약 3-4주) (0) | 2021.03.24 |
POSTECH Python 프로그래밍 1 (요약 1-2주) (0) | 2021.03.22 |