절차적 프로그래밍 패러다임의 하위 개념
goto 문을 사용하지 않고 프로그램을 3가지 제어 구조만으로 구성하는 프로그래밍 패러다임
- 순차(sequence)구조
- 선택(selection)구조
- 반복(iteration)구조
프로그램 실행 흐름이 간결하고 작은 규모로 조직화 하기 쉬움
순차구조
실행의 흐름을 주어지는 명령의 위치에 흐름에 따라 수행하는 구조
→ 명령 라인 위에서 아래로 흐르는 가장 직관적인 명령 구조
→ 첫 단계를 시작하면 마지막 단계까지 수
설계 → 생산 → 조립
사용자 입력
input : 사용자로부터 데이터를 입력받는 함수
→ 입력 데이터를 문자 데이터 타입으로 반환
→ 함수의 파라미터는 입력 안내문의 목적으로 사용
rab = input(”반지름을 입력하세요:”)
→ 입력 대기 후 입력 값 반
프로그래밍 에러
설계 미숙, 결함 또는 문법 오류로 프로그램이 의도한 대로 결과를 생성하지 못하는 문제
→ 구문오류 (syntax error) : 문법체계에 적합하지 않는 명령문 입력 시 발생
→ 실행오류(runtime error) : 논리적으로 실행 불가능한 명령문 작성 시 발생
→ 의미오류(semantic error) : 의미적으로 잘못 해석되는 명령문 작성 시 발생
데이터타입 변환
데이터 타입을 다른 타입으로 전환
문자열 타입으로 변환 : str 함수
정수 타입으로 변환 : int 합수
소수 타입으로 변환 : float 함수
print 함수의 확장
여러 개의 데이터를 단일 함수로 출력 가능
→ 콤마(,)로 파라미터를 구분하여 입력
→ 데이터 사이에 공백(기본값) 이 자동으로 추가
→ sep 옵션을 변경하여 공백 변경 가능
선택구조
특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 결정하는 구조
→ 실행 여부는 조건에 따라 결정
→
검사 → if(정상) → 배송
→ if(불량) → 재생
선택구조의 구문형식
if boolean :
명령문1
명령문2
→ 들여쓰기는 코드 블록을 표현
→ 특정 동작을 수행하는 한 라인 이상의 명령문의 집합
→ 스페이스 4칸 권고(PEP-8)
반복구조
특정 영역의 명령문을 여러 번 재실행하는 구조
→ 반복 횟수를 조건에 따라 결정
→ loop,iterate, repeat 라고 불
설계 ↔ 배송 (반복)
- 구문형식
조건 제어 반복 :
while 반복 - 계속 - 조건 :
내용
계수 제어 반복 :
for 계수 - 제어 - 변수 in 시퀀스 :
내용
리스트
순서화된 값의 집합체를 저장 할 수 있는 데이터 타입
- 단일 식별자로 연속된 저장 공간 접근 수단 제공
- 개별 원소의 값을 수정, 추가, 삭제 가능
- 원소(element)의 나열을 저장할 수 있는 시퀀스 타입 중 하나 ( 리스트, 세트, 투플, 딕셔너리 등)
리스트의 구문형식
list([원소 시퀀스])
[원소 시퀀스]
→ 인용부호 [] 를 사용하여 표현, 원소는 콤마(,)로 나열
인덱스 연산자
시퀀스 타입의 원소에 접근하는 연산자
→ 접근 연산자 [,] 사용
→ 원소에 부여된 인덱스 번호로 지칭
hei_list[1,2,3,...,31]
// hei_list[0] -> 1
// hei_list[1] -> 2
// hei_list[2] -> 3
// hei_list[hei_list.lenght - 1] -> 31
리스트 생성 자동화
리스트 내 원소에 규칙성이 있는 경우
생성 자동화를 위해 함수 사용 가능
range(a,b,k)
// a 생략 시 기본 값 0
// k 생략 시 기본값 1
range(1,100,1) // 1 ~ 99까지 1씩 증가 의 배
a 부터 b보다 작은 값까지 k씩 증가 시퀀스 생성
중첩 반복 구조
반복 구조 내 다른 반복 구조를 내포한 형식
for 계수-제어-변수 in 시퀀스1:
for 계수-제어-변수2 in 시퀀스2:
내용
format 함수
데이터를 양식에 맞춰 형식화
format("변경 대상 데이터", "정렬방향 , 필드 폭 , 데이터 타입(d,s)")
format("구구단 표", ">10s")
'KNOU > 요약정리' 카테고리의 다른 글
[python] 객체지향 (0) | 2023.05.16 |
---|---|
[python] 함수 (0) | 2023.05.16 |
[python] 파이썬의 이해 (0) | 2023.05.16 |
[C 프로그래밍] 메모리 동적 할당 (0) | 2023.05.10 |
[C 프로그래밍] 파일처리함수 (0) | 2023.05.10 |
댓글