Chapter 09. 문자열 함수, 시간 파일 처리

이성욱·2024년 5월 27일

문자열 정의

문자열 함수 사용하기기

  • 대소문자 변환
    • upper() 함수: 소문자를 대문자로 변경
    • lower() 함수: 대문자를 소문자로 변경
    • swapcase() 함수: 대소문자를 상호 변환
    • title() 함수: 각 단어의 제일 앞 글자만 대문자로 변환

  • 문자열 찾기
    • count() 함수: 찾을 문자열이 몇 개 들었는지 개수를 셈
    • find() 함수: 찾을 문자열이 몇 번째 위치하는지 찾음
      find('찾을 문자열', 시작위치) 함수: 시작위치부터 문자열을 찾음
    • rfind() 함수: 오른쪽부터 셈
    • index() 함수: find()함수와 동일한 용도, 찾을 문자열이 없다면 오류가 발생
    • startswith() 함수: 문자열로 시작하면 True를, 그렇지 않으면 False를 반환
    • endswith() 함수: 문자열로 끝나면 True를 반환

  • 문자열 공백 제거
    • strip(), rstrip(), lstrip()
    • 단 문자열 중간의 공백은 제거되지 않음
  • 문자열 대체
    • replace()

  • 문자열 분리, 결합
    • split(): 문자열을 공백이나 다른 문자로 분리해서 리스트를 반환
    • splitlines(): 행 단위로 분리
    • join(): 문자열을 합침

  • 문자열 정렬 및 채우기
    • center(): 숫자만큼 전체 자릿수를 잡은 후 문자열을 가운데 배치

    • ljust(): 왼쪽에 붙여 출력

    • rjuct(): 오른쪽에 붙여 출력

    • zfill(): 오른쪽으로 붙여 쓰고 왼쪽 빈 공간은 0으로 채움

  • 문자열 구성 파악
    : 반환값은 True 혹은 False
    • isdigit(): 전체가 숫자로만 구성되어 있는가
    • isalpha(): 전체가 글자(한글/영어)로만 구성되어 있는가
    • isalnum(): 전체가 글자와 숫자가 섞여서 구성되어 있는가
    • islower(): 전체가 소문자로만 구성되어 있는가
    • isupper(): 전체가 대문자로만 구성되어 있는가
    • isspace(): 전체가 공백문자로만 구성되어 있는가

시간 처리

시간을 알려주는 모듈 time, datetime

  • datetime 모듈
    • time 모듈과 유사
    • datetime.datetime.now(): 현재 시간 얻어 오기
  • time 모듈
    : 현재 시간 얻어오는 함수
    • time.time(): 누적 초 수를 기준으로 한 현재시간
    • time.localtime(): 우리가 아는 현재 시간 얻어 오기

파일 처리

파일 입출력

  • open() 함수 사용하여 파일 접근

  • 사용법
    : 변수명 = ```open("파일명", "접근방법")

    • 파일명: 저장하거나 읽을 파일 위치와 파일 명
      : 경로 설정을 안하고 파일 이름만 적는 경우 현재 작성중인 코드가 있는 위치
    • 접근 방법
      r: 읽기 모드
      w: 쓰기 모드
      a: 붙이기 모드
  • open한 파일은 변수를 통해 접근

    • 변수명.close(): 파일을 닫는다.

      • Open한 파일은 항상 닫아야 함
    • 변수명.write(): 파일에 기록

    • 변수명.readline(): 파일의 1라인을 읽음

파일에 입력: 파일에 기록 w 모드

  • 파일 입력 사용법 (쓰기모드)

파일로부터의 출력: 파일내용 읽기 r 모드

  • 파일 출력 사용법(읽기모드)

그 외의 모드

  • 붙이기 모드: a

    • W 모드로 기록을 하면 기존에 동일한 파일이 있어도 삭제되고 새로 만듬
    • 기존에 파일이 있고 내용을 살리고 뒤에 붙이기 위한 모드: a 모드
  • w, r, a 이외에 wb, rb, ab, rt, x 등 다양한 모드가 있음.



time

import time

s = ["월","화","수","목","금","토","일"]

a = time.time()
b = time.localtime()

print(a)
print(b.tm_year,b.tm_mon,b.tm_mday)
print(b.tm_hour,b.tm_min,b.tm_sec)
print(b.tm_wday,b.tm_yday)


#print(s[b.tm_wday])
#if b.tm_wday==0:
#    print("월")
#elif b.tm_wday==1:
#    print("화") ## 겁나 무식한 방법

start = time.time()

hap = 0
for x in range(1,10000001):
    hap+=1

end = time.time()
time = end - start
print(time)

file

f = open("memo.txt","w")
while True:
    a = input("문장 입력: ")
    if a=="":
        break
    f.write(a+"\n")
f.close()

ff = open("memo.txt","r")

while True:
    b = ff.readline()
    if b=="":
        break
    b = b.replace("\n","")
    print(b)

ff.close()

string_function

s = "Hello"
print("%10s"%s)
print(s.center(10))
##      Hello
##  Hello 

9ex1

import time

print("** 마음속으로 10초 프로그램 **")

input("Enter를 누르면 시작됩니다. ")
start = time.time()

input("Enter를 누르면 끝납니다. ")
end = time.time()

time = end-start

if time > 10:
    print(f"{time}초가 걸렸습니다. {time-10}초 빨리 눌렀네요.")
elif time < 10:
    print(f"{time}초가 걸렸습니다. {10-time}초 빨리 눌렀네요.")
else:
    print("아니 당신은 '신'이십니까...")

0개의 댓글