살콤아내 자기계발/파이썬

POSTECH Computational Thinking 2 (1-4주차 요약)

살콤아내 2021. 4. 4. 16:51
728x90
반응형

 

- 계산 자료=같은 꼴의 더미, 즉 순서열을 만듦으로써 컴퓨터는 같은 계산 과정을 반복할 수 있다.

- 다음 유도하기로 더미 해석하기: 최초 빈 더미 [ ] >> 직전 더미에 원소 하나 (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]를 덧붙인 순서열을 계산한다.

 

728x90
반응형