Python - 기초(5)

제갈창민·2021년 10월 11일
0

learningbook

목록 보기
7/32

표준 입출력

print("Python", "Java") # , 를 쓰면 띄워쓰기가 되고 + 를 쓰면 공백이 없다. 그런데,
print("Python", "Java", sep=" vs ") # sep 를 쓰면 뒤의 문자를 각각의 값 사이에 끼워 넣어준다.

print("Python", "Java", sep=",", end="?")
#end : 문장의 끝부분을 설정된 값으로 바꿔주고, 문장을 한 줄로 붙여서 출력한다.
print("무엇이 더 재밌을까요?")

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

시험성적

scores = {"수학":0, "영어":50, "코딩":100}
for subject, score in scores.items():
print(subject.ljust(8), str(score).rjust(4), sep=":")
#왼쪽으로 정렬을 하는데, 총 8칸의 공간을 확보하라
#스코어부분은 오른쪽 정렬을 하는데 4칸의 공간을 확보하라

은행 대기순번표

#001, 002, 003, ...
for num in range(1,21):
print("대기번호 : " + str(num).zfill(3)) # zfill = (0)만큼 자릿수를 만들되, 값이 없는 빈공간을 "0" 으로 채운다

input의 기본 타입

answer = input("아무 값이나 입력하세요 :")
#input(사용자 입력) 의 형태로 입력하면 항상 문자열 형태로 입력됨
print("입력하신 값은 " + answer + "입니다.")

다양한 출력 포맷

빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보

print("{0: >10}".format(500))
#오른쪽 정렬을 하되 총 10자리의 공간을 확보하면서 500을 출력해라

양수일 땐 +로, 음수일 땐 -로 표시

print("{0: >+10}".format(500))
print("{0: >+10}".format(-500))

왼쪽 정렬하고, 빈칸을 _로 채움

print("{0:_<+10}".format(500))

3자리 마다 콤마를 찍어주기

print("{0:,}".format(10000000000))

3자리 마다 콤마를 찍어주기, +- 부호도 붙이기

print("{0:+,}".format(10000000000))
print("{0:+,}".format(-10000000000))

3자리 마다 콤마찍기, 부호붙이기, 자릿수 확보하기, 빈 자리는 ^ 로 채우기

print("{0:^<+30,}".format(10000000000))

소수점 출력

print("{0:f}".format(5/3))

소수점 특정 자릿수 까지만 표시

print("{0:.2f}".format(5/3)) # 소수점 3째자리에서 반올림

파일 입출력

#w = 쓰기
score_file = open("score.txt", "w", encoding="utf8")
print("수학 : 0", file=score_file)
print("영어 : 50", file=score_file)



#a = 덮어쓰기
score_file = open("score.txt", "a", encoding="utf8")
score_file.write("과학 : 80")
score_file.write("\n코딩 : 100")
score_file.close()


#"r"= 읽어오기
score_file = open("score.txt", "r", encoding="utf8")
print(score_file.read())
score_file.close()


score_file = open("score.txt", "r", encoding="utf8")
print(score_file.readline()) # 한줄을 읽은 뒤 커서를 다음줄로 이동
print(score_file.readline())
print(score_file.readline())
print(score_file.readline())
score_file.close()

반복문을 통해서 파일의 내용을 불러 올 수도 있다.

score_file = open("score.txt", "r", encoding="utf8")
while True:
line = score_file.readline()
if not line:
break
print(line)
score_file.close()

list 형태로 저장한다.

score_file = open("score.txt", "r", encoding="utf8")
lines = score_file.readlines()
for line in lines:
print(line, end="")
score_file.close() # (읽고 나면 항상 close 해야한다)

pickle

import pickle
profile_file = open("profile.pickle", "wb")
#pickle 모듈을 쓰기위해선 항상 b (바이너리)를 붙여야 한다
profile = {"이름":"박명수", "나이":30, "취미":["축구", "골프", "코딩"]}
print(profile)


pickle.dump(profile, profile_file) # profile 에 있는 정보를 file 에 저장
profile_file.close()

file 에 있는 정보를 profile에 불러오기

profile_file = open("profile.pickle", "rb")
profile = pickle.load(profile_file)
print(profile)
profile_file.close()

with

import pickle
with open("profile.pickle", "rb") as profile_file:
print(pickle.load(profile_file))
#따로 close를 통해 닫아 주지 않아도 된다.


with open("study.txt", "w", encoding="utf8") as study_file:
study_file.write("파이썬을 열심히 공부하고 있어요")

with open("study.txt", "r", encoding="utf8") as study_file:
print(study_file.read())

Quiz. 7

#회사에서 매주 1회 작성해야하는 보고서가 있다.
#- x 주차 주간보고 -
#부서 :
#이름 :
#업무 요약 :
#1주차부터 5주차까지의 보고서 파일을 만드는 프로그램 작성
#조건 : 파일명은 '1주차.txt', '2주차.txt', ... 과 같이 만든다.

풀이

#반복문 필요(for)
for i in range(1, 6):
with open(str(i) + "주차.txt", "w", encoding="utf8") as report_file:
report_file.write("- {0} 주차 주간보고 -".format(i))
report_file.write("\n부서 :")
report_file.write("\n이름 :")
report_file.write("\n업무 요약 \:")

profile
자기계발 중인 신입 개발자

0개의 댓글