#문자열 곱하기
print("=" * 50)
print("My Program")
print("=" * 50)
#문자열 길이 구하기
a = "Length"
print(len(a))
#문자열 인덱싱
a = "apple"
print(a[3])
print(a[-5]) #뒤에서 부터 5글자
#문자열 슬라이싱
a = "hello world"
print(a[0:4]) #끝 번호에 포함되는 문자 포함x
print(a[0:]) #시작 번호부터 끝까지
print(a[:12]) #끝 번호부터 처음
#연월일날씨 나누기
a = "20241223sunny"
year = a[:4]
day = a[4:8]
weather = a[8:]
print(year)
print(day)
print(weather)
print(a[8:11] + 'o')
#문자열 안에 여러 개 값
num = 25
name = "ung"
print("i am %s, and %d" % (name, num))
print("Error is %d%%" % 98)
#포맷 코드 숫자 함께 사용
print("'%10s'" % "hi")
print("'%-10sjane'" % "hi")
print("%0.4f" % 3.141592)
#format 함수 이용하기
num = 30
day = "three"
print("{0},{1}".format(num, day))
print("{num},{day}".format(num = 20, day = "two"))
print("{0},{day}".format(10, day = "one"))
print("'{0:<10}'".format("hi")) #왼쪽 정렬
print("'{0:>10}'".format("hi")) #오른쪽 정렬
print("'{0:^10}'".format("hi")) #가운데 정렬
print("'{0:=^10}'".format("hi")) #공백 채우기
print("'{0:0.4f}'".format(3.14159)) #소수점 표현
#f 문자열 포매팅
d = {'name':'홍길동','age':30}
print(f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.')
y = 3.14159
print(f'{y:0.4f}')
print(f'{"python":!^12}')
#문자 개수 세기 - count
a = "apple"
print(a.count('p'))
#문자 위치(index) 알려주기 - find, index
a = "apple"
print(a.find('p'))
print(a.find('k')) #find의 경우 없을시 -1 반환
b = "banana"
print(b.index('a'))
print(b.index('k')) #index의 경우 없을시 에러
#문자열 삽입 - join / 소문자->대문자 - upper / 대문자->소문자 - lower
print(",".join('abcd'))
a = "hi"
print(a.upper())
b = "HI"
print(b.lower())
#공백 지우기
a = " hi "
print(a.lstrip()) #왼쪽 공백 지우기
a = " hi "
print(a.rstrip()) #오른쪽 공백 지우기
a = " hi "
print(a.strip()) #양쪽 공백 지우기
#문자열 바꾸기 - replace / 문자열 나누기 - split
a = "MY APPLE"
print(a.replace("MY", "YOUR"))
b = "H A P P Y"
print(b.split())
c = "A:B:C:D"
print(c.split(':'))
#리스트 인덱싱
a = [1, 2, 3]
print(a)
print(a[-1]) #리스트 a의 마지막 요소
print(a[0] + a[2])
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[0], a[-1], a[-1][0])
#리스트 슬라이싱
a = [1, 2, 3, 4, 5]
print(a[0:2])
print(a[1:3])
#리스트 연산
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
print(a * 3)
print(len(a))
#리스트 수정/삭제
a = [1, 2, 3]
a[2] = 4
print(a)
a = [1, 2, 3]
del a[1]
print(a)
a = [1, 2, 3, 4, 5]
del a[2:]
print(a)
#리스트 관련 함수
a = [1, 2, 3]
a.append(4) #리스트에 element 추가
print(a)
a.append([5,6])
print(a)
a = [1,4,3,2]
a.sort() #리스트 정렬
print(a)
a = ['a','b','c']
a.reverse() #리스트 역순으로 뒤집기
print(a)
a = [1,2,3]
print(a.index(3)) #인덱스 반환
a.insert(3,5) #리스트에 요소 삽입
print(a)
a.remove(5) #리스트에서 첫 번째로 나오는 x 삭제
print(a)
print(a.pop()) #리스트의 맨 마지막 요소 리턴, 삭제
print(a)
print(a.pop(0))
print(a)
a = [1,1,1]
print(a.count(1))
a = [1,2,3]
a.extend([4,5]) #리스트 확장; 리스트끼리 더함
print(a)
a += [6,7] #extend와 동일
print(a)
# +튜플 자료형
# 리스트와 튜플의 차이
# 리스트는 [], 튜플은 ()으로 둘러쌈
# 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다
# 튜플은 단 하나의 요소만 있을 땐 , 반드시 써줘야 됨, 소괄호 생략 가능
# 튜플은 요소 삽입시 '+' 사용