오늘보다 더 나은 내일의 나에게_
스마트인재개발원 국비지원무료교육 Python 기초 본문
저번 주부터 이번 주 수요일까지 파이썬 기초강의를 들었다. 기초강의 후 파이썬 라이브러리를 활용한 강의, 머신러닝 수업이 있기 때문에 파이썬 기초 부분을 열심히 해둬야 할 것 같다는 생각이 들어 이번 주는 파이썬 수업 내용을 정리해볼 생각이다.👀
파이썬을 이번 IoT과정 시작 전에 기초문법 정도만 인강으로 3주 정도 공부했었는데 벌써 3달.. 4달.. 전이라서🤦♂️ 생각나는 게 많이 없었다. 자바, Jsp/servlet, Spring 수업은 공부를 계속하면서 수업을 들었고 프로젝트 때도 계속 코드를 작성해서 새로운 개념이 나와도 많이 어렵다고 느낀 적은 없었다. 하지만 파이썬은 자바와는 다르게 간결한 문법을 사용했지만 자바에 익숙해진 나는 좀 어색하고 어렵게 느껴졌다...😵😵😵
먼저 파이썬 기초 수업 동안 jupyter nodebook을 사용했다. 일반 메모장 같은 느낌이었는데 간편하게 파이썬 코드 작성과 메모를 할 수 있어서 쉽게 적응했다.
주피터 노트북 단축키 정리
Python의 특징
- 초보자가 배우기 쉽다.
- 다양한 라이브러리 및 툴을 가지고 있다.
- 머신러닝, 인공지능 및 데이터 과학 라이브러리와 프레임워크를 활용할 수 있다.
- Python을 필요로 하는 기업의 수요가 증가하고 있다.
문자열 포매팅(Formmating)
: 문자열 안의 특정한 값을 바꿔야 할 경우 사용
함수 | 설명 |
%s | 문자열(string) |
%c | 문자 1개 |
%d | 정수(Integer) |
%f | 실수(float-point) |
%% | Literal % (문자 % 자체) |
1. % 기호
2. format함수 포매팅
3. f문자열 포매팅
조건문
: 상황에 따라 실행 흐름을 다르게 하는 문법
if, elif, else
리스트
- 파이썬의 자료구조 형태 중 하나
- 순서가 있는 수정 가능한 객체의 집합
- 대괄호([,])로 작성이 되고 리스트 내부의 값은 콤마(,)로 구분이 된다.
- 추가, 수정, 삭제 가능하다
메서드 정리
append( ) => 맨 뒤에 값을 추가
insert(인덱스위치, 값) => 인덱스 위치에 값을 추가
del 리스트명[인덱스값] => 리스트 값 삭제
remove(값) => 리스트 값 삭제
sort( ) => 리스트 오름차순 정렬
reverse( ) => 리스트 순서를 거꾸로 뒤집기
index(값) => 리스트 값 위치 반환
pop( ) => 리스트 값을 반환한 다음 리스트에서 제거
count(값) => 리스트에서 찾고자 하는 데이터가 몇 번 들어있는지 확인
len(리스트 명) => 리스트의 값 개수 반환
list12 = ['a','b','b','v','c','d']
튜플
- 파이썬의 자료구조
- 형태중 하나 순서가 있는 집합
- 소괄호((,))로 작성이 되며, 튜플의 내부 값은 콤마(,)로 구분
- 추가, 수정, 삭제 불가능
반복문
while문
흐름도
예제
while True: num1 = int(input("첫 번째 정수 입력 >> ")) num2 = int(input("두 번째 정수 입력 >> ")) if num1==0 and num2==0: print("프로그램이 종료되었습니다.") break print("두 정수의 합 : {}".format(num1+num2))
weight1 = int(input("현재 몸무게 : ")) weight2 = int(input("목표 몸무게 : ")) cnt = 1 while True: w1 = int(input(f"{cnt}주차 감량 몸무게 : ")) weight1 -= w1 cnt += 1 if(weight1 <= weight2): print("{}kg 달성!! 축하합니다!".format(weight1)) break
for문
: 문자열 또는 리스트 또는 튜플이 들어갔을 때 안에 있는 요소를 하나씩 반복
range( ) 함수
- 필요한 만큼의 숫자를 만들어내는 유용한 기능
- range(시작할 숫자, 종료할 숫자, 증가량)
- range(1, 10, 1) -> 1부터 9까지 1씩 증가
- range(1, 100, 3) -> 1부터 99까지 3씩 증가
- range(10, 1, -1) -> 10부터 2까지 1씩 감소(-1씩 증가)
예제
for i in range(97,76,-1): print(i, end=" ") for i in range(23,40,1): print(i, end=" ")
# 1번 문제 sum = 0 for i in range(0,101,3): sum += i print(sum) #2번 문제 for i in range(1,10,1): print(f"2 * {i} = {2*i}")
num = int(input("정수 입력 >> ")) print(f"{num}의 약수 : ", end="") for i in range(1,num+1): if num%i==0: print(i, end=" ")
딕셔너리(dictionary)
: dictionary는 단어 그대로 해석하면 사전이라는 뜻
=> dictionary는 Key와 Value를 한 쌍으로 갖는 자료형
=> 타입은 immutable한 key와 mutable한 value로 맵핑되어 있는 순서가 없는 집합
딕셔너리명 = {Key : Value, Key:value, .........}
*Key에는 변하지 않는 값을 사용
*Value에는 변하는 값과 변하지 않는 값 모두 사용
dic_test = {'노래제목':'아무노래'}
Key, Value 추가하기dic_test['가수'] = '지코' dic_test['날짜'] = '2022.01.13'
딕셔너리 값 가져오기#1번 방법 => 딕셔너리명[Key] dic_test['노래제목'] #2번 방법 => 딕셔너리명.get(Key) dic_test.get('노래제목']
Key, Value 값 전부 가져오기#key값 가져오기 dict_test.keys() #value값 가져오기 dict_test.values() #반복문으로 한번에 출력 for key, value in dict_test.items(): print(key,value)
in -> True, False
>>> in 딕셔너리의 키에 한에서 동작한다!
'노래제목' in dict_test #True '아무노래' in dict_test #False
딕셔너리 값 삭제#딕셔너리 값 삭제 -> del 딕셔너리명[Key] del dic_test['노래제목'] #딕셔너리 값 모두 지우기 -> clear() dic_test.clear()
함수란?
: 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
함수를 사용하는 이유
- 반복적인 프로그래밍을 피할 수 있다
- 모듈화로 인해 전체적인 코드의 가독성이 좋아진다
- 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때에도 손쉽게 유지보수가 가능하다
함수의 구조
def 함수명(매개변수):
실행 문장
return 반환 변수
예제
def number_sub(num1,num2): return num1-num2 num1=int(input("첫 번째 정수 입력>> ")) num2=int(input("두 번째 정수 입력>> ")) result = number_sub(num1,num2) print(result)
def cal(num1,num2, op): """덧셈과 뺄셈을 계산하는 함수""" if op == "+": result = num1+num2 elif op == "-": result = num1-num2 return result num1 = int(input("첫 번째 정수 입력 >> ")) num2 = int(input("두 번째 정수 입력 >> ")) op = input("연산자 입력(+,-) >> ") result = cal(num1,num2, op) print(f"결과 : {result}")
독스트링(docstring) => 함수의 설명을 작성(Shift+<Tab>)
가변 매개변수(*)
: 함수 호출 시 몇 개의 인수가 전달될지 알 수 없다면, 사용자가 직접 매개변수의 개수를 정할 수 있도록 선언
전달된 모든 인수는 튜플(tuple)의 형태로 저장
예제
def add(*args): print(args) add(1,2,3,4,5)
=> 함수의 반환 값은 언제나 하나이다! return 값
기본값 설정
=> num**power에서 **는 지수를 뜻 함!
현재 모집 중인 과정
스마트인재개발원 본점 남구 CGI센터
스마트인재개발원 분점 동구 아트센터
스마트 인재개발원이 궁금하다면 아래 링크!
'스마트인재개발원' 카테고리의 다른 글
스마트인재개발원 국비지원무료교육 IoT 과정 오늘 하루는? (0) | 2022.03.30 |
---|---|
스마트인재개발원 국비지원무료교육 핵심프로젝트를 마무리하며 (0) | 2022.03.17 |
스마트인재개발원 국비지원무료교육 Front Controller 패턴 (0) | 2022.03.13 |
스마트인재개발원 국비지원무료교육 서블릿 포워드 방법 정리 (0) | 2022.03.06 |
스마트인재개발원 국비지원무료교육 핵심프로젝트 2차 멘토링, 기획발표 정리 (0) | 2022.02.26 |