1. 표준입력
1.1 input()
1answer = input("아무 값이나 입력하세요 : ")2print("입력한 값은 " + answer + "입니다.")34print(type(answer))56answer = input("아무 값이나 입력하세요 : ")7print("입력한 값은 " + answer + "입니다.")89print(type(answer)) # <class 'str'>10print(type(int(answer))) # <class 'int'>11answer = 1012print(type(answer)) # <class 'int'>
1.2 sep
1print("파이썬", "자바") # 파이썬 자바2print("파이썬" + "자바") # 파이썬자바34print("파이썬", "자바") # 파이썬 자바56# 값을 쉼표로 구분7print("파이썬", "자바", sep=",") # 파이썬,자바89print("파이썬", "자바", "자바스크립트") # 파이썬 자바 자바스크립트1011# 값을 ' vs '로 구분12print("파이썬", "자바", "자바스크립트", sep=" vs ") # 파이썬 vs 자바 vs 자바스크립트
1.3 end
1# end="? " : 문장의 끝 부분을 ? 로 뒷문장과 연결2print("파이썬", "자바", sep=", ", end="? ")3print("무엇이 더 재미있을까요?")4# 파이썬, 자바? 무엇이 더 재미있을까요?56print("파이썬", "자바", sep=", ") # 파이썬, 자바7print("무엇이 더 재미있을까요?") # 무엇이 더 재미있을까요?
1.4 stdout, stderr
1import sys23print("파이썬", "자바", file=sys.stdout) # 파이썬 자바4print("파이썬", "자바", file=sys.stderr) # 파이썬 자바, 에러가 발생시 에러처리
1.5 ljust, rjust
1scores = {"수학": 0, "영어": 50, "코딩": 100}23for subject, score in scores.items(): # (key, value)4print(subject, score)5"""위 코드의 실행결과6수학 07영어 508코딩 1009"""1011""" 💡 ljust와 rjust12ljust(8) : 왼쪽으로 8칸 공간을 확보한 상태에서 왼쪽으로 정렬 후 출력13rjust(4) : 오른쪽으로 4칸 공간을 확보한 상태에서 오른쪽으로 정렬 후 출력14"""15scores = {"수학": 0, "영어": 50, "코딩": 100}1617for subject, score in scores.items():18print(subject.ljust(8), str(score).rjust(4), sep=":")19"""위 코드의 실행결과20수학 : 021영어 : 5022코딩 : 10023"""
1.6 zfill
1for num in range(1, 21): # 1~20의 숫자2print("대기번호 : " + str(num))3"""4대기번호 : 15대기번호 : 26대기번호 : 37...8대기번호 : 209"""1011"""zfill(3)123칸 만들고, 값이 없는 빈 공간은 0을 채움13"""1415for num in range(1, 21): # 1~20의 숫자16print("대기번호 : " + str(num).zfill(3))1718"""19대기번호 : 00120대기번호 : 00221대기번호 : 00322...23대기번호 : 02024"""
2. 다양한 형식으로 출력 - format()
1print("{0}".format(500)) # {0} 위치에 값 500 출력23print("{0}".format(500))4# 빈칸으로 두기, 오른쪽 정렬, 공간 10칸 확보5print("{0: >10}".format(500))67# 빈칸으로 두기, 오른쪽 정렬, + 기호 붙이기, 공간 10칸 확보8print("{0: >+10}".format(500))9print("{0: >+10}".format(-500)) # 음수일 때1011print("{0:_<10}".format(500)) # 빈칸을 _로 채우기, 왼쪽 정렬, 공간 10칸 확보1213print("{0:,}".format(100000000000)) # 3자리마다 쉼표 찍기14print("{0:+,}".format(100000000000)) # + 기호 붙이기, 3자리마다 쉼표 찍기15print("{0:+,}".format(-100000000000)) # 음수일 때, 3자리마다 쉼표 찍기1617# 빈칸을 ^로 채우기, 왼쪽 정렬, + 기호 붙이기, 공간 30칸 확보, 3자리마다 쉼표 찍기18print("{0:^<+30,}".format(100000000000))1920print("{0}".format(5 / 3))2122print("{0:f}".format(5 / 3))2324print("{0:.2f}".format(5 / 3)) # 소수점 이하 둘째 자리까지 출력
3. 파일 입출력
3.1 open-w-쓰기
1score_file = open("score.txt", "w", encoding="utf8") # score.txt 파일을 쓰기 모드로 열기2print("수학 : 0", file=score_file) # score.txt 파일에 내용 쓰기3print("영어 : 50", file=score_file) # score.txt 파일에 내용 쓰기4score_file.close() # score.txt 파일 닫기
3.2 open-a-이어쓰기
1score_file = open("score.txt", "a", encoding="utf8") # score.txt 파일에 이어 쓰기 모드로 열기2score_file.write("과학 : 80\n")3# write() 함수는 줄 바꿈이 없으므로 \n 추가4score_file.write("코딩 : 100\n")5score_file.close()
3.3 open-r-읽기
1score_file = open("score.txt", "r", encoding="utf8") # score.txt 파일을 읽기 모드로 열기2print(score_file.read()) # 파일 전체 읽어 오기3score_file.close()456score_file = open("score.txt", "r", encoding="utf8")78while True:9line = score_file.readline()10if not line: # 더 이상 읽어 올 내용이 없을 때11break # 반복문 탈출12print(line, end="") # 읽어 온 내용 출력1314score_file.close()151617score_file = open("score.txt", "r", encoding="utf8")18lines = score_file.readlines() # 파일에서 모든 줄을 읽어와 리스트 형태로 저장1920for line in lines: # lines에 내용이 있을 때까지21print(line, end="") # 읽어 온 내용 출력2223score_file.close()242526score_file = open("score.txt", "r", encoding="utf8") # score.txt 파일을 읽기 모드로 열기27print(score_file.readline(), end="") # 한 줄씩 읽어 오고 커서는 다음 줄로 이동28print(score_file.readline(), end="") # end 값을 설정해 줄 바꿈 중복 수행 방지29print(score_file.readline(), end="")30print(score_file.readline(), end="")31score_file.close()
4. 데이터를 파일로 저장-pickle모듈
1import pickle # pickle 모듈 가져다 쓰기23profile_file = open("profile.pickle", "wb") # 바이너리 형태로 저장(wb)4profile = {"이름": "스누피", "나이": 30, "취미": ["축구", "골프", "코딩"]}5print(profile)67pickle.dump(profile, profile_file) # profile 데이터를 파일에 저장8profile_file.close() # 파일 닫기910profile_file = open("profile.pickle", "rb") # 읽어 올 때도 바이너리 형태 명시11profile = pickle.load(profile_file) # 파일에 있는 정보를 불러와서 profile에 저장1213print(profile)14profile_file.close()
5. 파일 한번에 열고닫기 - with문
1import pickle23with open("profile.pickle", "rb") as profile_file:4print(pickle.load(profile_file))56import pickle78with open("study.txt", "w", encoding="utf8") as study_file: # 새로운 파일 생성9study_file.write("파이썬을 열심히 공부하고 있어요.")1011with open("study.txt", "r", encoding="utf8") as study_file:12print(study_file.read())
6. 퀴즈. 보고서 파일 만들기
1"""2Quiz) 회사에서 매주 1회 작성해야 하는 보고서가 있습니다.3보고서는 항상 아래와 같은 형태로 출력되어야 합니다.45- x 주차 주간보고 -6부서 :7이름 :8업무 요약 :9101부차부터 50주차까지의 보고서 파일을 만드는 프로그램을 작성하시오.1112조건 : 파일명은 '1주차.txt', '2주차.txt', ...와 같이 만듭니다.13"""14for i in range(1, 51): # 숫자 1~5015# 파일 열기16with open(str(i) + "주차.txt", "w", encoding="utf8") as report_file:17report_file.write("- {0}주차 주간보고 -".format(i))18report_file.write("\n부서 : ") # 줄 바꿈 처리19report_file.write("\n이름 : ")20report_file.write("\n업무 요약 : ")