1: 문자열 형변환
# 정수와 문자열 변수 선언
정수값 = 100
문자열값 = "100"
# 문자열을 정수로 변환
정수값_변환 = int(문자열값) # int() 함수로 정수로 변환
# 정수를 문자열로 변환
문자열값_변환 = str(정수값) # str() 함수로 문자열로 변환
2: 문자열 생성 방법
# 첫 번째 방법
이름1 = "철수"
이름2 = "영희"
이름3 = "민수"
# 문자열 연결
결과1 = 이름1 + 이름2 # 결과: 철수영희
결과2 = 이름1 + 이름3 # 결과: 철수민수
# 복잡한 문자열 생성
복합문자열 = "===" + 이름1 + 이름2 + "==="
# 두 번째 방법 (포맷팅)
포맷문자열 = "===%s===" % (이름1 + 이름2)
3: 문자열 인덱스
문자열의 인덱스는 열차의 좌석 번호와 같습니다. 각 문자는 고유한 인덱스를 가지며, 파이썬에서 인덱스는 0부터 시작합니다.
# 문자열 정의
텍스트 = "PYTHON"
# 인덱스 접근
첫글자 = 텍스트[0] # 'P'
두번째글자 = 텍스트[1] # 'Y'
# 문자열 길이 확인
문자열길이 = len(텍스트) # 6
# 마지막 문자 접근
마지막글자 = 텍스트[-1] # 'N'
4: 슬라이싱과 문자열 역순
슬라이싱은 문자열의 일부를 추출하는 기능입니다. 중요한 점은 종료 인덱스는 포함되지 않는다는 것입니다.
# 문자열 정의
문자열 = "abcdefABCDEF"
# 기본 슬라이싱
일부 = 문자열[2:5] # 'cde'
# 시작 인덱스만 지정
끝까지 = 문자열[3:] # 'defABCDEF'
# 전체 문자열 역순
역순 = 문자열[::-1] # 'FEDCBAfedcba'
# 간격을 두고 슬라이싱
간격 = 문자열[1:10:2] # 'bdfBDF'
5: 문자열의 일반적인 작업
# 문자열 정의
텍스트 = "Hello World"
# find: 문자열 검색
위치 = 텍스트.find("World") # 6
없는위치 = 텍스트.find("Python") # -1
# index: 문자열 검색 (없으면 오류)
# 위치 = 텍스트.index("Python") # 오류 발생
# count: 문자 개수 세기
개수 = 텍스트.count("l") # 3
# replace: 문자열 교체
교체 = 텍스트.replace("World", "Python") # 'Hello Python'
# split: 문자열 분할
분할 = 텍스트.split(" ") # ['Hello', 'World']
# capitalize: 첫 글자 대문자
대문자 = 텍스트.capitalize() # 'Hello world'
# title: 각 단어 첫 글자 대문자
타이틀 = 텍스트.title() # 'Hello World'
# startswith: 접두사 확인
접두사 = 텍스트.startswith("Hello") # True
# endswith: 접미사 확인
접미사 = 텍스트.endswith("World") # True
# lower: 소문자 변환
소문자 = 텍스트.lower() # 'hello world'
# upper: 대문자 변환
대문자 = 텍스트.upper() # 'HELLO WORLD'
# strip: 공백 제거
공백제거 = " Hello ".strip() # 'Hello'
6: 리스트
리스트는 여러 데이터를 순차적으로 저장할 수 있는 자료구조입니다. 리스트의 항목을 추가, 삭제, 수정, 조회하는 방법을 알아보겠습니다.
# 리스트 생성
팀원 = ["철수", "영희", "민수"]
# 항목 추가
팀원.append("지우") # 마지막에 추가
팀원.insert(1, "하나") # 지정된 위치에 추가
# 항목 삭제
마지막항목 = 팀원.pop() # 마지막 항목 삭제
특정항목 = 팀원.remove("영희") # 특정 항목 삭제
del 팀원[0] # 인덱스로 항목 삭제
# 항목 수정
팀원[0] = "철수변경"
# 항목 조회
포함 = "민수" in 팀원 # True
미포함 = "수진" not in 팀원 # True
7: 딕셔너리
딕셔너리는 키-값 쌍으로 데이터를 저장하는 자료구조입니다. 딕셔너리의 항목을 추가, 삭제, 수정, 조회하는 방법을 알아보겠습니다.
# 딕셔너리 생성
정보 = {"이름": "철수", "나이": 25, "주소": "서울"}
# 항목 추가
정보["직업"] = "개발자"
# 항목 수정
정보["나이"] = 26
# 항목 삭제
del 정보["주소"]
# 항목 조회
이름 = 정보.get("이름") # "철수"
직업 = 정보.get("직업", "정보없음") # "개발자"
없는키 = 정보.get("키", "정보없음") # "정보없음"
# 전체 조회
키들 = 정보.keys() # dict_keys(['이름', '나이', '직업'])
값들 = 정보.values() # dict_values(['철수', 26, '개발자'])
항목들 = 정보.items() # dict_items([('이름', '철수'), ('나이', 26), ('직업', '개발자')])
8: While, For 반복문으로 리스트 순회
# 리스트 정의
숫자리스트 = [10, 20, 30, 40, 50]
# while 반복문으로 순회
인덱스 = 0
while 인덱스 < len(숫자리스트):
print(숫자리스트[인덱스])
인덱스 += 1
# for 반복문으로 순회
for 숫자 in 숫자리스트:
print(숫자)
# 큰 리스트 순회
큰리스트 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# while로 큰 리스트 순회
인덱스 = 0
리스트길이 = len(큰리스트)
while 인덱스 < 리스트길이:
print(큰리스트[인덱스])
인덱스 += 1
9: for-else의 활용
# 사용자 데이터
사용자목록 = [
{"이름": "철수", "나이": 25, "주소": "서울"},
{"이름": "영희", "나이": 30, "주소": "부산"}
]
# 사용자 검색
검색이름 = input("검색할 이름을 입력하세요: ")
for 사용자 in 사용자목록:
if 사용자["이름"] == 검색이름:
print("사용자를 찾았습니다.")
break
else:
print("해당 사용자가 목록에 없습니다.")
10: 리스트의 append, extend 차이
# extend: 리스트 확장
리스트1 = [1, 2, 3]
리스트2 = [4, 5]
리스트1.extend(리스트2)
print(리스트1) # [1, 2, 3, 4, 5]
# append: 리스트 추가
리스트1 = [1, 2, 3]
리스트2 = [4, 5]
리스트1.append(리스트2)
print(리스트1) # [1, 2, 3, [4, 5]]
# append는 전체 리스트를 하나의 항목으로 추가하고,
# extend는 리스트의 각 항목을 개별적으로 추가합니다.
11: 딕셔너리의 일반적인 작업과 순회
# 딕셔너리 생성
개인정보 = {"이름": "철수", "나이": 25, "주소": "서울"}
# 키 조회
키들 = 개인정보.keys() # dict_keys(['이름', '나이', '주소'])
# 값 조회
값들 = 개인정보.values() # dict_values(['철수', 25, '서울'])
# 키 존재 여부 확인
if "이메일" in 개인정보.keys():
print("이메일 정보가 있습니다")
else:
print("이메일 정보가 없습니다")
if "이름" in 개인정보.keys():
print("이름 정보가 있습니다")
if 25 in 개인정보.values():
print("나이 25가 있습니다")
# 키 순회
for 키 in 개인정보.keys():
print(키) # 이름, 나이, 주소
# 값 순회
for 값 in 개인정보.values():
print(값) # 철수, 25, 서울
# 항목 순회
for 항목 in 개인정보.items():
print(f"키={항목[0]}, 값={항목[1]}") # 키=이름, 값=철수 등
# 튜플 언패킹
키1, 값1 = ("이름", "철수")
print(키1) # 이름
print(값1) # 철수
# 항목 순회 (언패킹 사용)
for 키, 값 in 개인정보.items():
print(f"키={키}, 값={값}")