1. 기본 구성
▣ 에코 기능
- 문자, 숫자 등 단순입력에 대해 파이썬 인터프리터가 출력을 반복
- 기본적인 연산 기능 ( 거듭제곱은 '**'으로 시행 )
- 문자간 '+' 연산 : concatenate
▣ 주석
- '#' 문자이용
- Colab은 Text기능 이용가능
1) 식별자
- 프로그램 내부에 정의된 객체(변수, 함수)의 이름
- 문자나 밑줄로 시작되고, 숫자/문자/밑줄로 구성, 예약어와 동일할수 없음, 길이제한 없음
** 예약어 : Flase/True, import, async/await, if/else, try, def, class, with, return 등등
▣ 변수
- 처리할 데이터와 처리된 결과를 임시적으로 저장하는 공간
- 변수의 값을 변경하는 할당 연산자 사용 ( = )
- 할당연산자 (=)의 오른쪽은 rvalue(임시적 대상), 왼쪽은 lvalue(지속되는 대상)
- 메모리에 공간을 할당하여 주어진 변수의 이름으로 값을 저장
2) 리스트 활용
- 순서화된 값의 집합체를 저장할수 있는 데이터 타입 (여러 데이터 타입 혼재가능)
- 단일 식별자로 연속된 저장공간 접근 수단 제공
- 원소들의 순서를 표현, 개별 원소의 값을 수정/추가/삭제가능
- 구문 형식 (인용부호 [ ]를 사용, 원소는, 를 사용하여 나열 )
list ( [ 원소 시퀀스 ] ) 혹은 [원소 시퀀스]
- 원소의 나열을 저장할수 있는 시퀀스 타입 (리스트, 튜플, 세트, 딕셔너리)중 하나
ex) hei_list = [1,4,5,"dark brown","black"]
➡ hei_list 참조변수, [1,4,5,"dark brown","black"] 리스트객체
- 인덱스 연산자 ( 접근연산자 []사용, 원소내 인덱스 번호로 접근 )
▣ 리스트 생성자동화
-리스트 내 원소에 규칙성이 있는 경우 생성자동화를 위한 함수 사용
range(a,b,k) a부터 b이전((b미포함)까지 k씩 증가(디폴트 a:0, k:1)
3) 파이썬 내장함수
파이썬 인터프리터에서 기본적으로 지원하는 함수(별도의 모듈이나 패키지 없이 사용)
print(), max(), round(), min(), abs(), pow()거듭제곱
① 사용자 입력함수 : input()
- 입력데이터를 문자 데이터 타입으로 반환
- 함수의 파라미터는 입력 안내문의 목적으로 사용됨
② 출력함수 : print()
- 여러개의 데이터를 단일 함수로 출력 가능, 콤마(,)로 파라미터를 구분하여 입력가능
- 데이터 사이에 공백(기본값)이 자동으로 추가 : sep옵션을 변경하여 기본 공백변경가능
③ 데이터 타입 변환 : 데이터 타입을 다른 타입으로 전환
문자열로 변환(str()), 정수타입의 변환(int()), 소수타입으로 변환(float())
④ 문서 형식화 : format( )
▣ 데이터를 양식에 맞춰 형식화
형식지정자 : s(문자열), .xf(x자리수의 소수를 가진 실수), d(정수)
▣ 문자데이터 및 정수데이터 정형화
▣ 실수데이터 정형화
⑤ zip : 여러 리스트의 값들을 순서대로 하나씩 엮어서 가져오는 함수
예) for rad, hei in zip(rad_list, hei_list):
⑥ range : 규칙성이 있는 배열의 자동 생성함수 화를 위한 함수 사용
예) range(1,100): 1부터 99까지 1간격으로 생성, range(100):0부터 99까지 1간격으로 생성
range (a, b, k), a부터 b이전까지, k간격으로 배열생성 (디폴트 a:0, k:1)
4) 연산자
연산자 우선순위 : 표현에 사용된 여러 연산자의 연산 순위를 결정
괄호 내부의 수식 >> 지수(**)연산자 >> 곱셈/나눗셈/나머지 연산(왼-오) >> 덧셈/뺄셈 (왼-오) >> 할당 연산자
① 산술 연산자
- 피연산자(operand)에 대해 지정된 산술연산을 지시하는 기호
단항연산자 (unary operator)
이항연산자 (binary operator)
예) 3.14(피연산자) * rad(피연산자)
② 특수 산술연산자
- 프로그래밍 언어에서만 사용되는 연산 또는 부호
// (정수나눗셈 연산, 나눗셈 후 정수만 남김), %(모듈로 연산자)
③ 논리연산자
- 참,거짓을 구별할수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자
- 두개의 논리값(불리언식)을 연산하여 참, 또는 거짓을 결과로서 얻는 연산자
- 두개의 피연산자를 갖는 이항연산자 (피연산자는 불리언)
- and(논리곱)/or(논리합)/not(논리부정) 연산자사용, 왼쪽에서 오른쪽으로 결합
- 이항연산자 (and, or), 단항연산자 (not)
- 단락평가(short-circuit evaluation, C나 Java에서는 예상치 못한 결과를 도출할수 있음)
첫번째 논리값으로 전체연산결과 판별이 가능할때 두번째 논리값은 확인(평가)하지 않음
5) 동시할당
① 할당
- 시퀀스 개념, 복수개의 변수에 값을 동시에 할당, 하나의 할당 연산자로 여러 값 전달 )
복수개의 변수에 상응하는 값을 콤마(,)로 나열 (r-value쪽에 나열)
② swap(교환)
예) 동시 할당 및 교환을 사용한 정렬
2. 제어
1) 파이썬 제어 구조
구조적 프로그래밍 패러다임
- 절차적 프로그래밍 패러다임의 하위개념
- Edgar Dijkstra제안 ( 관련 논문: Go to Statement Considered Harmful )
goto문을 사용하지 않고 프로그램을 3가지 제어구조로만 구성
- 3가지 제어구조 ( 순차구조, 선택구조, 반복구조 )
- 프로그램 실행흐름이 간결하고 작은 규모로 조직화하기 쉬움
① 순차구조 (sequential structure)
- 실행 흐름이 주어진 명령의 위치적 흐름에 따라 수행
- 명령라인이 위에서 아래로 흐르는 직관적 구조
- 첫 단계를 시작하면 마지막 단계까지 수행
② 선택구조
특정 영역내의 명령문에 대한 실행여부를 프로그램 실행중에 결정(실행여부는 조건에 따라 결정)
선택구조, 이분 선택구조(if, else), 다분선택구조(if, elif, else(필수는 아님))
- 들여쓰기로 코드 블록표현, 특정 동작을 수행하는 명령문 집합, 스페이스 4칸 권고(PEP-8)
- boolean식 : 비교연산자를 사용하여 결과가 boolean type ( <,>,>=,<=,==, !=)
boolean type
- 참과 거짓의 값을 표현하는 데이터 타입 ( True, False 예약어로 표현)
- 비교연산자를 사용한 표현식의 결과
예) surf = 10
vol = 20
isStop = surf == vol
print(isStop) ▶ False (surf와 vol은 같지 앖음)
▣ 다분 선택구조
if boolean식 :
명령문 1 (들여쓰기로 조건에 따른 실행표현)
명령문2
elif boolean식
명령문 3
명령문 4
else :
명령문 5
명령문 6
▣ 중첩 선택구조
if out불리언 식 :
if in불리언 식 :
in 명령문 1
else :
in 명령문 2
else :
if in불리언식2 :
in명령문 3
③ 반복구조
- 특정 영역의 명령문을 여러번 재실행하는 구조
- 조건에 따라 반복횟수 결정
- loop, iterate, repeat등의 용어가 혼용
- 반복 종료의 조건 : sentinel
▣ 조건제어반복
while 반복-계속-조건(반복구조설계전략) :
코드블록
▣ 계수제어반복 ( 계수제어변수와 시퀀스 사용, 반복시 계수제어변수에 시퀀스 원소 할당 )
for 계수제어변수 in 시퀀스
코드블록
▣ 리스트를 이용한 계수제어반복
▣ 중첩반복구조
반복 구조내 다른 반복 구조를 포함 ( for/while문안에 for/while문 중첩 )
2) 프로그래밍 에러
- 설계미숙, 결함 또는 문법 오류로 프로그램이 의도한 대로 결과를 생성하지 못하는 문제
구문 오류(syntax error) : 문법 체계에 적합하지 않은 명령문 입력시 발생
실행 오류(runtime error) : 논리적으로 실행불가능한 명령문 작성 시 발생
ex) input값으로 계산 시도 (python의 사용자가 입력하는 모든 input값을 문자열로 취급)
의미 오류(semantic error) : 의미적으로 잘못 해석되는 명령문 작성 시 발생
ex) "=="대신에 "="사용
** 아래한글이나 MS-Word에서 복사해서 붙이거나 인터넷의 코드는 부호가 다를 수 있음
- Unicode기준으로는 부호의 차이가 있음 (특히 ", '의 부호가 다름 )
** 실습 도구 : colab.research.google.com (오픈소스, 문서화쉬움,클라우드기반)
** 기본 개념 (시험 대비)
파이썬에서의 데이터 타입변경 : 가능 (str(), int(), float()등의 함수를 이용하여 변경)
파이썬 인터프리터에서 지원하는 함수 : 내장함수
구조적 프로그래밍 패러다임에서 제안된 제어구조 : 순차, 반복, 선택
클라우드 기반, 오픈소스, 문서화 용이, 대화형 실행환경 : 코랩
폰노이만 구조, 운영체제 (한정된 자원을 효과적으로 사용 : 프로세스관리),
'스터디 > Python' 카테고리의 다른 글
6. 실습 - 게임구현 (0) | 2024.05.04 |
---|---|
5. 모듈과 파일 (0) | 2024.05.03 |
4. 함수와 객체 (0) | 2024.05.02 |
2. 파이썬 Basic (0) | 2024.04.20 |
1. 정보 및 컴퓨터 구성 (0) | 2024.04.20 |