파이썬 프로그래밍의 첫번째 단계 : 변수(variable)를 선언해서 객체(object)를 메모리에 담는 것 파이썬 프로그래밍의 두번째 단계 : 객체로 뭔가 컴퓨터가 일을 하게 만든다. 컴퓨터가 할 수 있는 일은 크게 나누어 판단과 반복 밖에 없음을 기억한다. 1) 판단 : 컴퓨터가 객체들을 비교하여 판단하게 만들기 : if 문 2) 반복 : 사람보다 수만배 빠른 두뇌회전 속도를 이용하여 반복계산 시키기 : for 문 3) 판단 + 반복 : 두 과정을 결합하여 조건이 맞는 동안만 반복하기 : while 문
if 문
1 2 3 4 5 6
# ex1 money = True## 불(bool) 타입: True or False ; 판단에 쓰이는 자료이기에 매우 중요하다. if money: ## if 다음 불(bool)이 나온다. print("택시를 타고 가라") ## 실행문에는 반드시 들여쓰기를 해줘야 한다. else: print("걸어 가라") ## **동일한 수행 동작은 줄을 맞춰야한다.** ## Tab 이용
택시를 타고 가라
money에 True를 입력했으므로 money는 참이다. 따라서 if문 다음 문장이 수행되어 ‘택시를 타고 가라’가 출력된다.
1 2 3 4 5 6 7 8 9 10 11 12 13
# if 문 기본구조 ''' if 조건문: 수행할 문장1 ## 조건문 = ture 일 경우 수행 문장 수행할 문장2 ... else: 수행할 문장A ## 조건문 = false 일 경우 수행 문장 수행할 문장B ... '''
'\n\nif 조건문:\n 수행할 문장1 ## 조건문 = ture 일 경우 수행 문장\n 수행할 문장2\n ...\nelse:\n 수행할 문장A ## 조건문 = false 일 경우 수행 문장\n 수행할 문장B\n ...\n'
자료는 우리가 컴퓨터 메모리에 입력할 컴퓨터 외부에 존재하는 수, 문자 등을 의미 자료를 컴퓨터에 입력하기 위해서 일정한 규칙이 필요하고 그 규칙은 자료형으로 규정된다. 컴퓨터 외부에 존재하는 자료를 컴퓨터 머리에 입력하는 독특한 방식은 ‘=’ 기호를 쓰고 주로 ‘변수 = 자료’ 형태를 취한다 일단 컴퓨터 메모리에 자료를 입력하면 그 자료는 ‘자료’라 부르지 않고 파이썬에선 ‘객체(Object)’라 칭한다. 변수란 컴퓨터 메모리 어딘가에 존재하는 객체가 어디에 있는지를 알려주는 주소 개념이다. 타 프로그래밍 언어인 C나 Java에선 자료형(Data type)이 무엇인지 친절히 알려줘야한다. 반면, 파이썬은 자료를 스스로 살펴보고 자료형이 무엇인지 판단한다. 따라사 그 과정이 필요 없다. 변수를 만들 때는 반드시 ‘=’(assignment) 기호를 사용한다. 예 : a = [1,2,3] 이면, [1,2,3] 값을 가지는 리스트 자료형(객체)은 메모리에 자동생성되고 변수 a는 리스트가 저장된 메모리 주소를 가리킨다.
1 2
a = [1,2,3] id(a) # id() : 변수가 가리키고 있는 객체의 주고 값을 돌려주는 함수
2456107858688
1 2 3 4
# 여러 변수 한번에 만들기 a, b = 1, 2 print(a) print(b)
1
2
1 2 3 4
# null 변수 만들기 a = None print(a) type(a)
None
NoneType
1 2 3 4 5 6
# 변수에 변수를 할당할 경우 b = a ## 주소값 공유 print(a) print(b) print(id(a)) print(id(b))
None
None
140715255699584
140715255699584
1 2
# a와 b가 가리키는 객체가 동일한지 묻는 방법 (is) a is b
True
1 2 3 4 5
# * 주의 * a[1] = 4 print(a) print(b) ## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-72-a5aa4d30ec01> in <module>
1 # * 주의 *
----> 2 a[1] = 4
3 print(a)
4 print(b)
5 ## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.
TypeError: 'NoneType' object does not support item assignment
1 2 3 4 5 6 7 8 9
# [:] 사용
a = [1,2,3] b = a[:] a[1] = 4 print(a) print(b) ## [:]는 리스트 전체를 가리키는 방법이기에 자료를 복사하는 경우다. a is b
[1, 4, 3]
[1, 2, 3]
False
1 2 3 4
#1 자연수 a 홀수 짝수 판별 a = 13 b = a%2 print(b) # print 값이 0일 경우 짝수, 1일 경우 홀수
1
1 2 3
#2 주민등록번호 13자리를 생년월일(YYMMDD)과 그 외 숫자로 분류 a = "0101011234567" print(a[:6],"-",a[6:]) ## a[:6] : 0 =< print < 6 , a[6:] : 6 =< print
010101 - 1234567
1 2 3 4 5
#3 [1,3,5,4,2] 리스트를 [5,4,3,2,1]로 변경 ## 오름차순 내림차순 a = [1,3,5,4,2] a.sort() a.reverse() print(a)
t1 = () t2 = (1,) # 요소가 1개일 경우 반드시 콤마(,)를 넣어야한다. t3 = (1,2,3) t4 = 1,2,3# 괄호 생략 가능 t5 = ('a','b',('ab','cd')) # 튜플 내부에 튜플 삽입 가능. 단, 리스트는 변경 가능 변수이므로 삽입할 수 없다.
1
whos
Variable Type Data/Info
-----------------------------
t1 tuple n=0
t2 tuple n=1
t3 tuple n=3
t4 tuple n=3
t5 tuple n=3