안녕하세요
27년차 진로탐색꾼 조녁입니다!!
오늘은 파이썬에서 입출력 방식에 대해서 공부해봤습니다.
파이썬 설치 방법은 아래 글 참고해주세요! (주피터 노트북 환경 + 구글 클라우드 사용이 가능한 Colab 환경 추천드립니다.)
파이썬에 대한 기초적인 내용이지만 기억하면 좋을 것들이니 가볍게 한 번 봐주세요~ !
모든 코드는 아래 git_hub 에 올려둔 Colab 노트북 참고 부탁드려요.
gist.github.com/jonhyuk0922/e1335557b3e00a69e21191e42cb9ed34#file-_-ipynb
*궁금하신 내용은 댓글에 질문 남겨주세요!
파이썬 기초 5강 내용
1. 표준입출력
2. 다양한 출력포맷
3. 파일입출력
4. pickle
5. with
6. 업무자동화_ 보고서 50개 만들기
1. 표준입출력
1) 출력 시에 end 값은 자동으로 줄바꿈인데, end 에 값을 지정해주면 줄바꿈없이 이어서 출력된다.
print("Python","Java",sep=",", end="?") #보통 end 값은 줄바꿈인데 "?"를 사용하면서 줄바꿈 없이 출력함
print("무엇이 더 재밌을까요?")
>> Python,Java?무엇이 재밌을까요?
2) 표준출력으로 처리할 떄랑 표준에러로 처리할 때랑 보이는 출력은 같다.
import sys
print("Python","Java",file=sys.stdout) #표준출력으로 처리
print("Python","Java",file=sys.stderr) #표준에러로 처리
3) print 문에서 str값에 .ljust(x) or .rjust(x) 를 사용하면 넣어주면 x칸만큼 차지하는 좌측 정렬 or 우측 정렬로 출력된다.
#시험 성적
scores = {"수학":0,"영어":50,"코딩":100}
for subject, score in scores.items():
print(subject.ljust(8), str(score).rjust(4) ,sep=":")
4) print문에서 str값에 .zfill(x) 를 사용하면 str 길이가 x만큼 늘어난다. (빈 공간은 앞에서부터 0으로 채워진다.)
#은행 대기순번표
#001, 002, 003, ...
for num in range(1,21):
print("대기번호 : " + str(num).zfill(3))
5) input으로 넣으면 str으로 저장된다.(int도 동일)
#표준입력
answer = input("아무 값이나 입력하세요 : ") #사용자 입력을 통한 값은 항상 문자열로 저장된다.
print(type(answer))
print("입력하신 값은 " + answer + "입니다")
2. 다양한 출력포맷
1)
# 빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보
print(f"{500: >10}")
>>> 500
2)
#양수일 떈 +로 표시, 음수일 떈 -로 표시
print(f"{500: >+10}")
print(f"{-500: >-10}")
>>> +500
>>> -500
3)
#왼쪽 정렬하고, 빈칸으로 _로 채움
print(f"{500:_<10}")
>> 500__________
4)
#3자리 마다 콤마를 찍어주기
print(f"{1000000:,}")
#3자리 마다 콤마를 찍어주기, +,-부호도 붙이기
print(f"{10000000:+,}")
print(f"{-10000000:-,}")
#3자리 마다 콤마를 찍어주기, +,-부호도 붙이기, 자릿수 확보하기
#돈이 많으면 행복하니까 빈자리는 ^로 채워주기
print(f"{1000000000000:^<+30,}")
5)
# 소수점 출력
print(f"{5/3:f}")
# 소수점을 특정 자리수 까지만 표시
print(f"{5/3:.2f}")
>> 1.66667
>>1.67
3. 파일입출력
1) 파일 생성 및 내용입력 , 여기서 꼭 " score_file.close() " 마지막에 닫아줘야 한다.
여기서 "w" 는 write이다.
score_file = open("score.txt", "w",encoding="utf8")
print("수학 : 0",file=score_file)
print("영어 : 50",file=score_file)
score_file.close()
2) file.write은 따로 줄바꿈 기능이 없어서 추가해줘야한다.
여기서 "a" 는 append이다.
score_file = open("score.txt","a",encoding="utf8")
score_file.write("과학 : 80") #file.write은 따로 줄바꿈 기능이 없다.
score_file.write("\n코딩 : 100")
score_file.close()
3) 파일 읽어주기 , 마찬가지로 open과 close 사용한다.
여기서 "r"은 예상과 같이 read다.
score_file = open("score.txt","r",encoding="utf8")
print(score_file.read())
score_file.close()
4) readline으로 한줄씩 읽으면 한칸씩 띄어서 읽는다.
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()
5) while문을 통해서 줄별로 읽기 (결과는 위와 동일)
score_file = open("score.txt","r",encoding="utf8")
while True:
line = score_file.readline()
if not line:
break
print(line,#end=""
)
score_file.close()
6) for문을 통해서 줄별로 읽기(결과 동일)
score_file = open("score.txt","r",encoding="utf8")
lines =score_file.readlines() #list 형태로 저장
for line in lines:
print(line, #end="")
score_file.close()
#type(lines)
4.pickle
1) pickle 형태로 파일 열고 닫기 , 이 떄도 꼭 닫아줘야하고 특별히 ,"wb" 파라미터를 필수로 넣어줘야한다.
import pickle
profile_file = open("profile.pickle","wb") #:w : write , b : binary (필수!)
profile = {"이름":"박명수", "나이":30, "취미":["축구","골프","코딩"]}
print(profile)
pickle.dump(profile,profile_file) #profile 에 있는 정보를 file에 저장
profile_file.close()
2) pickle 읽기 , 파일에서 로드해서 변수 지정 후 읽기
import pickle
profile_file = open("profile.pickle","rb")
profile = pickle.load(profile_file) #file에 있는 정보를 profile 에 불러오기
print(profile)
profile_file.close()
5. with
1) with 사용해서 pickle 파일 읽기 , "rb" 파라미터 필수 , *닫아줄 필요 없다.
import pickle
with open("profile.pickle","rb") as profile_file:
print(pickle.load(profile_file))
2) with 로 파일 생성하기 , 역시 닫아줄 필요없다.
with open("study.txt", "w", encoding="utf8") as study_file:
study_file.write("파이썬을 열심히 공부하고 있어요")
3) with로 파일 읽기
with open("study.txt", "r", encoding="utf8") as study_file:
print(study_file.read())
6. Quiz : 업무자동화_ 보고서 50개 만들기
스스로 풀어보신 후 아래로 가시길 추천드립니다 ㅎㅎ
*문제풀이
: 1~50번째 보고서 파일 open , "w"해주고 이름은 nweek_file로 생성해준다.
내용을 작성할때, write함수는 줄바꿈이 없으므로 \n을 사용해준다.
정답코드
for n in range(1,51):
with open(str(n) + "주차.txt","w",encoding="utf8") as nweek_file:
nweek_file.write(f"- {n} 주차 주간보고 - ")
nweek_file.write("\n부서 : ")
nweek_file.write("\n이름 : ")
nweek_file.write("\n업무 요약 : ")
*본 포스팅은 유튜브 '나도코딩' 강의를 듣고 작성하였습니다.
특별히 긴 강의를 인프런이라는 사이트에서 파트별로 나눠서 제공해줘서 손쉽게 접할 수 있었습니다. 아래 링크 첨부하겠습니다.
'프로그래밍 공부 > Python' 카테고리의 다른 글
[파이썬 기초 6-1강] 클래스(클래스, init, 멤버변수, 메소드, 상속 & 다중 상속) (0) | 2021.04.26 |
---|---|
[Python] 타입 힌팅(Type Hinting) 이란? (0) | 2021.04.21 |
[파이썬 기초 4강] 함수(전달값과 반환값, 기본값 ,가변인자, 지역변수와 전역변수) + 성별 적정체중 예측 (0) | 2021.03.11 |
[파이썬 기초 3강] 제어문(if문, for문,while문, continue,break, 한줄for문 ) + cocoa 택시 매칭방법 (2) | 2021.02.18 |
[Pycharm] Tensorflow dev 응시하기 위한 설정 (0) | 2021.02.09 |