[2024.09.26] 필수온라인 강의 Part1 파이썬 기본기 다지기 CH02 변수와 자료형
CH02 변수와 자료형
- 변수(variable)
- 변할 수 있는 것 : 어떤 값을 담는 상자
- 변수의 이름 : 영어문자 혹은 _로 시작 / 대소문자 구별, 숫자로 시작X, 특수문자X, 공백X, 파이썬 예약어X
- 변수를 만들고 나면 변수를 저장하는 메모리를 자동으로 생성하고 주소를 생김
-변수 선언 : 1개의 변수엔 1개의 값 / 두개의 변수에 같은 값 / 변수에 변수 대입도 가능
- a=1 , b= 1 / a=b=1 / a=1, b=a
- 변수 출력 : print() - 자료형(data type)
- 프로그램에서 표현하고 저장하는 데이터 유형
*** - 데이터 타입 출력 type() : 괄호안에 데이터 타입을 알려주는 함수
- int : 정수
- float : 실수
- str : 문자열
순서 자료형
1. 숫자(number) : 정수, log형 정수, 실수, 복소수
- 숫자형태로 이루어진 자료형
- 정수(integer) : 소숫점이 없는 숫자
- 실수, 부동소숫점 (floating point) : 소숫점이 있는 숫자
- 연산자
- 사칙연산 : 덧셈(+), 뺄셈(-), 곱셉(*), 나눗셈(/)
- 정수 나누기 연산자 : 나머지(%), 나머지 연산자: 몫(//)
- 제곱 연산자 : 제곱(**)
- 관련 함수
- int () : 숫자나 문자열을 정수로
- float () : 숫자나 문자열을 실수로
- abs() : 절댓값
- bow() : 제곱
2. 문자열(string) : 문자들의 모임
- 문자열 만드는 방법 :
- 큰 따옴표로 문자열 만들기 : print("hello")
- 작은 따옴표로 문자열 만들기 : print('hello')
- 문자열 내부에 따옴표 넣기 : print("I'm smart")
- 이스케이프 문자를 사용해 문자열 만들기 : print('그녀는 \'파이썬\' 강의를 한다.')
- 여러 줄 문자열 만들기 : 큰 따옴표 또는 작은 따옴표를 3번 반복한 기호를 사용
sentence ="""
글을 쓴다
여러줄
쓸수잇음
"""
print (sentence)
글을 쓴다
여러줄
쓸수잇음
- 줄바꿈 없이 문자열 만들기 : 큰 따옴표 또는 작은 따옴표를 3번 반복한 기호만 사용하면 위 아래로 의도하지 않은 줄바꿈이 생김
sentence ="""\
글을 쓴다
여러줄
쓸수잇음\
"""
print (sentence)
글을 쓴다
여러줄
쓸수잇음
- 이스케이프 문자
- 출력물을 보기 좋게 만드는 용도
- |n : 줄바꿈 , |t : 탭 , || : 역슬래시 , |' : 작은 따옴표 , |" : 큰 따옴표
sen1 = "1\n2"
sen2 = "3\t4"
sen3 = '\'작은따옴표\' 출력'
sen4 = "\"큰따옴표\" 출력"
1
2
3 4
'작은따옴표' 출력
"큰따옴표" 출력
- 연산자
- 문자열 연결 : +
- 문자열 반복 : *
- 인덱싱
- 문자열 내부의 문자 하나를 선택하는 연산자
- 문자 선택 연산자 ([])
- [] 안에는 선택할 문자의 위치를 지정하며, 이 숫자를 인덱스(index)라고 부름
- 순방향 인덱스 : 0부터 시작
- 역방향 인덱스 : -1부터 시작
- 문자열 [인덱스]로 호출
# 문자열 인덱싱 : 문자 하나 선택
# 012 3 4567 8 910111213
# -2-1
sentence = '파이썬 하루만에 끝내보자!'
# 문자열[인덱스]로 호출
# 순방향 인덱스 : 0 부터 시작
# 역방향 인덱스 : -1 부터 시작
print(sentence)
print(sentence[0])
print(sentence[-1])
- 슬라이싱
- 문자열의 특정 범위를 선택할 때 사용하는 연산자
- 문자 선택 연산자 ([:])
- 문자열[인덱스1 : 인덱스2]로 호출
- 파이썬 - 마지막 숫자 포함하지 않음
- 인데스 1이상부터 인데스 2미만으로 적용
# 문자열[인덱스1 : 인덱스2]로 호출
# 4:8 = 4, 5, 6, 7
# 4 이상부터 8 미만까지의 범위 선택하여 출력
# 마지막 숫자는 포함하지 않음
print(sentence)
print(sentence[4:8])
- 포멧팅
- 문자열 안에 어떤 값을 삽입하는 방법
- % 연산자 포맷팅
- 문자열 포맷 코드에 맞춰 바로 숫자와 문자를 대입할 때 사용
- 숫자(정수) 대입 : %d
- 숫자(실수) 대입 : %f
- 문자 1개 대입 : %c
- 문자열 대입 : %s
# 두 개 이상의 % 연산자 포맷팅
# 숫자 나타내는 변수와 문자를 나타내는 변수 대입
# 숫자 대입은 %d, 문자 대입은 %s
a=4
b = "학교"
sen = "나는 %d호선을 타고 %s를 가/" % (a,b)
print(sen)
- format() 함수를 이용하여 포맷팅을 할 수 있음
- 중괄호{}를 포함한 문자열 뒤에 도트(.)를 찍고 format()함수 사용
- 중괄호 개수와 format() 함수 괄호 안의 매개변수 개수는 동일
- 함수를 사용하면 문자열의 {} 기호가 format() 함수 괄호 안에 있는 매개변수로 차례로 대치
# 한 개의 format() 함수 포맷팅
# { } 안에 숫자 대입
# format 함수 안에 넣을 숫자 삽입
print('나는[]호선을 타고 다녀.'.format(6))
print('나는[0]호선을 타고 다녀.'.format(6))
- 관련함수
- len(x) : 문자열 길이 출력
- split() : 문자열 나누기
- count(x) : 문자 개수 세기
- replace('a', 'b') : 문자열 바꾸기
- find('a') : 위치 알려주기
- upper() : 소문자를 대문자로 바꾸기
- lower() : 대문자를 소문자로 바꾸기
- join(x) : 문자열 삽입
len(sentence1) # len(x) : 문자열 길이 출력
sentence1.split() # split() : 문자열 나누기
sentence1.count('샤브') # count(x) : 문자 개수 세기
sentence2 =sentence1.replace('샤브샤브', '육회') # replace('a', 'b') : 문자열 바꾸기
file_name.find('.')) # find('a') : 위치 알려주기
file_name.upper() # upper() : 소문자를 대문자로 바꾸기
file_name.lower() # lower() : 대문자를 소문자로 바꾸기
sentence = '.'.join('abcde') # join(x) : 문자열 삽입
3. 리스트(list) : 순서를 가지는 python객체의 집합
- 여러자료들을 모아서 사용할 수 있는 형태의 자료
- 여러 자료형을 담을 수 있고, 여러 요소를 하나의 변수로 사용하고 싶을 때 사용
- 리스트 선언 : [a,b,c,d,e,....]
- 대괄호[]내부에 넣는 자료 : 요소, element라고 부름
- 인덱싱 : 문자열 내부의 문자 하나를 선택하는 연산자
print(myList(0)) # [인덱싱] 0 인덱스 값을 가진 요소 값 출력
print(myList[4][2]) # [인덱싱] 4번째 요소 값의 2번째 요소 값 출력
print(myList[2:3]) # [슬라이싱] 2번째부터 3번째까지 범위 선택
- 슬라이싱 : 문자열의 특정 범위를 선택할 때 사용하는 연산자
# 리스트의 인덱싱과 슬라이싱을 이용!
# 0 1 2 3-0 3-1 3-2-0 3-2-1
myList = [1, 5.2, 2*3, ['커피', '물', ['매실차', '유자차']]]
print(myLIst[3][2][0][:2]) -> 3번째의 2번째의 0번째에서 2개가 출력 : 매실이 출력
- 연산자
- '+ ' : 덧셈
- ' * ' : 반복
- len() : 길이 구하기
# list1 2번 반복
# list1과 list2 덧셈
# 연산 결과의 길이 구하기
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1*2 + list2)
print(len(list1*2 + list2))
[1, 2, 3, 1, 2, 3, 4, 5, 6]
9
- 변경과 삭제 : 리스트는 변경과 삭제 ( ! 튜플은 안됨)
# 0 1 2 3-0 3-1 3-2-0 3-2-1
myList = [1, 5.2, 2*3, ['커피', '물', ['매실차', '유자차']]]
print(myList)
# 리스트 '변경' 값으로 수정
myList[3] ='변경'
print(myList)
# 리스트 "변경" 값 삭제
del print[3]
print(myList)
- 관련 함수 :
- sort() : 리스트 정렬
- reverse() : 리스트 뒤집기
- append(x) : 리스트에 요소 추가
- extend(x) : 리스트 확장
- insert(a, b) : 리스트 요소 삽입, 리스트 a번째 위치에 b를 삽입
- remove(x) : 리스트 요소 제거
- pop() : 리스트 요소 끄집어내기
- count(x) : 리스트에 포함된 요소 x의 개수 세기
myList.sort() # sort() : 리스트의 요소를 순서대로 정렬하는 함수
myList.reverse() # reverse() : 리스트 요소 뒤집는 함수
myList.append(1) # append(x) : 리스트 맨 마지막에 추가하는 함수
myList.append([1,2]) # 한 개의 리스트를 리스트에 추가한 경우
myList.extend(1) # extend(x) : 원래 myList 리스트에 새로운 리스트를 더하는 함수
myList.insert(2, "삽입") # insert(a, b) : 리스트의 a번째 위치에 b를 삽입하는 함수
myList.remove(2) # remove(x) : 리스트에서 첫 번째로 나오는 x를 삭제하는 함수
lastWord = myList.pop() # pop() : 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제하는 함수
lastWord = mylist.pop(1) # pop(x) : 리스트의 x번째 요소를 돌려주고 그 요소는 삭제하는 함수
myList.count(1) # count(x) : 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수
4. 튜플(tuples) : 순서를 가지는 python 객체의 집합
- 튜플 선언 : (a,b,c,d,e,..... ) (! 리스트는 [])
- 값을 추가, 삭제, 수정을 할 수 없음
- 수정해서는 안 되는 값을 저장할 때 사용.
- 튜플 생성
- 괄호가 있는 튜플 (a, b, c, d, e, ...) 형태로 생성 , 한개의 값을 가질 때는 마지막에 ","를 써주기
tuple = (1,2,3,4)
tuple1 =(2,) # tuple1 : 한 개의 값을 가질 때는 마지막에 ", (쉼표)"를 써줘야 함
float1 =(2) # float1 : 한 개의 요소지만 ", (쉼표)" 안 써줘서 튜플로 생성이 안 됨
- 괄호가 없는 튜플 : 괄호 생략 가능
tuple2 = 1,2,3,4,5 # tuple2 : 여러 개 요소인 튜플 생성
- 인덱싱 : 문자열 내부의 문자 하나를 선택하는 연산자
tuple1 = (9,8,7,6)
tuple1[0] # 인덱싱 : 문자열 내부의 문자 하나를 선택하는 연산자
tuple1[1:3] # 슬라이싱 : 문자열의 특정 범위를 선택할 때 사용하는 연산자 # [1:3] : 1 인덱스부터 3 인덱스 미만까지 범위
- 슬라이싱 : 문자열의 특정 범위를 선택할 때 사용하는 연산자
- 연산자
- '+ ' : 덧셈
- ' * ' : 반복
- len() : 길이 구하기
- 변경과 삭제 : 불가능!!!! - TypeError 오류가 발생함
비순서 자료형
1. 딕셔너리(dictionary) : 순서를 가지지 않는 객체의 쌍
- 대응관계를 나타내기 위해서 사용
- key와 value를 한쌍으로 갖는 자료형
- 리스트가 index 기반이면, 딕셔너리를 key를 기반으로 값을 저장하는 것이다.
- 딕셔너리 선언 : {}로 선언, {키:값}으로 생성 { key1 : value1, key2 : value2, ... key_n : value_n }
- 키는 보통 문자열로 사용, 키에는 문자열/숫자/부울 모두 가능하긴 함.
myDict = {"name" : "a" , "job" :"b"} # 딕셔너리 선언
- 변경과 삭제 : 가능
- 관련 함수
- keys() : key 리스트 만들기
- values() : value 리스트 만들기
- items() : key, value 쌍 얻기
- get() : key로 value 얻기
- in() : 해당 key가 딕셔너리 안에 있는지 조사
- clear() : key:value 쌍 모두 지우기
myDict = {"name" : "a" , "job" :"b"} # 딕셔너리 선언
myDict = { "grade" : [100, 90, 80]} # 딕셔너리 값 추가
myDict["grade"] = [100, 100, 100] # 딕셔너리 값 수정
del myDict["grade"] # 딕셔너리 값 삭제
print(myDictionary.keys()) # keys() : key 리스트 만들기
print(myDictionary.values()) # values() : value 리스트 만들기
print(myDictionary.items()) # items() : key, value 쌍 얻기
print(myDictionary.get('grade')) # get() : key로 value 얻기 - 없으면 none이 출력
print("name" in myDictionary) # in() : 해당 key가 딕셔너리 안에 있는지 조사 - True, False로 출력
myDictionary.clear() # clear() : key:value 쌍 모두 지우기
2. 집합(set) : 중복이 없는 순서를 가지지 않는 객체의 집합
- set이라는 키워드를 통해서 생성 : 괄호안에 리스트 or 문자열 입력
- 중복을 허용하지 않음.
- 비 순서 자료형 -> 순서 사용시 리스트나 튜플로 변환하여 사용
set1 = set[10, 11, 12] # 리스트 입력하여 집합 생성
set2 = set("ename") -> ['e' , 'n', 'a', 'm']으로 출력 #중복이 허용되지 않음
- 집합 자료형은 합집합, 교집합, 차집합을 구할 때 유용
- 합집합 : |
- 교집합 : &
- 차집합 : -
print (set1 | set2) # 합집합
print (set1 & set2) # 교집합
print (set1 - set2) # 차집합
- 관련 함수
- add() : 한 개의 값 추가
- update() : 여러 개의 값 추가
- remove() : 특정 값 제거
set1.add(6) # add() : 한 개의 값 추가
set.update([11,13]) # update() : 여러 개의 값 추가
set1.remove(1) # remove() : 특정 값 제거
3. 부울(bool) : 참/거짓
- 참과 거짓으로 나타내는 자료형
- 주로 조건문의 반환 값으로 사용
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있다면 False (거짓)
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있지 않다면 True (참)
- if 문(조건문)으로 참, 거짓 판별
- bool 함수를 통해서도 참과 거짓을 구별해낼 수 있음
'Study > Python' 카테고리의 다른 글
파이썬 라이브러리- NumPy(수치계산라이브러리) (0) | 2024.09.27 |
---|---|
파이썬 라이브러리 개념 (4) | 2024.09.26 |
파이썬_클래스와 모듈 (6) | 2024.09.26 |
파이썬 기본기_입출력과 제어문 (4) | 2024.09.26 |
파이썬에 대한 가장 기초적인 설명 (3) | 2024.09.26 |