Python 기초 4

Lilmeow·2023년 4월 13일
0

Python Basic

목록 보기
4/7
post-thumbnail

표준 입출력

print('aaa', 'bbb', 'ccc', sep = '+')
print('aaa', 'bbb', 'ccc', sep = '')
print('aaa', 'bbb', 'ccc', sep = ' ')
print('aaa', 'bbb', 'ccc', sep = ',')
print('aaa', 'bbb', 'ccc', sep = 'zzz')
print('aaa', 'bbb', 'ccc', sep = '\n')
# aaa+bbb+ccc
# aaabbbccc
# aaa bbb ccc
# aaa, bbb, ccc
# aaazzzbbbzzzccc
# aaa
# bbb
# ccc

print('aaa', 'bbb', 'ccc', sep = ' ', end = '?') # end의 디폴트는 줄바꿈이었는데 문장 마침을 ?로 끝내겠다
print('ddd') # 여기서는 ddd출력 후 디폴트인 줄바꿈 적용
print('zzz')
# aaa bbb ccc?ddd
# zzz

import sys
print('aaa', 'bbb', file = sys.stdout) # 표준 출력으로 처리하기
print('aaa', 'ccc', file = sys.stderr) # 표준 에러로 처리하기
# aaa bbb
# 
# ...
#
# aaa ccc

dic = {'aaa' : 1111111, 'bbbbb' : 2222, 'cccccccc' : 33}
for abc, num in dic.items():
    #print(abc, num) # 이렇게하면 가독성 저하
    print(abc.ljust(10), str(num).rjust(10), sep = ':') # key 출력은 10칸 확보 후 왼쪽 정렬, value 출력은 10칸 확보 후 오른쪽 정렬
# aaa		:	1111111
# bbbbb		:	   2222
# cccccccc	:		 33
    
for num in range(1, 21):
    print(str(num).zfill(3)) # 3칸 확보 후 빈 공간은 0으로 채운다
# 001
# 002
# ...
# 020
    
answer = input('enter : ') # 항상 문자열str 형태로 저장
print("answer :", answer)
# enter : (입력창)
# answer : (내가 입력한 문자열)

다양한 출력 포맷

print("{0: >10}".format(500)) # 10칸 확보 후 빈 공간은 공백, 출력값 오른쪽 정렬
print("{0: >+10}".format(500)) # 10칸 확보 후 빈 공간은 공백,출력값 오른쪽 정렬, 부호 표시
print("{0: >+10}".format(-500)) # 10칸 확보 후 빈 공간은 공백,출력값 오른쪽 정렬, 부호 표시
print("{0:_<10}".format(500)) # 10칸 확보 후 빈 공간은 _, 출력값 왼쪽 정렬
#	  	 500
#	    +500
#	    -500
# 500_______

print("{0:,}".format(1000000000000)) # 3자리 마다 콤마 찍기
print("{0:^<+30,}".format(100000000000)) # 30칸 확보 후 빈 공간은 ^, 출력값 왼쪽 정렬, 3자리 마다 콤마 찍기, 부호 표시
print("{0:f}".format(5/3)) # 소수점 표시, 디폴트 : 6자리
print("{0:.2f}".format(5/3)) # 소수점 2자리까지 표시, 반올림 적용
# 1,000,000,000,000
# +100,000,000,000^^^^^^^^^^^^^^
# 1.666667
# 1.67

파일 입출력

score_file = open("score.txt", "w", encoding = "utf8") # 파일 정의 후 열기 : 파일명, 쓰기목적, 인코딩 정보 정의(한글 작성 시 오류 방지)
print("a : 0", file = score_file) # 파일에 작성
print("b : 50", file = score_file) # 파일에 작성
score_file.close() # 파일 닫기
#score.txt > a : 0
#score.txt > b : 50

score_file = open("score.txt", "a", encoding = "utf8") # a : append 이어서 작성
score_file.write('c : 100')
score_file.write('\nd : 150') # write는 줄바꿈이 수동
score_file.close
#score.txt > c : 100
#score.txt > d : 150

score_file = open('score.txt', 'r', encoding = 'utf8') # 읽기 목적으로 파일을 열기
print(score_file.read()) # 파일을 읽어와서 출력
score_file.close()
# a : 0
# b : 50
# c : 100
# d : 150

score_file = open('score.txt', 'r', encoding = 'utf8')
print(score_file.readline(), end = '') # 위부터 한줄씩 읽어와서 출력, 커서는 다음 줄로 이동
print(score_file.readline(), end = '') # 줄바꿈을 안하고 싶을때
print(score_file.readline(), end = '')
print(score_file.readline()) # 4줄인 것을 알기 때문에 print 4번 작성
score_file.close()
# a : 0
# b : 50
# c : 100
# d : 150

score_file = open('score.txt', 'r', encoding = 'utf8')
while True:
    line = score_file.readline() # 한줄씩 읽기
    if not line: # 줄이 없다면 탈출
        break
    print(line, end = '') # 있으면 출력
print("\n")
score_file.close()
# a : 0
# b : 50
# c : 100
# d : 150
#

score_file = open('score.txt', 'r', encoding = 'utf8')
lines = score_file.readlines() # 읽어온 모든 줄들을 list형태로 lines에 저장
for line in lines:
    print(line, end = '')
score_file.close()
# a : 0
# b : 50
# c : 100
# d : 150

Pickle

import pickle # 프로그램 상에서 사용하고 있는 데이터를 파일 형태로 저장하기 위해 사용하는 모듈
profile_file = open('profile.pickle', 'wb') # wb : 쓰기목적인데 바이너리 타입
profile = {'name' : 'abc', 'age' : '20', 'hobby' : ['a, b, c']}
print(profile)
pickle.dump(profile, profile_file) # profile에 있는 정보를 파일에 저장
profile_file.close()
# {'name': 'abc', 'age': '20', 'hobby': ['a, b, c']}

profile_file = open('profile.pickle', 'rb')
profile = pickle.load(profile_file)
print(profile)
profile_file.close()
# {'name': 'abc', 'age': '20', 'hobby': ['a, b, c']}

With

import pickle

with open('profile.pickle', 'rb') as profile_file: # 읽기 목적의 profile파일을 profile_file이라는 변수로서 열기
    print(pickle.load(profile_file)) # profile_file의 내용을 pickle을 통해 불러와 출력한 것
> with를 사용하면 파일을 닫을 필요 없이 자동으로 종료
# {'name': 'abc', 'age': '20', 'hobby': ['a, b, c']}

with open('study.txt', 'w', encoding = 'utf8') as study_file: # 쓰기 목적의 study.txt파일을 study_file이라는 변수로서 열기
    study_file.write('abc123')
with open('study.txt', 'r', encoding = 'utf8') as study_file: # 읽기 목적의 study.txt파일을 study_file이라는 변수로서 열기
    print(study_file.read())
# abc123

Quiz 풀이

for i in range(1, 51):
    with open(str(i) + '주차.txt', 'w', encoding = 'utf8') as r_file:
        r_file.write('- {0}주차 주간보고 -'.format(i))
        r_file.write('\n부서 : ')
        r_file.write('\n이름 : ')
        r_file.write('\n업무 요약 : ')
# 1주차.txt > - 1주차 주간보고 -
#			부서 :
#			이름 : 
#			업무 요약 :
#...
#...
#...
# 50주차.txt > - 50주차 주간보고 -
#			부서 :
#			이름 : 
#			업무 요약 :

0개의 댓글