1. 변수 Variable
기본 입출력
- input() 함수
- 사용자가 입력하는 데이터를 받는 표준 입력 함수
- print() 함수
- 괄호 안의 내용을 출력하는 함수
1️⃣
>>> professor = "Minhye Kim"
>>> print(professor)
Minhye Kim
- 1️⃣번 케이스
- Line1
“professor라는 공간에 Minhye Kim이라는 글자를 넣어라.”
"professor라는 변수에 Minhye Kim이라는 값을 넣어라."
- Line1
2️⃣
>>> a=7
>>> b=5
>>> print(a+b)
12
>>> a=7
>>> b=5
>>> print("a+b")
a+b
- 따옴표(””)의 유무에 따른 결과 출력
- “” 안에 입력할 경우 (”a+b”) ⇒ 따옴표 안의 내용을 그대로 출력
- 그냥 입력할 경우 (a+b) ⇒ a변수와 b변수의 합으로 출력
- 사전에 변수(a, b)의 값을 지정하지 않으면 오류가 남
변수 선언
DEF) 어떠한 값을 저장하는 장소 (메모리)
- 의미 있는 이름으로 선언하는 것을 추천
- 단순 a,b,c와 같은 문자로 지정하면 다른 사람들이 봤을 때 이해하기 어려움.
- 알파벳, 숫자, 밑줄(_)로 선언 가능
- 대소문자 구분
- Professor와 professor는 서로 다른 변수
- 일반적으로 소문자로 구성하는 것을 추천
- 특별한 의미가 있는 예약어(for, if, else, except, etc.)는 지정할 수 X.
2. 자료형 Data type
기본 자료형
DEF) 변수가 어떤 형태의 데이터를 저장하는가를 나타냄
- 정수형 integer type
DEF) 자연수를 포함해 0, 1, 2, -1, -2와 같이 값의 영역이 정수로 한정된 값
- 데이터 선언 방식 : data=1
- 실수형 floating-point type
DEF) 소수점이 포함된 값. 값이 9.0이라도 인터프리터는 실수형으로 해석함. - 문자형 string type
DEF) 값이 문자로 출력되는 자료형
- 따옴표에 들어간 정보인 문자형 데이터
- 따옴표 안에 있다면 모두 문자형
- 앞의 입출력 2️⃣번 예시 참고
- 불린형 boolean (=논리형)
DEF) 참 또는 거짓을 표현할 때 사용하는 형식
- 값이 True라면 참이며 컴퓨터 상으로 1
- 반대는 False이며 컴퓨터에서는 0
실습
어떤 결과가 나올지 예상해보고 출력해봅시다!
정수형 integer type
a=1
b=1
print(a,b)
실수형 floating-point type
a="ABC'
b="101010"
print(a,b)
문자형 string type
a=1.5
b=3.5
print(a,b)
불린형 boolean type
a=True
b=False
print(a,b)
단순 연산
- 연산자: *+, -, , /
- 수학과 똑같은 연산 순서
- 숫자뿐만 아니라 문자간 +연산도 가능
- 피연산자: 연산자에 의해 계산되는 숫자
- 3 + 2 : 피연산자는 3과 2
- 사칙연산
- +(덧셈), - (뺄셈), ***** (곱셈), / (나눗셈)
- 제곱승 **
- ex) 3의 5제곱 ⇒ print(35**)
- 나눗셈 몫, 나머지
- 몫 반환 : //
- ex. 5//3 → 1
- 나머지 반환 : %
- 몫 반환 : //
- 증가 및 감소 연산 (+=, -=, …)
- n만큼 증가하여 연산 : += n
자료형 변환
- 정수형 int() ↔ 실수형 float()
- 먼저 변수를 정수형으로 선언한 뒤, float() 함수를 이용해 실수형으로 변환
- 정수형으로의 변환은 int() 함수를 이용한다. 보통 소수점 이하의 내림으로 처리 (반올림으로 처리하는 기존 수학과는 차이가 있음)
>>> a=10 #정수형 선언 >>> print(a) 10 >>> a=float(10) #실수형 변환 >>> print(a) 10.0
>>> a=int(10.7) #정수형 변환 >>> b=int(10.3) >>> print(a+b) 20
- 숫자형 ↔ 문자형 str()
- 숫자형 데이터와 문자형 데이터는 연산식이 성립되지 않음
- 두 자료형을 통일하는 과정이 필요
>>> a='76.3' #a에 문자형 76.3 할당 >>> a=float(a) #실수형 변환 >>> b=a #a를 b에 할당 >>> print(a+b) 152.6
>>> a=str(a) >>> b=str(b) >>> print(a+b) 76.376.3
- Data type 확인
- 프로그래밍 하다가 각 변수의 자료형을 확인해보고 싶다면 type() 함수를 이용
******ex.****** >>> a=int(10.3) >>> b=float(10.3) >>> c=str(10.3) >>> >>> type(a) <class 'int'> >>> type(b) <class 'float'> >>> type(c) <class 'str'>
3. 리스트 List
개념
DEF) 하나의 변수에 여러 값을 저장하는 자료형 (=시퀀스 자료형: 여러 자료를 순서대로 넣음)
- 정수형, 실수형 등 다양한 자료형을 하나의 리스트에 포함할 수 있음
- 앞서 배운 기본 자료형에는 포함되지 않지만 또다른 자료형 중 하나로 배열array라고도 불림
- 필요성
- 입력해야 할 데이터가 많을 때 변수에 값을 일일이 저장하면 코드가 길어지기도 하고 헷갈릴 수 있음
- 한 개의 변수에 모든 값을 저장하고자 할 때 유용한 자료형
colors = [’red’, ‘blue’, ‘green’]
→ colors라는 변수에 리스트 자료형 할당
→ colors라는 변수는 3개의 값을 가짐
→ 값은 각각 red, blue, green임
리스트의 기능: 인덱싱과 슬라이싱
- 인덱싱(indexing)
DEF) 리스트에 저장되어 있는 값에 접근하기 위해 이 값의 상대적인 주소offset를 사용하는 것
- 리스트의 첫 번째 값의 인덱스 주소는 0, 두 번째는 1, 세 번째는 2, …
colors=['red', 'blue', 'green'] print(colors[0]) red print(colors[1]) blue print(len(colors)) #len() 함수는 리스트의 길이를 나타내는 함수 (즉, 리스트 안의 값의 개수 반환) 3
- 슬라이싱(slicing)
DEF) 리스트의 인덱스 기능을 사용해 전체 리스트에서 일부만 잘라내어 사용하는 것
cities=[’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’, ‘광주’, ‘울산’, ‘수원’]
값 [’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’, ‘광주’, ‘울산’, ‘수원’]
인덱스 0 1 2 3 4 5 6 7
→ 0부터 7까지의 index를 가진 8개의 값이 있는 것
→ cities 변수에 8개의 도시이름이 값으로 저장되어 있음
변수명[시작 index : 마지막 index]
>>> cities=['서울', '부산', '인천', ‘대구’, ‘대전’, ‘광주’, ‘울산’, ‘수원’]
>>> cities[0:6]
[’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’, ‘광주’]
>>> cities[0:5]
[’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’]
>>> cities[5:] #마지막 인덱스 값까지 출력할 때 : 뒤를 비워둠
[‘광주’, ‘울산’, ‘수원’]
- 6번째 인덱스 값인 ‘울산’은 출력되지 X
- [마지막 인덱스-1] 값까지만 출력된다는 특징
- 범위를 넘어가는 인덱스를 입력하거나 인덱스를 지정하지 않을 경우, 자동으로 시작 인덱스와 마지막 인덱스로 지정됨
- 증가값(step)
- 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 추가할 수 있음
변수명[시작 인덱스:마지막 인덱스:증가값]
>>> cities=[’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’, ‘광주’, ‘울산’, ‘수원’]
>>> cities[::2] #2칸 간격으로 출력
['서울', '인천', '대전', '울산']
>>> cities[::-1] #역으로 1칸 간격으로 슬라이싱
['수원', '울산', '광주', '대전', '대구', '인천', '부산', '서울']
- 리버스 인덱스 (reverse index)
DEF) 인덱스를 마지막 값부터 시작하는 기능- 마지막 값부터 -1을 할당하여 첫 번째 값까지 역순으로 올라오는 방식
값 [’서울’, ‘부산’, ‘인천’, ‘대구’, ‘대전’, ‘광주’, ‘울산’, ‘수원’]
인덱스 -8 -7 -6 -5 -4 -3 -2 -1
리스트의 연산
- 덧셈
- 곱셈리스트의 곱셈 연산은 리스트에 n을 곱한 만큼 리스트를 n배 늘린다.
>>> color1=['red','blue','green']
>>> color2=['orange','black','white']
>>> print(color1+color2)
['red','blue','green','orange','black','white']
>>> len(color1)
3
>>> total_color=color1+color2
>>> total_color
['red','blue','green','orange','black','white']
- in 연산
- 포함 여부를 확인하는 연산. 해당 값이 리스트에 들어있는지 확인할 수 있음.
>>> 'blue' in color2
False
리스트 관련함수
- append() : 리스트 맨 마지막 인덱스에 새로운 값을 추가하는 함수
- extend() : 기존 리스트에 그대로 새로운 리스트를 합치는 기능
- 리스트의 덧셈 연산과 같음.
- insert() : 리스트의 특정 위치에 값을 추가하는 함수
- 0번째 위치에 새로운 값을 추가하고 싶다면
- 리스트이름.insert(index, ‘값’)
- remove() : 특정 값을 지우는 함수
- 삭제할 값을 remove() 함수 안에 넣으면 리스트의 해당 값이 삭제됨
- 삭제되면 그 다음 값들은 한 칸씩 앞으로 이동
- del을 사용한 재할당과 삭제
- 할당은 리스트 이름 뒤에 인덱스를 넣어 지정 → 기존의 값과 교체됨
- 삭제는 del 리스트이름[인덱스] → 값이 그대로 삭제됨
##append() 함수##
>>> color=['red','blue','green']
>>> color.append('white')
>>> color
['red','blue','green','white']
##extend() 함수##
>>> color=['red','blue','green']
>>> color.extend(['black','purple'])
>>> color
['red','blue','green','black','purple']
##insert() 함수##
>>> color=['red','blue','green']
>>> color.insert(0, 'orange')
>>> color
['orange','red','blue','green']
##remove() 함수##
>>> color
['orange','red','blue','green']
>>> color.remove('red')
>>> color
['orange','blue','green']
>>> color=['red','blue','green']
>>> color[0]='orange' #할당
>>> color
['orange','blue','green']
>>> del color[0] #삭제
>>> color
['blue','green']
패킹, 언패킹
>>> t=[1,2,3] #패킹
>>> a,b,c = t #언패킹
>>> print(t,a,b,c)
[1,2,3] 1 2 3
📦 패킹 packing
- 한 변수에 여러 개의 데이터를 할당하는 작업 </aside>
🔓 언패킹 unpacking
- 한 변수에 여러 개의 데이터가 들어있을 때 그것을 각각의 변수로 반환하는 방법
- 할당 받는 변수의 개수가 적거나 많으면 에러 발생 </aside>
이차원 리스트 (행과 열)
DEF) 여러 개의 리스트를 하나의 변수에 할당한 것
ex. 성적표
학생 | A | B | C | D | E |
국어 점수 | 49 | 79 | 20 | 100 | 80 |
수학 점수 | 43 | 59 | 85 | 30 | 90 |
영어 점수 | 49 | 79 | 48 | 60 | 100 |
>>> kor_score=[49,79,20,100,80]
>>> math_score=[43,59,85,30,90]
>>> eng_score=[49,79,48,60,100]
>>> midterm_score=[kor_score,math_score,eng_score]
>>> midterm_score
[[49,79,20,100,80],[43,59,85,30,90],[49,79,48,60,100]]
- 이차원 리스트의 값에 접근하기 위해서는 대괄호 2개를 사용하여 인덱싱 필요. 첫 번째 []는 행, 두 번째 []은 열
4. 문자열 String
개념과 특징
- 애플리케이션을 만들거나 데이터를 분석할 때 매우 중요하게 다루어지는 자료형 중 하나
- 시퀀스 자료형 sequence data type 중 하나
- 데이터를 순차적으로 메모리에 저장하는 형식의 데이터 (ex. 리스트)
특징1: 인덱싱 Indexing
- 글자 하나하나가 상대적인 주소offset를 가짐
abcde ← 저장된 문자열
01234 ← 상대적인 주소
-5-4-3-2-1 ← 역순
- 출력할 때는 이렇게
>>> a="abcde"
>>> print(a[0],a[4]) #a 변수의 0번째, 4번째 주소에 있는 값 출력
a e
>>> print(a[-1],a[-5]) #a 변수의 오른쪽에서 0번째, 4번째 주소에 있는 값 출력
e a
- 특징2: 슬라이싱 Slicing
DEF) 문자열의 주소값을 이용해 문자열의 부분값을 추출해내는 기법
- 변수[시작 인덱스:종료 인덱스:증가값]
주요함수
- upper() & lower() 함수
- → 문자열 변수.함수명()
- 문자열을 대문자/소문자로 변환
- title() 함수 & capitalize() 함수
- title: 각 단어의 앞글자만 대문자로 변환
- capitalize: 첫 번째 글자만 대문자로 변환
- count() 함수
- 해당 문자열에서 특정 문자가 포함된 개수 반환
- isdigit () & startswith () 함수
- isdigit: 해당 문자열이 숫자인지의 여부
- startswith: 해당 문자열로 시작하는지 True or False로 나타냄
#upper & lower
>>> title="TEAMLAB X Inflearn"
>>> title.upper()
'TEAMLAB X INFLEARN'
>>> title.lower()
'teamlab x inflearn'
#title & capitalize
>>> title.title()
'Teamlab X Inflearn'
>>> title.capitalize()
'Teamlab x inflearn'
#count
>>> title.upper().count("a")
0
#isdigit & startswith
>>> title.isdigit()
False
>>> title.startswith("a")
False
특수문자를 그대로 출력하는 법
특수문자 | 기능 |
/enter | 다음 줄과 연속 |
\ (역슬래시) | \문자 자체 |
\’ | ‘ 문자 |
\” | “ 문자 |
특수문자 | 기능 |
\b | 백스페이스 |
\n | 줄 바꾸기 |
\t | tab키 |
\e | esc키 |
</aside> |
문자열 서식 지정
print() 함수를 사용하다 보면 특정 형식(통화 단위, 세 자리 숫자 단위 띄어쓰기, % 출력 등)에 맞추어 결과를 출력해야 하는 경우가 발생한다. 이를 서식 지정formatting이라고 함.
% 서식
‘%자료형 % (값)’
print('%s %s'%('one','two'))
print('%d %d'%(1,2))
one two
1 2
print("I eat %d apples." % 3)
I eat 3 apples.
- % 뒤의 값들이 %d에 차례로 대응되어 할당됨
- 데이터와 출력 형식을 분류해 기존 print() 함수에 + 기호로 문자열 형태를 붙여주는 것보다 시각적으로 이해하기 쉬움
- 데이터를 각 변수의 자료형에 맞게 다르게 표현 가능
- %s 문자열 형태, %d 정수형, %c 문자 1개, %f 실수형, %o 8진수, %x 16진수, %% 문자 % 자체
format() 함수
“{자료형}”.format(인수)
age=40; name='Minhye Kim'
print("My name is {0} and {1} years old.".format(name, age))
print("Product: {0}, Price per unit: {1:**.2f**}.".format("Apple", 5.243))
My name is Minhye Kim and 40 years old.
Product: Apple, Price per unit: 5.24
- 소수점을 출력하고자 할 때는 n번째 자리까지 출력하라는 의미에서 .nf로 사용
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[2팀/김세연] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.23 |
---|---|
[4팀/이제은] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.23 |
[3팀/김경은] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |
[1팀/지다인] 3차시 파이썬 스터디- 조건문 (0) | 2023.03.22 |
[1팀/허서원] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |