Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jpa 활용2 - api 개발 고급
- @Aspect
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch8
- 타임리프 - 기본기능
- 스프링 고급 - 스프링 aop
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch5
- 스프링 mvc2 - 로그인 처리
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch13
- 코드로 시작하는 자바 첫걸음
- 스프링 mvc2 - 검증
- 스프링 입문(무료)
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch11
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 타임리프
- 게시글 목록 api
- 자바의 정석 기초편 ch6
- 스프링 db1 - 스프링과 문제 해결
- jpa - 객체지향 쿼리 언어
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch2
Archives
- Today
- Total
나구리의 개발공부기록
2장 - 프로그래밍 언어 활용 | 섹션13. Python의 기초, 섹션14. Python의 활용 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 4강 - 프로그래밍 언어 활용
2장 - 프로그래밍 언어 활용 | 섹션13. Python의 기초, 섹션14. Python의 활용
소소한나구리 2024. 5. 10. 12:182024년도 시나공 필기 책 내용 정리
섹션14. Python의 기초
1. Python의 기본 문법
- 변수의 자료형에 대한 선언이 없음
- 분장의 끝을 의미하는 세미콜론(;)을 사용할 필요가 없음
- 변수에 연속하여 값을 저장하는 것이 가능함, ex) x, y, z = 10, 20, 30
- if 나 for와 같이 코드 블록을 포함하는 명령문을 작성할 때 코드 블록은 콜론(:)과 여백(들여쓰기)로 구분함
- 여백은 일반적으로 4칸 혹은 한 개의 탭만큼 띄워야 하며 같은 수준의 코드들은 반드시 동일한 여백을 가져야 함
if a > b:
print('a is big')
print('b is small')
else:
print('a is small')
print('b is big')
2. Python의 데이터 입/출력 함수
- input() 함수 : Python의 표준 입력 함수로 키보드로 입력받아 변수에 저장하는 함수, 입력되는 값은 문자열로 취급
# 형식1
변수 = input(출력문자) # 출력문자는 생략이 가능하며 변수는 사용자가 임의로 지정,
# 값을 입력하고 enter를 누르면 입력한 값이 변수에 저장됨
# 형식2
변수1, 변수2, ... = input(출력문자).split(분리문자)
# 화면에 출력문자가 표시되고, 입력받은 값을 분리문자로 구분한 값을 각선언한 변수에 저장,
# 분리문자를 생략하면 공백으로 값들을 구분함
x, y = input().split('-') // gilbut-sinagong 입력시
print(x, y) // x에는 gilbut, y에는 sinagong 저장되여 출력됨
- print() 함수
# 형식1
print(출력값1, 출력값2, ..., sep = 분리문자, end = 종료문자)
# 출력값에는 숫자, 문자, 문자열, 변수 등 다양한 값이나 식이 올 수 있음
# sep 여러 값을 출력할 때 값과 값 사이를 구분하기 위해 출력하는 문자, 생략할 경우 기본값은 공백 1칸
# end는 맨 마지막에 표시할 문자로 생략할 경우 기본값은 줄 나눔(줄건너뛰기)임
print(82, 24, sep = '-', end = ".") // 결과 82-24.
#형식2
print(서식 문자열 %(출력값1, 출력값2, ...))
# C와 Java에서 사용했던 printf의 서식문자열과 동일하게 적용
# 출력값이 한 개일 경우 출력값에 대한 괄호를 생략할 수 있음
print('%-8.2f' %200.20) // 결과 200.20, 왼쪽부터 출력자리수를 8자리, 소수점을 2자리로 지정하고 실수로 출력
입력 값의 형변환(Casting)
- input() 함수는 입력되는 값을 무조건 문자열로 저장하므로 숫자로 사용하기 위해서는 형변환을 해야함
변수 = int(input()) # 정수로 변환
변수 = float(input()) # 실수로 변환
# map 함수는 input().split()를 통해 입력받은 2개 이상의 값을 원하는 자료형으로 변환할때 사용하는 함수
# map(자료형, input().split())
변수1, 변수2, ... = map(int, input().split())
변수1, 변수2, ... = map(flot, intput().split())
a, b = map(int, input().split())
3. 리스트(List)
- C와 Java의 배열와 동일한 기능, 여러 요소를 하나의 이름으로 처리하는 자료형
- 필요에 따라 개수를 늘이거나 줄일 수 있기 때문에 리스트를 선언할 때 크기를 적지 않음
- 배열과 달리 하나의 리스트에 정수, 실수, 문자열 등 다양한 자료형을 섞어서 저장할 수 있음,
- 리스트의 위치는 0부터 시작함(인덱스)
# 형식
리스트명 = [값1, 값2, ...] # [] 대괄호 사이에 값을 입력하고 쉼표(,)로 값을 구분
리스트명 = list([값1, 값2, ...])
a = [10, 'mike', 23.45]
print(a) # [10, 'mike', 23.45]
a[0] = 1
print(a) # [1, 'mike', 23.45]
4. 딕셔너리(Dictionary)
- 연관된 값을 묶어서 저장하는 용도로 사용함, Java의 map과 동일
- 사용자가 원하는 값을 키로 지정해 사용(인덱스를 사용하지 않음)
- 딕셔너리에 접근할 때는 딕셔너리 뒤에 [ ] 대괄호를 사용하며, 대괄호 안에 키를 지정
# 형식
딕셔너리명 = {키1:값1, 키2:값2, .....} # 중괄호 사이에 {키:값, 키:값} 형태로 입력
딕셔너리명 = dict({키1:값1, 키2:값2, .....})
a = {'이름':'홍길동', '나이':25, '주소':'서울'}
print(a) # {'이름': '홍길동', '나이': 25, '주소': '서울'}
a['이름'] = '이순신'
print(a) # {'이름': '이순신', '나이': 25, '주소': '서울'}
5. Range
- 연속된 숫자를 생성하는 것으로 리스트, 반복문 등에서 많이 사용됨
# 형식 (Java의 for문과 흡사함)
range(최종값) # 0에서 최종값 -1 까지 연속된 숫자를 생성
range(초기값, 최종값) # 초기값에서 최종값-1 까지 연속된 숫자를 생성
range(초기값, 최종값, 증가값) # 초기값에서 최종값-1까지 증가값만큼 증가하면서 증가
# 증가값이 음수인경우 감소,
a = list(range(10))
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = list(range(4,10))
print(a) # [4, 5, 6, 7, 8, 9]
a = list(range(1,10,3))
print(a) # [1, 4, 7]
a = list(range(10,1,-2))
print(a) # [10, 8, 6, 4, 2]
6. 슬라이스
- 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라서 반환하는 기능
# 형식
객체명[초기위치:최종위치] # 초기위치에서 최종위치-1까지의 요소들을 가져옴
객체명[초기위치:최종위치:증가값] # range와 동일하게 증가값을 설정하여 요소를 가져올 수 있음
# 일부 인수를 생략하여 사용할 수 있음
객체명[:] 혹은 객체명[::] # 객체의 모든 요소 반환
객체명[초기위치:] # 객체의 초기위치에서부터 마지막까지의 요소들 반환
객체명[:최종위치] # 객체의 0번째 위치에서 최종위치-1까지의 요소들 반환
객체명[::증가값] # 객체의 모든 요소를 증가값만큼 증가(감소)하면서 요소들을 반환
a = ['a','b','c','d','e']
a[1:3] # ['b', 'c']
a[0:5:2] # ['a', 'c', 'e']
a[3:] # ['d', 'e']
a[:3] # ['a', 'b', 'c']
a[::3] # ['a', 'd']
# 예제
a = 'sinagong'
print(a[3:7]) # agon
a = lint(range(10))
print(a[:7:2]) # [0, 2, 4, 6]
a = 'hello, world'
print(a[7:]) # world
a = list(range(5,22,2)) # [5, 7, 9, 11, 13, 15, 17, 19, 21]의 요소를 3씩 증가하면서 꺼냄
print(a[::3]) # [5, 11, 17]
a = list(range(8))
print(a[2::2]) # [2, 4, 6]
a = list(range(8,3,-1))
print(a[:3]) # [8, 7, 6]
# 각 객체의 첫 번째 요소는 위치가 0임, -1은 객체의 마지막요소가됨
# range와 slice의 최종값이나 최종위치는 증가값에 따라 감소하거나 증가함
a = 'Programming'
# a[-11] = P ... a[-1] = g
# 초기위치가 음수이고 최종위치가 생략된 상태에서 증가값이 양수일 때는 최종위치가 -1 이됨
print(a[-7::2]) # [rmig] -7위치의 값부터 최종위치까지 2씩 증가하면서 값을 꺼냄
a = 'Concurrency Control'
# a[-19] = C, a[-1] = l
# 초기위치가 생략되고 최종위치가 음수인 상태에서 증가값이 음수일 경우 초기위치는 -1 이됨
print(a[:-10:-2]) # [lrnCy] -1위치(초기)의 값부터 최종위치까지 -2씩 감소하면서 값을 꺼냄
섹션14. Python의 활용
1. if문
# 형식1 : 조건이 참일 때만 실행
if 조건:
실행할 문장
a = 15
if a > 10:
a = a - 10
print(a)
# 출력결과 : 5
# 형식2 : 조건이 참일 때와 거짓일 때 실행할 문장이 다름
if 조건:
실행할 문장1
else:
실행할 문장2
a, b = 10, 20
if a > b: # a(10)가 b보다 크면(20) true로 if문을 작으면 false로 else문을 실행
cha = a - b
print(cha)
else:
cha = b - a
print(cha)
# 출력결과 : 10
# 형식3 : 조건이 여러개이고, 조건마다 실행할 문장이 다름
if 조건1:
실행할 문장1
elif 조건2: # 자바, C의 else if 를 파이썬에서는 elif로 작성
실행할 문장2
elif 조건3:
실행할 문장3
...
else:
실행할 문장4
jum = 85
if jum >= 90:
print('학점은 A입니다.')
elif jum >= 80:
print('학점은 B입니다.')
elif jum >= 70:
print('학점은 c입니다.')
elif jum >= 60:
print('학점은 D입니다.')
else:
print('학점은 F입니다.')
# 출력결과 : 학점은 B입니다.
# 형식4 : if문 안에 if문
if 조건1:
if 조건2:
실행할 문장1
else:
실행할 문장2
else:
실행할 문장3
a, b = 21,10
if a % 2 == 0:
if b % 2 == 0:
print('모두 짝수')
else:
print('a : 짝수, b : 홀수')
else:
if b % 2 == 0:
print('a : 홀수, b : 짝수')
else:
print('모두 홀수')
# 출력 결과 : a: 홀수, b : 짝수
2. for문
# 형식1 : range를 이용하는 방식
for 변수 in range(최종값): # 0에서 최종값-1까지 연속된 숫자를 변수에 저장하여 실행할 문장을 반복 수행
실행할 문장
for i in range(10): # i에 0에서 9까지 순서대로 저장하면서 문장을 반복 수행
sum += i # 0 ~ 9 까지의 값을 sum에 누적 연산, sum = 45가됨
for i in range(11, 20): # i에 11에서 19까지 반복문 실행
sum += i # 11 ~ 19까지의 값을 sum에 누적 연산, sum = 135
for i in range(-10, 20, 2): # i에 -19에서 19까지 2씩 증가하면서 반복문 실행
sum += i # -10 ~ 19까지의 값을 sum에 누적 sum = 60
# 형식2 : 리스트(List)를 이용하는 방식
for 변수 in 리스트: # 리스트의 0번째 요소에서 마지막 요소까지 순서대로 변수에 저장하여 반복문 수행
실행할 문장
a = [35, 55, 65, 84, 45]
hap = 0
for i in a: # a의 요소를 0부터 끝까지 순서대로 꺼내서 변수에 저장하여 반복문을 수행
hap += i # a의 요소를 hap에 누적연산, hap = 284
avg = hap / len(a) # hap의 값과 리스트 a의 길이의 값을 나누어서 평균을 구해 avg 변수에 저장, avg = 56.8
print(hap, avg)
# 출력 결과 284 56.8
3. while문
# 형식
while 조건: # 다른언어와 마찬가지로 참 or 거짓 결과를 갖는 수식 조건을 입력, 1(true), 0(flase)직접 입력 가능
실행할 문장
i, hap = 0, 0
while i < 5: # i가 5보다 작을동안 반복(5회)
i += 1 # i의 값을 1씩 누적연산 (++ 연산자가 없음)
hap += i # hap에 hap + i의 값을 누적연산
print(hap)
# 출력결과 : 15
4. 클래스
- 정의 형식
class 클래스명: # class = 클래스를 정의하는 예약어, 클래스명은 임의로 정의
실행할 문장
def 메소드명(self, 인수): # def = 메소드를 정의하는 예약어, 메소드명은 임의로 정의
# self = 메소드에서 자기 클래스에 속한 변수에 접근할 때 사용하는 명칭,
# 일반적으로 self를 사용하지만, 사용자가 임의로 지정해도 됨
# 인수 = 메소드를 호출하는 곳에서 보낸 값을 저장할 변수, 사용자가 임의로 지정
실행할 문장
return 값 # return은 메소드를 호출한 위치로 값을 돌려주기위해 사용하는 예약어
# return값이 없을 경우 생략할 수 있고 값에는 변수, 객체, 계산식 등이 올 수 있음
- 객체의 선언 형식
변수명 = 클래스명()
# 임의로 지정한 변수명에 클래스명()으로 객체를 선언,
# Java의 new 클래스명()과 비슷한 느낌
- 예제 - 두 수를 교환하는 프로그램
class Cls:
x, y = 10, 20
def chg(self): # 두 변수의 값을 교환하기 위한 메서드 chg 선언 및 구현
temp = self.x # 빈 변수 temp에 self.x의값을 저장
self.x = self.y # self.y의 값을 self.x에 저장
self.y = temp # temp의 값을 self.y에 저장
a = Cls() # 변수 a에 클래스의주소를 저장
print(a.x, a.y) # a.x와 a.y의 값을 출력, 출력결과 : 10 20
a.chg() # Cls 클래스의 chg 메소드를 호출(실행)
print(a.x, a.y) # a.x와 a.y의 값을 출력(값이 바뀜) 출력결과 : 20 10
- 예제 - 0 부터 10까지 더하는 프로그램
class Cls:
def rep(self, r): # rep 메소드 선언 및 구현
hap = 0
for i in range(r + 1): # 매개변수로 입력받은 값까지 반복문을 수행
# 10이 들어왔으므로 0부터 10+1(10) -1(마지막 값은 빠짐) 까지 반복문을 수행
hap += i # hap + i(0 ~ 10)의 값을 hap에 누적
return hap # hap을 반환
a = Cls() # a변수에 Cls 클래스 선언
b = a.req(10) # b변수에 a.req(10)메서드를 호출한 값을 반환
print(b) # 출력결과 55
클래스 없는 메소드의 사용
- C언어의 사용자 정의 함수와 같이 클래스 없이 메소드만 단독으로 사용할 수 있음
def calc(x, y): # 함수 정의
x *= 3 # 매개변수의 값에 3을 곱해서 저장
y /= 3 # 매개변수의 값에 3을 나눈 몫을 저장
print(x, y) # 출력 9 4.0
return x # x의 값을 반환
a, b = 3, 12
a = calc(a, b) # calc함수에 a와 b의 값을 매개변수로 하여 호출하고 연산 결과를 a에 저장
print(a,b) # 출력 9, 12
""" 출력결과
9 4.0
9 12
"""
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 4강 - 프로그래밍 언어 활용' 카테고리의 다른 글
2장 - 프로그래밍 언어 활용 핵심 요약 (0) | 2024.05.10 |
---|---|
2장 - 프로그래밍 언어 활용 | 섹션15. 스크립트 언어, 섹션16. 라이브러리, 섹션17. 예외 처리 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션10. 배열과 문자열, 섹션11. 포인터, 섹션12. 구조체 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션7. 데이터 입/출력, 섹션8. 제어문, 섹션9. 반복문 (0) | 2024.05.09 |
2장 - 프로그래밍 언어 활용 | 섹션4. 데이터 타입, 섹션5. 변수, 섹션6. 연산자 (0) | 2024.05.09 |