[Day6] 2022-02-03(목) 파이썬 기본5 - 자료구조(튜플, 딕셔너리, 집합), 문자열 - 김서연 강사님
[1] 자료구조
(1) 리스트(list) : [ ]
-----------------------이상 이전 수업-------------------------
(2) 튜플(tuple) : ( )
- 순서가 있는 데이터구조
- 인덱싱과 슬라이싱 가능
- 저장된 데이터의 수정이 불가능
- 리스트보다 메모리 경제성 있음(수정이 불가능하므로)
1) 튜플의 생성방법
변수 = 값1, 값2, 값3...
변수 = (값1, 값2, 값3...)
tuple() 함수를 이용하면 자료구조를 튜플로 변경이 가능
빈 튜플을 만들기
-> (), tuple()
2) 튜플의 인덱싱과 슬라이싱
3) 수정 불가능
(3) 딕셔너리(dictionary) : { }
- 키와 value 한 쌍으로 데이터를 저장
- 순서를 가지고 있지 않다.
- 인덱싱과 슬라이싱이 불가능
- 딕셔커리에 항목을 추가, 수정(값만 가능), 삭제가 가능
1) 딕셔너리 생성방법
변수 = {key1:value1, key2:value2,... }
- 키는 튜플의 특성처럼 변경이 불가능
2) 딕셔너리에 저장된 데이터를 액세스
딕셔너리 변수[키] => 딕셔너리에 없는 키 입력 시 에러 발생
- get(키) : 딕셔너리에 저장된 key에 해당하는 value를 찾아서 리턴
=> 딕셔너리에 없는 키 입력 시 None 리턴, 에러 발생은X
- keys() : 딕셔너리의 모든 키를 반환
- values() : 딕셔너리의 모든 값을 리스트로 만들어서 리턴
- items() : key 와 value를 한 쌍으로 리턴
- in연산자를 제공
[형식]
키 in 딕셔너리
=> 딕셔너리 안에 해당 키가 있는지 여부를 판단해서 True, False를 리턴
(4) 집합(set): { }
- 여러가지 데이터를 모아놓은 것
- 중복이 불가능
- { } 기호를 사용하며 딕셔너리에서 키만 제외시키고 작업하는 것과 동일
- { } 로 선언되는 자료구조는 딕셔너리로 인식
- 빈 집합을 만들 때 { } 로 사용할 수 없다.
- 빈 집합을 만들 때는 set()를 이용할 수 있다.
[2] 문자열
(1) 파이썬에서 문자열 만드는 방법
' ', " ", ''' ''', """ """
# 문자열 작성하기
str1 = "python"
str2 = 'python'
str3 = '''
python
programming
'''
str4 = """
python
programming
"""
print(str1, type(str1))
print(str2, type(str2))
print(str3)
print(str4)
# 문자열 +, * 연산자
str5 = "python programming"
str6 = " 재밌다."
print(str5+str6) # 문자열에서 +는 연결 연산자
print(str6 * 2) # 문자열에서 *는 반복 연산자
# 문자열을 구성하는 문자는 내부적으로 숫자값을 가지고 있다. -> ASCII코드
# 문자를 ASCII로 변환
ch1 = 'a' # 소문자 a == 97 z == 122
ch2 = 'A' # 대문자 A == 65 Z == 90
print(ch1)
print(ch2)
# ord() : 문자 -> ASCII
print(ord(ch1))
print(ord(ch2))
print(type(ord(ch2)))
# chr() : ASCII -> 문자
data = 100
print(chr(data))
print(chr(ord(ch1)+3)) # 'a'의 ASCII값+3 에 해당되는 문자로 변경
print(chr(ord(ch1)+3))
print(chr(ord(ch2)+3))
# 문자열의 인덱싱과 슬라이싱
str1 = "python programming"
print(str1)
print("문자열의 길이:", len(str1))
print(str1[0])
print(str1[len(str1)-1])
print(str1[-1])
print(str1[-len(str1)])
print(str1[1:5])
print(str1[:5])
print(str1[5:])
print(str1[:])
# 문자열 하나씩 액세스
for i in str1:
print("{}({})".format(i, type(i)))
if i == "p":
print("결과보기")
else:
print("테스트완료")
for i in range(len(str1)):
print(str1[i], end="")
# 1. 문자열을 입력 받아 거꾸로 출력될 수 있도록 작성하세요
# 입력데이터 : python
# 출력데이터 : nohtyp
str1 = input("입력데이터 : ")
print("출력데이터 : ", end="")
for i in range(len(str1)-1, -1, -1):
print(str1[i], end="")
print("")
# 2. 입력받은 문자열 중 소문자 a가 있으면 대문자 A로 변경해서 출력하기
# 입력데이터 : python programming
# 출력데이터 : python progrAmming
str1 = input("입력데이터 : ")
for i in str1:
if i == 'a':
print('A', end="")
else:
print(i, end="")
print("")
# 3. 입력받은 문자열 대신 오른쪽으로 3칸 뒤에 있는 문자의 조합으로 출력하기
# 입력데이터 : abc
# 출력데이터 : def
# ===> 모두 for문을 이용해서 작업하세요.
str1 = input("입력데이터 : ")
for i in str1:
if i == " ":
print(i, end="")
else:
print(chr(ord(i) + 3), end="")
print("")