print ("---------------------------")
print ("------ 문자열 메소드 ------")
s = 'i like programming.'
print ("s.upper() " , s.upper())
print ("s.upper().lower() " , s.upper().lower())
print ("'I Like Programming'.swapcase()" , 'I Like Programming'.swapcase()) # 대문자는 소문자로, 소문자는 대문자로 변환
print ("s.capitalize( " , s.capitalize()) # 첫 문자를 대문자로 변환
print ("s.title() " , s.title() ) # 각 단어의 첫 문자를 대문자로 변환
s3 = 'i like programming, i like swimming.'
print ("s3.startswith('i like') " , s3.startswith('i like')) # 'i like'로 시작하는 문자열인지 판단
print ("s3.startswith('I like') " , s3.startswith('I like')) # 대소문자 구별
print ("s3.endswith('swimming.') " , s3.endswith('swimming.')) # 'swimming.'로 끝나는 문자열인지 판단
print ("s3.startswith('progr', 7) " , s3.startswith('progr', 7) )# 7번째 문자열이 'progr'로 시작하는지 판단
print ("-------------------------------------")
print ("---- join -> 연결한 문자열 반환 ")
print ("-------------------------------------")
u = 'spam ham\tegg\ncheese'
t = u.split() # 문자열 내의 단어 리스트
print ("u.split 99-->", t)
t2 = ':'.join(t) # 리스트 t 내부의 각 원소들을 ':'로 연결한 문자열 반환
print ("type(t2)->" , type(t2))
print ("':'.join(t)-->", t2)
print ()
t3 = ",".join(t) # 리스트 t 내부의 각 원소들을 ','으로 연결한 문자열 반환
print ("t3->" , t3)
print ("---------------------- Character -------------------")
print ('1234'.isdigit()) # 문자열 내의 Character들이 모두 숫자인가?
print ('abcd'.isalpha()) # 문자열 내의 Character들이 모두 영문자인가?
print ('1abc234'.isalnum()) # 문자열 내의 Character들이 모두 영문자 또는 숫자인가?
print ('abc'.islower() )# 문자열 내의 Character들이 모두 소문자인가?
print ('ABC'.isupper()) # 문자열 내의 Character들이 모두 대문자인가?
print ('\t\r\n'.isspace()) # 문자열 내의 Character들이 모두 공백 문자인가?
print ('This Is A Title'.istitle()) # 문자열이 Title 형식 (각 단어의 첫글자가 대문자)인가?
print ("---------------------------------------------------------------------")
print ("--- 문자열 포매팅 튜플을 이용한 포매팅 --")
print ("--- 포맷팅 문자 : 문자열 내에 존재하는 % --")
print ("--- 포맷팅을 활용한 문자열 변환:포맷팅 문자를 포함하는 문자열 % 튜플 --")
print ("----------------------------------------------------------------------")
print ()
print('version2 방식 : name = %s, age = %s '%('한창훈', '24') )
print("version3 방식 : name = {}, age = {}".format('허유나','34' ) )
print('version3(index) 방식 : name= {1} , age= {0}',format('손신효', '19'))
letter = '''
안녕하세요 %s 님,
오늘밤 파티에 참석해 주실수 잇나요?
그럼
최혜선드림..'''
name = '공현지'
print("-----111 letter % name--------" , letter%name)
print(" ============================")
names= ['오태우', ' 신동호 ', '이레영', '김우석' , '김건희']
for name in names:
print("letter %name" ,letter %name)
print('-'*40)
print()

# 리스트에 요소 추가하기 ( append() 함수 )
listdata = [] # 빈 리스트를 listdata로 정의
for i in range(3): #3번 입력을 받음 (0~3)
txt = input('리스트에 추가할 값을 입력하세요[%d/3]:'%(i+1))
listdata.append(txt)
print(listdata)

# 리스트에서 특정 요소 갯수 구하기 ( count() 함수 )
listdata = [2, 2, 1, 3, 8, 5, 7, 6, 3, 6, 2, 3, 9, 4, 4]
c1 =listdata.count(2) #listdata 에서 2인 요ㅛ소 갯수를 구함
c2 =listdata.count(7) #listdata 에서 값이 7인 요소 갯수를 구함
print("c1->" ,c1) #3이 출력됨
print("c2->" ,c2) #1이 출력됨
# 리스트의 특정 위치의 요소 제거하기 ( del 키워드 )
# del 키워드로 리스트 특정 위치의 요소를 제거할 수 있다.
solarsys = ['태양', '수성', '금성', '지구', '화성', '목성', '토성', '천왕성', '해왕성']
del solarsys[0] #index 0번 '태양'을 제거함
print(solarsys)
del solarsys[-2] #끝에서 2번째 요소 '천왕성' 을 제거함
print(solarsys)

# 리스트에서 특정 구간에 있는 모든 요소 제거하기 ( del 키워드 )
# del 키워드와 슬라이싱을 이용
solarsys = ['태양', '수성', '금성', '지구', '화성', '목성', '토성', '천왕성', '해왕성']
# index번호 1번 부터 3번 요소 미만까지를 제거함
del solarsys[1:3]
print(solarsys)
['태양', '지구', '화성', '목성', '토성', '천왕성', '해왕성']
# 리스트 제거하기 ( del 키워드 )
# del 키워드를 이용해 리스트 자체를 메모리에서 제거합니다.
listdata = [2, 2, 1, 3, 8, 5, 7, 6, 3, 6, 2, 3, 9, 4, 4]
del listdata
print(listdata ) #NameError:name 'listdata' is not defined
# 리스트에서 특정 요소의 위치 구하기 ( index() 함수 )
# index()함수는 리스트 요소의 index번호를 구해주는 역할
solarsys = ['태양', '수성', '금성', '지구', '화성', '목성', '토성', '천왕성', '해왕성', '지구']
planet = '지구'
pos = solarsys.index(planet) #index 번호 3
print('%s는 태양계에서 %d번째에 위치하고 있습니다' %(planet,pos) )
pos= solarsys.index(planet, 5) #index 번호 9
print('%s는 태양계에서 %d번째에 위치하고 있습니다' %(planet,pos) )
지구는 태양계에서 3번째에 위치하고 있습니다
지구는 태양계에서 9번째에 위치하고 있습니다
# 리스트에서 특정 위치의 요소를 변경하기
solarsys = ['태양', '수성', '금성', '지구', '화성', '목성', '토성', '천왕성', '해왕성']
planet = '화성'
pos = solarsys.index(planet) #index
solarsys[pos] = 'Mars' #'화성'을 Mars로 변경
print(solarsys)
['태양', '수성', '금성', '지구', 'Mars', '목성', '토성', '천왕성', '해왕성']
# 리스트 특정 위치에 요소 삽입하기( insert() 함수 )
solarsys = ['태양', '수성', '금성', '지구', '화성', '목성', '토성', '천왕성', '해왕성']
pos = solarsys.index('목성') #목성의 index번호를 구함 :pos =5
solarsys.index(pos, '소행성') #index 5번 위치에 '소행성'을 삽입함
print(solarsys)
# 리스트에 있는 모든 요소 갯수 구하기 ( len() 함수 )
listdata = [2, 2, 1, 3, 8, 5, 7, 6, 3, 6, 2, 3, 9, 4, 4]
listsize =len(listdata)
print(listsize) #15가 출력됨
#리스트에서 특정 위치의 요소 구하기
listdata = [1, 2, 'a', 'b', 'c', [4, 5, 6]]
val1 =listdata[1] #1번 index 번호값을 구함 2
val2 =listdata[3] #3번 index 번호값을 구함 b
val3 =listdata[5][1] #hw
print(val1) #2가 출ㄹ력됨
print(val2) #b가 출력댐
print(val3) #5가 출력됨
# 리스트 데이터 합치기 ( + )
listdata1 = ['a', 'b', 'c', 'd', 'e']
listdata2 = ['f', 'g', 'h', 'i', 'j']
listdata3 = listdata1+listdata2
listdata4 = listdata2 +listdata1
print(listdata3) #['a', 'b', 'c', 'd', 'e' 'f', 'g', 'h', 'i', 'j']
print(listdata4)
# 순차적인 정수 리스트 만들기 ( range() 함수 )
# range() 함수는 특정 범위의 순차적인 정수 리스트를 만들게 해준다.
range1 = range(10) # 0 ~ 9
range2 = range(10, 20) # 10 ~ 19
print(list(range1)) # [0 ,1, 2, 3, 4, 5, 6, 7, 8, 9]가 출력됨
print(list(range2)) # [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]가 출력됨
# 5부터 10까지 합을 구하는 프로그램
sum=0
for i in range(5,11): # 1 ~ 10 까지 loop가 돌아감
sum += i
print('sum=', sum)