にゅうしゅつりょく
標準I/O
しゅつりょく
print("python", "java") -> python java
print("python" + "java") -> pythonjava
# seperator : 값들을 구분
print("python", "java", sep=",") -> python, java
print("python", "java", sep=" vs ") -> python vs java
# end : 2개 이상의 print를 한 줄에 엮기
print("Python", "Java", sep=",", end="?")
print("무엇이 더 재밌을까요?") -> python, java?무엇이 더 재밌을까요?
# sys 모듈
import sys
print("Python", "Java", file=sys.stdout) # 표준 출력 -> python java
print("Python", "Java", file=sys.stderr) # 표준 에러 -> python java
# stdout 은 일반적인 내용을, stderr 는 에러 발생 시 관련 내용을 출력하기 위해 사용
# 정렬, ljust(), rjust()
scores = {"수학": 0, "영어": 50, "코딩": 100}
for subject, score in scores.items(): # key,value의 pair 값 들고옴
print(subject, score) -> 수학 0
-> 영어 50
-> 코딩 100
scores = {"수학": 0, "영어": 50, "코딩": 100}
for subject, score in scores.items():
print(subject.ljust(8), str(score).rjust(4), sep=":")
-> 수학 : 0
-> 영어 : 50 # ljust(8) 왼쪽 8칸 확보
-> 코딩 : 100 # rjust(4) 오른쪽 4칸 확보
# zfill : 전달 숫자만큼의 공간을 확보하고 그 공간을 0으로 채움
for num in range(1, 21):
print("대기번호 : " + str(num)) -> 대기번호 : 1
-> 대기번호 : 2 ...
-> 대기번호 : 19
-> 대기번호 : 20
for num in range(!, 21):
print("대기번호 : " + str(num).zfill(3)) -> 대기번호 : 001
-> 대기번호 : 002 ...
-> 대기번호 : 019
-> 대기번호 : 020
入力
answer = input("아무 값이나 입력하세요 : ")
print("입력하신 값은 " + answer + "입니다.")
-> 아무 값이나 입력하세요 : # 10 print(type(answer))
-> 입력하신 값은 10입니다. # <class 'str'>
-> 아무 값이나 입력하세요 : # 나는나야
-> 입력하신 값은 나는나야입니다.
# 원래 10은 오류가 나야하지만
# input으로 입력받은 값은 모두 str type이 되어 오류 안남.
複数種類の出力方法
print("{0}".format(500)) -> 500
# 앞을 빈 자리로 두고, 오른쪽 정렬, 총 10자리 공간 확보
print("{0: >10}".format(500)) -> ' 500'
# 빈 자리, 우측 정렬, +기호, 10칸 확보
print("{0: +>10}.format(500)) -> ' +500'
print("{0: +>10}.format(-500)) -> ' -500'
# 3자리 마다 콤마
print({0:,}.format(100000000)) -> 100,000,000
print({0:+,}.format(100000000)) -> +100,000,000 # 기호 추가
# 빈 자리 ^로 채우기, 좌측 정렬, 기호, 20칸 확보, 3자리 콤마
print("{0:^<+20,}".format(100000000)) ->+100,000,000^^^^^^^^
# 소수점 출력 : float(싨수형)지료 출력, .(n)번쨰까지 출력
print({0:f}.format(5/3)) -> 1.666667
print("{0:.2f}".format(5/3)) -> 1.67 # 소수점 아래 두번째자리까지
---- {인덱스:[[빈자리채우기]정렬][기호][확보공간][콤마][.자릿수][타입]} ---
ファイルI/O
入力
# open 함수 사용, open("파일명", "열기 모드", encoding="인코딩")
score_file = open("score.txt", "w", encoding="utf8") # w : write 모드
print("math : 0", file=score_file)
print("english : 50", file=score_file)
score_file.close()
# print 되지 않고 score.txt 파일이 생기며 그 안에 내용 저장
# 내용 추가, a : append 모드
score_file = open("score.txt", "a", encoding="utf8")
score_file.write("science : 80") # write 함수 사용, 자동 줄바꿈 안됨
score_file.write("\ncoding : 100") # \n 줄바꿈
score_file.close()
# print 되지 않고 score.txt 파일에 내용 추가
------- score.txt -------
math : 0
english : 50
science : 80
coding : 100
----------------------------
しゅつりょく
# 터미널에서 출력, r : read 모드
score_file = open("score.txt", "r", encoding="utf8")
print(score_file.read())
score_file.close() -> math : 0
-> english : 50
-> science : 80
-> coding : 100
score_file = open("score.txt", "r", encoding="utf8")
print(score_file.readline()) # 줄 별로 읽기, 한 줄읽고 커서 다음줄로 이동
print(score_file.readline()) # 줄 바꿈 자동 포함
print(score_file.readline()) -> math : 0
print(score_file.readline())
score_file.close() -> english : 50
-> science : 50
-> coding : 100
# 한 줄씩 총 4줄을 들고 올 때
score_file = open("score.txt", "r", encoding="utf8")
print(score_file.readline(), end="") # 줄 별로 읽기, 줄바꿈 중복 방지
print(score_file.readline(), end="")
print(score_file.readline(), end="") -> math : 0
print(score_file.readline(), end="") -> english : 50
score_file.close() -> science : 50
-> coding : 100
# 들고 올 줄이 몇 줄인지 모를 때
score_file = open("score.txt", "r", encoding="utf8")
while True:
line = score_file.readline()
if not line: # 더 이상 들고오려는 줄이 없을 떼
break # 반복문 탈출
print(line, end="") # 읽어온 줄 출력, 줄바꿈 중복 방지
score_file.close() -> math : 0
-> english : 50
-> science : 80
-> coding : 100
# list에 저장해두고 list를 반복 순회
score_file = open("score.txt", "r", encoding="utf8")
lines = score_file.readlines() # list 형태로 저장, 파일 내 모든 줄 저장
for line in lines:
print(line, end="")
score_file.close() -> math : 0
-> english : 50
-> science : 80
-> coding : 100
pickle
# pickle : 프로그램에서 사용하고 있는 데이터를 파일 형태로 저장하거나
# 불러올 수 있게 해주는 모듈
import pickle
# w : write, b : binary 형태
profile_file = open("profile.pickle", "wb")
profile = {"이름" : "박명수", "나이" : 30, "취미" : "코딩"}
print(profile)
pickle.dump(profile, profile_file) # profile에 있는 정보를 file에 저장
profile_file.close() -> 워크스페이스 내에 profile.pickle 파일 생김
# dump(data, dest_file) : pickle을 이용하여 데이터를 파일로 저장할 때 사용하는 함수
profile_file = open("profile.pickle", "rb") as profile_file: # r:read
profile = pickle.load(profile_file) # file에 있는 정보를 profile 에 읽어오기
print(profile)
With
with : 파일을 열고 나서 자동으로 닫아줌(close() 필요없음)
import pickle
with open("profile.pickle", "rb") as profile_file:
print(pickle.load(profile_file))
-> {'이름': '박명수', '나이': 30, '취미': '코딩'}
# with로 파일 만들고 불러오기
With open("study.txt", "w", encoding="utf8") as study_file:
study_file.write("파이썬을 열심히 공부하고 있어요.")
-> study.txt 파일 생김
with open("study.txt", "r", encoding="utf8") as study_file:
print(study_file.read())
-> 파이썬을 열심히 공부하고 있어요.
Reference
この問題について(にゅうしゅつりょく), 我々は、より多くの情報をここで見つけました https://velog.io/@ilov-/입출력テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol