728x90
목차
1. 변수와 상수
2. 연산자
3. 시퀀스
4. 매핑형 자료구조
5. 제어문
6. 클래스(Class)
1. 변수와 상수
1-1. 변수 선언
* 상수 리터럴의 타입에 따라 변수의 타입이 정해지는 동적 할당 방식
* 변수 선언시 식별자 앞에 별도의 자료형을 지정하지 않는다
1-2. 변수명 선언 규칙
* 첫글자는 영문자와 언더바(_)를 사용해야 한다
* 대소문자를 구분한다
* 공백이나 다른 특수문자를 포함할수 없다
* 예약어는 변수명으로 선언할수 없다
* 변수는 사용하기전에 초기화를 진행해야 한다
1-3. 상수 리터럴
1. 정수 리터럴
* 10진 성수
* 8진 정수
* 16진 정수
* 2 진수
2. 실수 리터럴
* 소수점이 있는 10진수 형태 또는 지수
* 복소수: 실수부 + 허수부
3. 문자열 리터럴
* 작은 따옴표 또는 큰 따옴표로 감싸서 표현
* 파이썬은 문자리터럴이 존재하지 않는다
1-4. 표준 입출력 함수
1. 표준입력
* 키보드를 통해 프로그램으로 데이터를 입력
* 항상 문자열 형태로 입력받기 때문에 필요에 따라 다른형태로 변환이 필요
2. 표준출력
* 모니터를 통해 프로그램의 데이터를 출력한 뒤 줄바꿈을 해준다
* 여러 인수를 통해 출력방식을 조정
3. 주석처리
* 프로그램에 영향을 미치지 않는 참 고글 역할
* 파이썬은 샵(#)을 이용하여 주석을 처리
2. 연산자
2-1. 산술 연산자
연산자 | 설명 |
---|---|
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
// | 몫 |
% | 나머지 |
** | 제곱 |
2-2. 시프트 연산자
print(24 << 3); # 24: 0001 1000: 24의 비트 값을 왼쪽으로 3번 이동
print(24 >> 2); # 6: 0000 0110: 24의 비트 값을 오른쪽으로 2번 이동
* 비트 배열을 좌우로 이동하는 연산
2-3. 비트 연산자
print(13 & 9); # 논리 곱:
print(13 | 9); # 논리 합
print(13 ^ 9); # 베타적 논리 합
print(~13); # 부정
* 각 비트의 자리별로 논리연산을 수행
2-4. 논리 비교 연산자
a==b==c
a==b and a==c
0 <= a <= 100
a > 70 and b > 70
a >= 70 or b >= 70
* 다중의 논리 데이터(참, 거짓)를 판별하는 연산
2-5. 멤버 연산자
print("a" in "task") # a가 task 포함되는지 확인
print("X" not in "hello") # x가 hello에 포함되지 않는지 판별
* 데이터가 특정 데이터 구조에 포함되는지 여부를 판별하는 연산
3. 시퀀스
3-1. 시퀀스 특징
* 하나의 변수로 여러 타입의 다수 데이터를 관리
* 데이터가 순서대로 나열되어 있어 인덱싱과 슬라이싱이 가능
* 리스트와 튜플, 문자열
3-2. 리스트
* 요소를 추가하거나 삭제할수 있는 가변형 시퀀스
* 대괄호와 쉼표로 구분하여 정의
3-3. 튜플
a = [10, 20, 30, 40]
a.append(50) # 리스트 50 추가
a.remove(20) # 리스트 20 제거
* 요소를 추가하거나 삭제할수 없는 불변형 시퀀스
* 괄호와 쉼표로 구분하여 정의
* 문자열 리터럴 역시 불변형 시퀀스에 해당
3-4. 시퀀스 기술
s = "Hello Python"
s[0], s[4] # H o
s[-1], s[-4] # n t
s[6:10], s[-2:] # Pyth on
1. 인덱싱(Indexing)
* 첨자를 통해 시퀀스 요소중 하나를 참조하는 기술
* 첨자의 시작은 1이 아닌 0부터 증가하며 왼쪽에서 오른쪽으로 진행
* 역순(오른쪽에서 왼쪽)으로 인덱싱을 진행할때는 -1부터 감소
2. 슬라이싱(Slicing)
* 2개의 첨자를 통해 시퀀스 요소중 하나 이상을 참조하는 기술
* 시작 첨자부터 시작해서 끝 첨자의 바로전 항목까지 참조
* 시작첨자를 생략하면 첫 요소부터 슬라이싱
* 종료첨자를 생략하면 마지막 요소까지 슬라이싱
* 단계값을 생략하면 점차를 1씩증가, -1을 입력하면 역순으로 슬라이싱
4. 매핑형 자료구조
4-1. 딕셔너리 특징
# key: name, age
# value: "파이썬", 20
d = {"name": "파이썬", "age": 20}
* 하나의 변수로 여러 타입의 다수 데이터를 관리할수 있다
* 키(Key)와 값(Value)의 쌍으로 구성된 데이터를 중괄호와 쉼표로 구분하여 정의
* 인덱싱이 아닌, 키(Key)를 통해서 값에 접근
* 데이터의 수정, 삽입, 삭제가 자유로운 가변형 데이터 구조
5. 제어문
5-1. 선택 제어문
a = 10
b = 20
if(a>b):
print('a가 크다')
elif a==b:
print('두수가 같다')
else
print('b가 크다')
1. if<조건식>
* 주어진 조건이 참인 경우에 실행되는 영역
2. elif<조건식>
* if 조건식이 거짓이고, elif의 조건식이 참인경우 실행되는 영역
1. else
* 모든 조건식이 거짓인 경우에 실행되는 영역
5-2. 반복 제어문
a = [10, 20, 30]
for i in range(5):
print(i) # 0, 1, 2, 3, 4
for k in a:
print(k) # 10, 20, 30
1. for <변수> in range(<시작값>, <종료값>, <증가값>)
2. for <변수> in <시퀀스>
sum = 0
cnt = 1
while True:
sum += cnt
if sum > 100:
break
cnt += 1
print(cnt)
3. while<조건식>
* 조건식이 참인 동안 반복
4. break 와 continue
6. 클래스(Class)
6-1. 클래스 정의와 인스턴스 생성
# ClassicCar 클래스 구현
class ClassicCar:
pass
# ClassicCar 인스턴스 생성
father = ClassicCar();
uncle = ClassicCar();
1. 클래스 정의
* class 키워드로 클래스를 구현
2. 인스턴스 생성
* java와 달리 new 키워드 없이 생성
6-2. 메소드 정의와 호출
# ClassicCar 클래스 구현
class ClassicCar:
# drive 메소드 정의
def drive(self):
print('수동 운전')
# ClassicCar 인스턴스 생성
father = ClassicCar();
# drive 메소드 호출
father.drive()
1. 메소드 정의
* def 키워드로 메소드를 정의
* 첫번째 매개변수에 self를 지정해야 하지만 self 매개변수는 무시하고 호출
* 클래스 내에서 정의되는 메소드는 인스턴스를 통해서 호출
# ClassicCar 클래스 구현
class ClassicCar:
def __init__(self, color):
# 클래스 변수 color에 매개변수 color 할당
self.color = color
# test 메소드 정의
def test(self):
print(self.color)
# ClassicCar 인스턴스 생성
father = ClassicCar("빨강");
father.test() # 빨강
father.color = "검정"
father.test() # 검정
2. 생성자 메소드
* 정해진 이름 __init__ 으로 생성자 메소드 정의
* 생성자 메소드는 인스턴스 생성시 자동으로 호출되며 임의로 호출할수 없다
* 생성자 메소드와 self를 이용하면 인스턴스 생성과 동시에 값을 할당
참고자료 : 이기적 환상콤비 정보처리기사
728x90