//방송통신대학교 컴퓨터과학과 2023년도 1학기 정재화 교수님의 파이썬프로그래밍기초 수업을 기반으로 작성한 글입니다.
🌈 Basic Rules
- 동적 타이핑 특징으로 변수의 자료형을 미리 선언할 필요가 없다!
- 숫자는 소수점이 없는 정수 int와 소수점이 있는 실수 float로 구분
- 문자 또는 문자열은 인용부호 " 또는 '를 사용하여 표현 (둘다 무관)
- 들여쓰기 의존적 언어로, PEP 8에 의해 스페이스 4칸 권장
- 한 라인 주석에 # 사용, 여러 라인 주석에 """ 또는 '''을 사용 (둘다 무관)
- 식별자는 문자 또는 밑줄로만 시작 가능
- 식별자에 길이 제한이 없다!
- 별도의 모듈이나 패키지를 불러오지 않고 사용가능한 파이썬 내장 함수가 있다! (파이썬 인터프리터에서 지원) e.g. max(), round(), pow(), etc.
- 단락평가 (Short-circuit evaluation) : 첫 번째 논리값만으로 전체 연산 결과가 판별 가능할 때 두 번째 논리값을 확인/평가하지 않는 기법
- 변수의 개수에 상응하는 값을 콤마(,)로 나열하는 동시 할당 지원
- 복수 개의 변수에 할당값 맞바꾸는교환(swap) 지원
#동시할당
temp, season = 27. "summer"
#교환(swap)
temp = hei
hei = rad
rad = temp
rad, hei = hei, rad
🌈 프로그래밍 에러
(1) 구문 오류 (syntax error) : 문법 체계에 적합하지 않은 명령문 입력 시 발생
(2) 실행 오류 (runtime error) : 논리적으로 실행 불가능한 명령문 작성 시 발생
(3) 의미 오류 (semantic error) : 의미적으로 잘못 해석되는 명령문 작성 시 발생
* 띄어쓰지 제대로 안하면? 구문 오류 발생!
🌈 구조적 프로그래밍 패러다임
: 절차적 프로그래밍 패러다임의 하위 개념
- 프로그램을 실행 흐름이 간결하고 작은 규모로 조직화하기 쉬움
- 프로그램을 하기 세 가지 제어구조만으로 구성하는 패러다임
(1) 순차구조 - input, print
(2) 선택구조 - if
(3) 반복구조 - for, while
🌈 format 함수





print(format("구구단표",">20s"))
# 표 머리 출력
print(" |", end = "")
for j in range(1, 10):
print(" ", j, end = "")
# 새로운 행 삽입
print()
print("-----------------------------------------")
# 구구단 표 출력
for i in range(1,10) :
print(i, "|", end = "")
for j in range(1, 10) :
#format(i*j, ">2d")
print(" ", format(i*j, ">2d"), end = "") # = print(format(i*j, ">4d"), end = "")
print()
| 출력 |
![]() |
🌈 기본 함수 SUITS
1) input 함수 및 형변환
#input 함수
rad = input("반지름을 입력하세요 : ")
#형변환
rad = int(input("반지름을 입력하세요 : "))
2) print 함수
#print 함수
print("부피는 ", vol, "입니다.", sep="", end="") #sep의 기본값은 공백, end의 기본값은 \n이지만 ""통해 다른 값으로 변경 가능
3) if 함수 중첩구조
#if 함수 중첩구조
if (rad > 0 and hei > 0) :
printf(rad)
elif (rad > 0 and hei < 0) :
printf(rad * 0)
else :
printf(rad * 10)
4) while 함수 & for 함수 (제어반복문)
#조건제어반복 while문
while count <= 5 :
print(msg)
count = count + 1
#계수제어반복 for문
hei_list = [1, 4, 14, 26, 31]
for hei in hei_list :
print(hei)
for i in range(4) : #시작이 0, 끝이 3이고 1씩 증가시키는 시퀀스
print("#", end = "")
5) 리스트 생성 자동화
#리스트 생성 자동화
a = range(1, 100) #1~99까지 99개의 정수 리스트 생성
b = range(1, 100, 1) #1~99까지 99개의 정수 리스트 생성
c = range(1, 100, 10) #1~99까지 10의 간격을 갖는 정수 리스트 생성
🌈 사용자 정의 함수
#좋지 않은 코드
def prt_cone_vol() :
r = 10
h = 10
if r > 0 and h > 0 :
vol = 3.14 * r ** 2 * h
print("부피는", vol)
#좋은 코드
def prt_cone_vol(r, h) :
if r > 0 and h > 0 :
vol = 3.14 * r ** 2 * h
return vol
rad = 30
hei = 50
vol = prt_cone_vol(rad, hei)
print("부피는", vol)
>> 기본 매개변수
- 함수 호출 시 매개변수가 전달되지 않을 경우 기본값이 전달되는 매개변수
- 일반 매개변수 앞에 위치 불가

>> 가변 매개변수
- 함수 호출 시 매개변수를 사용자가 원하는 개수만큼 지정할 수 있는 매개변수

def var_sum_avg(*num) : #매개변수를 리스트 형식으로 전달하기 때문에 for문 사용 필요
...
for i in num :
...
var_sum_avg(10, 20, 30, 40)
🌈 모듈 (Module)
함수, 상수 또는 클래스를 모아 놓은 집합체
- 파이썬 모듈을 프로그램 내부에서 사용할 수 있게 네임스페이스에 추가하는 명령어


- 모듈이름 없이 모듈의 변수, 함수, 클래스를 사용하는 명령어

- 네임스페이스 내 모듈의 멤버 식별자 제거

>> 모듈 등록 확인
(1) dir() : 네임스페이스에 등록되어 있는 모든 이름들을 리스트로 반환
(2) help() : 대화형 도움말 시스템 호출 또는 클래스/매소드의 사용방법 반환
* 네임스페이스 : 특정 객체를 이름에 따라 구분할 수 있는 범위

>> 모듈, 패키지, 라이브러리

- 모듈 : 클래스, 함수, 상수의 집합 (하나의 파이썬 파일로 존재)
- 패키지 : 하위 패키지 및 모듈의 집합 (폴더단위)
- 라이브러리 : 패키지 및 모듈의 집합
🌈 유용한 모듈 (Module) SUITS
(1) math 모듈

(2) random 모듈

(3) time 모듈


이만 여기까지. 바바!
23.06.16
'Programming > Python [피선]' 카테고리의 다른 글
| 파이썬 코드 작성을 위한 기본의 기본 배경지식_객체지향형 프로그래밍 패러다임 (0) | 2023.06.16 |
|---|---|
| 파이썬 개요 - 개발 환경에 대한 이해 (0) | 2023.06.15 |
| 파이썬 개요 - 그 이전에, "컴퓨터"란? (0) | 2023.06.15 |
| 22.12.12 Classes and Objects - The anatomy of a class (0) | 2022.12.12 |
| 22.12.08 Challenge_Function Plotter(2) (0) | 2022.12.09 |
