파이썬/문자열

파이썬 문자열

watervin 2022. 1. 6. 17:15
s = "python"
print(s[2])
print(s[-2])

for c in s:
    print(c,end=",")

print("\n")
for i in range(len(s)):
    print(s[i],end = ",")
s = "0123456789"
print(s[2:5])
print(s[3:])
print(s[:4])

print(s[:])
file = "20200101-104830.jpg"
print("촬영 날짜" + file[4:6]+"월"+file[6:8]+"일")
print("촬영 시간" + file[9:11]+"시"+file[11:13]+"분")
print("확장자" + file[-3:])


def get_date_str(file_name):
    date = file_name[4:6]+"월"+file_name[6:8]+"일"
    return date
def get_time_str(file_name):
    time = file[9:11]+"시"+file[11:13]+"분"
    return time

file1 = "20220106-111030.jpg"
date_str=get_date_str(file1)
print("날짜 : " + date_str)
time_str=get_time_str(file1)
print("시간 : " + time_str)
 

문자열 찾기

 

.find(str) : str 찾아 인덱스 반환 없으면 -1
.rfind(str) 뒤부터 find()
.index(str) find()와 동일 없으면 예외발생
.count(str) str 문자열이 몇번 등장하는지 리턴

 

def main():
    s="python programming"
    print(len(s))
    print(s.find('o'))
    print(s.rfind('o'))
    print(s.index('r'))
    print(s.count('n'))
main()
def main():
    names = ['홍길동','고길동','둘리','또치']
    search_name = input("검색이름 :")
    
    for name in names:
        if name.find(search_name) != -1:
            print(name)

main()    

조사

단어 in 문자열 -> bool
단어 not in 문자열 -> bool
.startswitch(str) 시작하는지
.endswitch(str) 끝나는지

 

name = "홍길동"

if name.startswith("홍"):
    print("홍씨입니다.")
if name.startswith("김"):
    print("김씨입니다.")

file = "figure.jpg"
if file.endswith(".jpg"):
    print("JPG 그림 파일입니다.")

문자열 공백 잘라잘라


s = "  angel   "
print(s+"님")
print(s.strip()+"님")
print(s.lstrip()+"님")
print(s.rstrip()+"님")

문자열 분해 분해분해

s = "짜장 짬뽕 탕수육"
print(s.split())

s2 = "서울->대전->대구->부산"
cities = s2.split("->")
print(cities)

for city in cities:
    print(city)

 

def main():
    trabler ="""
    강나루 건너서
    밀밭 길을
    구름에 달 가듯이
    가는 나그네
    """

    poet = trabler.splitlines()
    print(poet)
    for line in poet:
        print(line)

main()

join(리스트)

문자열을 합치기

def main():
    names = ["홍길동","고길동","둘리","또치"]
    print("\n".join(names)) #각 이름을 한줄에 하나
    new_name=','.join(names) #하나의 문자열로 만들기
    print(new_name)
main()

문자열 포매팅 

내가 처음 보는 포매팅 방식이니 다시 공부해보자

def main():
    f1 =12.3456
    print(f'f1의 값은 {f1}입니다.')
    
    result1 =f'{f1:.2f}'
    print(result1)

    result1 =f'{f1:.2}'
    print(result1)

    year = 2022
    month =1 
    day =6
    day
    print(f'작성일 : {year}-{month:02}-{day:02}')
main()

대박사건

 

이름 바꾸고싶은거 드래그해서 f2누르면 이름변환가능

 

 

def main():
    names = ["홍길동","고길동","둘리","또치"]
    print("\n".join(names)) #각 이름을 한줄에 하나
    new_name=','.join(names) #하나의 문자열로 만들기
    print(new_name)
main()
def calc_sum(score):
    total = 0
    sum_score = sum(score)
    print(f"이거 답이다 {sum_score}")

def print_score(subject,score):
    total = calc_sum(score)
    print(f"{subject} 총점 : {total}")
    print(f"{subject} 평균 : {total/len(score):.2f}")

def main():    
    eng_score = [88,95,70,100,99]
    kor_score = [98,56,30,63,77]
    
    print_score("영어",eng_score)
    print_score("국어
nums = [0,1,2,3,4,5,6,7,8,9]
nums[2:5] = [20,30,40]
print(nums)
nums[6:8] =[60,70,80,90]
print(nums)

print("다른 예제")

list1 =[1,2,3,4,5]
list2 = [10,11]
listadd = list1 + list2
print(listadd)
listmulti = list2*3
print(listmulti)

print("----다른 예제----")

lol =[
    [1,2,3],
    [4,5]
    [6,7,8,9]
]
print(lol[0])
print(lol[2][1])

for sub in lol:
    for item in sub:
        print(item,end ='')
    print()

2차원 배열

 

score = [
    [88, 76, 92, 98],
    [65, 70, 58, 82],
    [82, 80, 78, 88]
]
total = 0
totalsub =0
for student in score:
    subject_total = 0
for subject in student:
    subject_total += subject
    subjects = len(student)
print("총점 %d, 평균 %.2f" % (
subject_total, subject_total/subjects))
total += subject_total
totalsub += subjects
print("전체평균 %.2f" % (total/totalsub))