23.11.03
프로그램 작성의 5단계
- 문제 이해
- 변수 고민
- 구조 고민
- 코딩
- 검증
=과 == 혼동하지 말기
=은 <- 으로 생각 (오르쪽 값으로 할당한다)
==은 양쪽이 같다는 의미
변수의 이름
의미 있는 이름을 사용
소문자와 대문자는 서로 다르게 취급한다
변수의 이름은 영문자와 숫자, 밑줄(_)로 이루어진다
변수의 이름 중간에 공백이 들어가면 안 된다. 단어를 구분하려면 밑줄(_)을 사용
변수삭제 : del 변수
빈 변수 만들기 : None을 할당
파이썬에서 None은 아무 것도 없는 상태를 나타내는 자료형
사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때 : input()
+) input은 뭐든 str로 받아온다!
입력값을 여러 개의 변수에 저장하기 : .split()
int는 각각 해줘야함 -> 한꺼번에 하려면 map을 이용하자!
sep로 값 사이에 문자 넣기(sep=separator)
줄 바꾸기 : sep='\n'
print 줄 바꾸기 금지 : print(값, end='문자 또는 문자열')
*기본적으로 print의 end에 '\n'이 지정된 상태인데 빈 문자열을 지정하면 강제로 '\n' 지워줌
참/거짓(Boolean,불연산자)
값의 일종으로 참(True), 거짓(False)으로 표현
=, !=는 값 자체를 비교하고, is, is not은 객체(object)를 비교
값(숫자)를 비교할 때는 is가 아닌 비교 연산자를 사용
and, or, not 논리 연산자 복합 사용 시 not, and, or 순으로 판단
단락평가 :
첫 번째 값만으로 결과가 확실할 때 두 번째 값은 확인(평가)하지 않는 방법을 의미
즉, and 연산자는 두 값이 모두 참이라야 참이므로 첫 번째 값이 거짓이면 두 번째 값은 확인하지 않고 바로 거짓으로 결정.
or 연산자는 두 값 중 하나만 참이라도 참이므로 첫 번째 값이 참이면 두 번째 값은 확인하지 않고 바로 참으로 결정.
23.11.06
리스트(list)
data를 관리하기 편리하도록 묶어서 순서를 정하고 사용하는 data type
변수에 값을 저장할 때 []로 묶어주면 리스트가 되며 각 값은 ,(콤마)로 구분.
리스트에 저장된 각 값 -> 요소(element)
문자열, 정수, 실수, 불 등 모든 자료형을 저장할 수 있으며 자료형을 섞어서 저장해도 됨
range
연속된 숫자를 생성하는데 range에 10을 지정하면 0부터 9까지 숫자를 생성.
즉, 지정한 횟수 숫자는 생성되는 숫자에 포함되지 않음.
시작하는 숫자와 끝나는 숫자를 지정 가능.
이때도 끝나는 숫자는 생성되는 숫자에 포함되지 않음.
즉, list에 range(5,12)를 넣으면 5부터 11까지 들어있는 리스트가 생성.
증가폭을 지정하면 해당 값만큼 증가하면서 숫자를 생성.
리스트 = list( range(시작, 끝, 증가폭) )
만약 증가폭을 음수로 지정하면 해당 값만큼 숫자가 감소.
튜플(Tuple)
리스트처럼 요소를 일렬로 저장하지만, 안에 저장된 요소를 변경,추가,삭제가 불가능. (읽기전용 리스트)
변수에 값을 저장할 때 ( ) (괄호)로 묶어주면 튜플이 되며 값은 ,(콤마)로 구분. 또는, 괄호로 묶지 않고 값만 콤마로 구분해도 튜플이 됨.
튜플을 만든 상태에서 요소를 변경하게 되면 에러가 발생하며, 따라서 요소를 실수로 변경하는 상황을 방지할 수 있음.
보통 실무에서는 요소를 변경하는 경우가 많기 때문에 튜플보다 리스트를 더 자주 사용.
요소가 한 개인 튜플을 만들 때는 () (괄호)안에 값 한 개를 넣고 , (콤마)를 사용
튜플=(값, )
튜플=값,
리스트와 튜플의 요소를 변수 여러 개에 할당하는 것을 리스트 언패킹, 튜플 언패킹이라고 함.
입력 값을 변수 두 개에 저장하기 위해 사용한 input().split()은 리스트를 반환.
그래서 리스트 언패킹 형식으로 입력 값을 변수 여러 개에 저장할 수 있음.
리스트 패킹과 튜플 패킹은 변수에 리스트 또는 튜플을 할당하는 과정을 뜻함.
리스트, 튜플, range, 문자열의 공통점 : 연속적(sequence)
시퀀스 자료형의 특징 : 공통 동작과 기능을 제공
시퀀스 객체 : 시퀀스 자료형으로 만든 객체
요소(element) : 시퀀스 객체에 들어있는 각 값
리스트는 읽기 쓰기 모두 가능! 튜플, 문자열, list는 읽기만 가능!
시퀀스 객체 연결하기
리스트 a와 b를 더하니 두 리스트가 연결되었음
변수를 만들지 않고 리스트 여러 개를 직접 연결해도 상관없음
range는 + 연산자로 객체를 연결할 수 없음
이런 식으로 오류가 뜸
range를 리스트 또는 튜플로 만들어서 연결하면 됨
range는 유리상자 속의 물건 같은 것이므로 list나 tuple로 끄집어내야함!!
len()
시퀀스 객체에는 요소가 여러 개 들어있다. 이 요소의 개수(길이)를 구할 때 사용[len은 length에서 따옴]
리스트a에는 요소 10개가 들어있다!
인덱스(index)
시퀀스 객체의 각 요소는 순서가 정해져 있으며, 이 순서를 인덱스라고 함.
시퀀스 객체에 [ ](대괄호)를 붙이고 [ ] 안에 각 요소의 인덱스를 지정하면 해당 요소에 접근할 수 있음.
특이하게도 파이썬에서의 첫 번째 인덱스는 0이다
-1이 맨 마지막 요소를 나타냄
시퀀스 슬라이스
시퀀스 객체의 일부를 잘라냄
a[1:1]처럼 시작 인덱스와 끝 인덱스를 같은 숫자로 지정하면 아무것도 가져오지 않음
a[1:2]처럼 끝 인덱스에 1을 더 크게 지정해야 요소 하나를 가져옴
시퀀스 객체[시작인덱스:끝인덱스:인덱스증가폭]
딕셔너리(dictionary)
연관된 값을 묶어서 저장하는 용도의 자료형
{ }(중괄호) 안에 키(key):값(value) 형식으로 저장하며 각 키와 값은 ,(콤마)로 구분해줌
만약 키(key)가 중복되면 가장 뒤에 있는 값만 사용한다. (중복되는 키는 저장되지 않음)
키(key)는 문자열뿐만 아니라 정수, 실수, 불도 사용할 수 있으며 자료형을 섞어도 가능
값(value)에는 리스트, 딕셔너리 등을 포함하여 모든 자료형을 사용할 수 있음
딕셔너리 만드는 4가지 방법
- dict(키1=값1,키2=값2)
- dict(zip([키1,키2],[값1,값2]))
- dict([(키1,값1),(키2,값2)])
- dict({키1:값1, 키2:값2})
딕셔너리는 없는 키에 값을 할당하면 해당 키가 추가되고 값이 할당됨
딕셔너리는 없는 키에서 값을 가져오라고 하면 에러가 발생
여러 개의 값을 한꺼번에 추가하기 위해서는 update()함수를 사용
딕셔너리에서 키가 있는지 확인하고 싶다면 in 연산자를 사용
23.11.08
if 조건문
if에 조건식을 지정하고 :(콜론)을 붙이며 다음 줄에 실행할 코드가 옴
이 때 실행할 코드는 반드시 들여쓰기를 해야함!
if 조건문은 분기(branch)를 위한 문법 → 프로그램의 흐름을 둘 이상으로 나누는 것
if 조건문에는 논리 연산자를 사용하여 조건식을 여러 개 지정할 수 있음
else
if에 else를 사용하면 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있음
프로그램이 두 방향으로 분기하는 것
if 조건문의 동작 방식:
true는 if의 코드가 실행되고, false는 else의 코드가 실행됨
None은 false로 취급되므로 else의 코드가 실행됨
실제 코드를 작성할 때 변수에 들어있는 값이나 함수의 결과가 None인 경우가 많다!
elif
프로그램을 만들다 보면 참, 거짓으로만 분기하는 것은 한계가 있다
실제로는 두 가지 이상의 다양한 상황이 발생함
여러 가지 상황을 처리하는 대표적인 예로는 음료수가 자판기가 있음
조건문 안의 조건문
중첩된 조건문(if문 안에 if 문이 있는 형태) 사용
학생인지 아닌지를 먼저 입력 받음
학생인 경우 1번 '초등', 2번 '중등', 3번 '고등' 중 하나를 다시 입력 받음
결과는 '학생이며 초등' 또는 '학생이 아님'으로 표시
for 반복문
for 반복문은 range에 반복할 횟수를 지정하고 안에 in과 변수를 입력
끝에 :(콜론)을 붙인 뒤 다음 줄에 반복할 코드를 넣음
파이썬의 for 반복문은 range에서 in으로 숫자를 하나하나 꺼내서 반복하는 방식임
for는 숫자를 꺼낼 때마다 코드를 실행함
for 변수 in range(횟수) → 반복할 코드로 순환하는 것을 루프(loop)라고 부름
이렇게 i를 매번 꺼내 쓴다는 것을 볼 수 있다
증가폭을 음수로 지정하는 방법 말고도 reversed를 사용하면 숫자의 순서를 반대로 뒤집을 수 있음
※for에는 시퀀스 객체들(list, tuple, 문자열)이 들어갈 수 있다
while 반복문
조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어감
조건식을 판별하여 참이면 코드를 계속 반복하고, 거짓이면 반복문을 끝낸 뒤 다음 코드를 실행
예제1) 1부터 10까지 순서대로 칸을 바꾸지 않고 공백 2자리마다 표시하라.
예제2) while문을 사용하여 -50에서 1까지의 수를 출력하는 프로그램을 작성하시오(시작 값은 달라질 수 있다)
(한 줄에 5개씩 표시하고 수와 수 사이는 탭만큼 띄워준다)
'[패캠] 데이터분석 부트캠프 > 수업 정리' 카테고리의 다른 글
패스트캠퍼스 BDA 부트캠프 | 7주차 과정(MySQL) (0) | 2024.09.04 |
---|---|
패스트캠퍼스 BDA 부트캠프 | 6주차 과정(MySQL) (1) | 2024.09.04 |
패스트캠퍼스 BDA 부트캠프 | 4주차 과정(파이썬) (0) | 2024.09.04 |
패스트캠퍼스 BDA 부트캠프 | 2주차 과정(엑셀) (1) | 2024.09.03 |
패스트캠퍼스 BDA 부트캠프 | 1주차 과정(엑셀) (0) | 2024.09.03 |