파이썬 기본 정리(3) - 입출력

yerim·2023년 1월 19일
0

파이썬 기본 정리

목록 보기
3/11

나도코딩 '파이썬 코딩 무료 강의(기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요' 정리

표준입출력

##표준입출력
#표준출력
print("Python", "Java")     # Python Java
print("Python" + "Java")    # PythonJava

#sep : 구분자(문자열 사이에 구분)
print("Python", "Java", sep=",")    # Python,Java
print("Python", "Java", "JavaScript", sep=" vs ")    # Python vs Java vs JavaScript

#end : print문의 마지막 부분
print("Python", "Java", sep=",", end="?")
print("무엇이 더 재밌을까요?")              # Python,Java?무엇이 더 재밌을까요?


import sys
print("Python", "Java", file=sys.stdout)    #표준출력
print("Python", "Java", file=sys.stderr)    #표준에러


#ljust(n): n만큼의 공간을 확보하고 왼쪽정렬
#rjust(n): n만큼의 공간을 확보하고 오른쪽 정렬
scores = {"수학": 0, "영어": 5, "코딩": 100}
for subject, score in scores.items():
    print(subject.ljust(8), str(score).rjust(4), sep=":")
# 수학      :   0
# 영어      :   5
# 코딩      : 100
    
    
#001, 002, 003, ...
#zfill(n): n만큼의 공간을 확보하고 빈공간을 0으로 채운다
for num in range(1, 21):
    print("대기번호: ", str(num).zfill(3))
# 대기번호:  001
# 대기번호:  002
# 대기번호:  003
# 대기번호:  004
# 대기번호:  005
#      :
#      :
# 대기번호:  015
# 대기번호:  016
# 대기번호:  017
# 대기번호:  018
# 대기번호:  019
# 대기번호:  020



#표준입력
#input으로 값을 입력받으면 항상 문자열 형태로 저장
answer = input("아무 값이나 입력하세요 : ")
print("입력하신 값은 " + answer + "입니다.")


다양한 출력포맷

#빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보
print("{0: >10}" .format(500))      #       500

#양수일 때 +로 표시, 음수일 때 -로 표시
print("{0: >+10}" .format(500))     #      +500
print("{0: >+10}" .format(-500))    #      -500

#왼쪽 정렬하고, 빈칸으로 _로 채움
print("{0:_<10}" .format(500))      #500_______

#3자리 마다 콤마 찍어주기
print("{0:,} " .format(500000000))  #500,000,000

#3자리 마다 콤마 찍어주기, +- 부호도 붙이기
print("{0:+,} " .format(500000000))  #+500,000,000
print("{0:+,} " .format(-500000000))  #-500,000,000

#3자리 마다 콤마를 찍어주기, 부호도 붙이고 자릿수(30) 확보하기
#돈이 많으면 행복하니까 빈 자리는 ^ 로 채워주기
print("{0:^<+30,} " .format(500000000))  #+500,000,000^^^^^^^^^^^^^^^^^^

#소수점 출력
print("{0:f}" .format(5/3))         #1.666667

#소수점 특정 자리수 까지만 표시(소수점 3째 자리에서 반올림)
print("{0:.2f}" .format(5/3))       #1.67


파일 입출력

##파일입출력
#파일입력(파일에 쓰기)
#방법 1
#open("파일명", "읽기(r) or 쓰기(w) or 추가쓰기(a)")
score_file = open("score.txt", "w", encoding="utf-8")
print("수학 : 0", file=score_file)
print("영어 : 50", file=score_file)
score_file.close()  #반드시 close 해주어야 함


#방법 2
score_file = open("score.txt", "a", encoding="utf-8")
score_file.write("과학: 80")
score_file.write("\n코딩: 100") #print와 다르게 줄바꿈을 따로 해주어야 함 
score_file.close()



#파일출력(파일 내용 읽어오기)
#방법 1
score_file = open("score.txt", "r", encoding="utf-8")
print(score_file.read())
score_file.close()
# 수학 : 0
# 영어 : 50
# 과학: 80
# 코딩: 100


#방법 2
score_file = open("score.txt", "r", encoding="utf-8")
print(score_file.readline(), end="")    #readline(): 줄별로 읽기 수행. 한줄 읽고 커서는 다음 줄로 이동
print(score_file.readline(), end="")
print(score_file.readline(), end="")
print(score_file.readline(), end="")
score_file.close()
# 수학 : 0

# 영어 : 50

# 과학: 80

# 코딩: 100



#방법 3
score_file = open("score.txt", "r", encoding="utf-8")
while True:
    line = score_file.readline()
    # line이 없으면(읽어온 내용이 없으면) 반복물 탈출
    if not line:
        break
    print(line)
score_file.close()
# 수학 : 0

# 영어 : 50

# 과학: 80

# 코딩: 100



#방법 4
score_file = open("score.txt", "r", encoding="utf-8")
lines = score_file.readlines()  #파일의 내용을 list 형태로 저장
for line in lines:
    print(line, end="")
score_file.close()
# 수학 : 0
# 영어 : 50
# 과학: 80
# 코딩: 100


pickle 라이브러리

# 프로그램상에서 사용하고 있는 데이터를 파일 형태로 저장해주는 것
# pickle을 이용해 데이터를 파일에 저장하고, 그 데이터를 다시 불러와 사용할 수 있다.
import pickle   #pickle 모듈
profile_file = open("profile.pickle", "wb")     
#wb: write binary -> pickle을 사용하기 위해서 항상 binary를 정의해주어야 함
#pickle에서는 인코딩은 설정할 필요 X

profile = {"이름":"박명수", "나이": 30, "취미": ["축구", "골프", "코딩"]}
print(profile)
pickle.dump(profile, profile_file)  #profile에 있는 정보를 profile.pickle 파일에 저장
profile_file.close()
#여기까지 하면 profile.pickle이라는 파일이 생성됨

# profile.pickle 에서 데이터 가져오기
profile_file = open("profile.pickle", "rb")     
profile = pickle.load(profile_file) #파일에 있는 데이터를 profile에 불러옴
print(profile)
profile_file.close()


with

## with
#파일입출력 시 open(), close()하는 과정을 with를 사용하여 편리하게 할 수 있다.
import pickle

with open("profile.pickle", "rb") as profile_file_file:
    print(pickle.load(profile_file_file))
#이후에 따로 close()해주지 않아도 된다.


#with를 사용하여 파일 쓰기
with open("study.txt", "w", encoding="utf8") as study_file:
    study_file.write("파이썬을 열심히 공부하고 있어요")

#with를 사용하여 파일 읽기
with open("study.txt", "r", encoding="utf8") as study_file:
    print(study_file.read())


Quiz 7

# 당신의 회사에서는 매주 1회 작성해야 하는 보고서가 있습니다.
# 보고서는 항상 아래와 같은 형태로 출력되어야 합니다.
## - X 주차 주간보고 -
## 부서 :
## 이름 :
## 업무 요약 :
# 1주차부터 50주차까지의 보고서 파일을 만드는 프로그램을 작성하시오.
# 조건 : 파일명은 '1주차.txt', '2주차.txt', ... 와 같이 만듭니다.

import pickle
for i in range(1, 51):
    with open(str(i)+"주차.txt", "w", encoding="utf8") as report:
        report.write("- " + str(i) + "주차 주간보고 -")
        report.write("\n부서 : ")
        report.write("\n이름 : ")
        report.write("\n업무 요약 : ")
profile
hello!

0개의 댓글