티스토리 뷰
"""
20200729
파이썬 공부 11일차
"""
흐음 비가 많이 오네 공부 하기 싫다
챕터4는 뭐 그냥 후딱후딱 지나가서 벌써 내일 연습문제당 뭐고 ;;
사용자 입력과 출력
# 사용자 입력
사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때 input을 사용해서 할 수 있다.
input은 입력되는 모든 것을 string으로 취급하기 때문에,
입력값을 실수나 정수로 받는 것도 가르쳐 줄줄 알았는데 진짜 input만 나오고 넘어가서 당황했다 ;;
실수는 float(input()) 정수는 int(input())로 하면 해결된다. 비프 때 배움 ㅎㅎ
# 프롬프트 값을 띄워서 사용자 입력 받기
안내 문구 또는 질문이 나오도록 하고 싶을 때, input()의 괄호 안에 질문이나 문구를 입력하여 프롬프트를 띄우면 됨
말만 거창하지 ()안에 쓰고싶은 글 쓰라는 소리임 input("질문내용") 이렇게
number = input("숫자를 입력하세요: ")
print(number)
>>> 숫자를 입력하세요: (아무거나 넣으세요.)
>>> (아무거나 넣은 숫자)
# print 자세히 알기
a = 123
print(a) # 숫자 출력하기
a = "python"
print(a) # 문자열 출력하기
a = [1, 2, 3]
print(a) # 리스트 출력하기
여기까진 여태 맨날 써온 print였을 것이다.
큰 따옴표로 둘러싸인 문자열은 + 연산과 동일하다.
print("life" "is" "too short")
>>> lifeistoo short
print("life"+"is"+"too short")
>>> lifeistoo short
첫 번째 print문과 두 번째 print문은 완전히 동일한 결괏값을 출력한다.
따옴표로 둘러싸인 문자열을 연속해서 사용하면 + 연산을 한 것과 같기때문이다.
# 문자열 띄어쓰기는 콤마(,)로 한다
print("life", "is", "too short")
>>> life is too short
# 한 줄에 결괏값 출력하기
for i in range(10):
print(i, end = ' ')
>>> 0 1 2 3 4 5 6 7 8 9
한 줄에 결괏값을 계속 이어서 출력하려면 매개변수 end를 사용해 끝 문자를 지정하면 된다.
여기선 end = '(space)'를 해서 출력값이 한 칸씩 띄어져서 나오는 것이다.
파일 읽고 쓰기
# 파일 생성하기
f = open('새파일.txt', 'w')
f.close()
open함수는 '파일 이름'과 '파일 열기 모드'를 입력값으로 받고, 결괏값으로 파일 객체를 돌려준다.
파일 객체 = open(파일 이름, 파일 열기 모드)로 쓰임
# 파일 열기 모드
- r - 읽기 모드; 파일을 읽기만 할 때 사용
- w - 쓰기 모드; 파일에 내용을 쓸 때 사용
- a - 추가 모드; 파일의 마지막에 새로운 내용을 추가할 때 사용
쓰기 모드로 파일을 열면 해당 파일이 이미 존재할 경우에 원래 있던 내용이 모두 사라지고 새로운 파일이 생성된다.
그렇지 않을 경우에는 새로운 파일이 생성된다.
원하는 디렉토리에 파일을 생성하고 싶을 땐 파일 이름 앞에 디렉토리를 적은 후 open 함수를 작성하면 된다.
f.close()는 열려 있는 파일 객체를 닫아주는 역할을 하는데 생략이 가능하긴 하다.
왜냐면 프로그램을 종료할 때 파이썬 프로그램이 열려 있는 파일 객체를 자동으로 닫아주기 때문인데
쓰기 모드로 열었던 파일을 안 닫고 다시 아용하려고 하면 오류가 발생하기 때문에 close를 통해 직접 닫는 습관을 들이는 걸 추천한다.
# 파일을 쓰기 모드로 열어 출력값 적기
f = open("새파일.txt", 'w')
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
f.write(data)
f.close()
f.write(data)는 파일에 결괏값을 적는 방법이고, print(data)는 모니터 화면에 결괏값을 출력하는 방법이다.
# 프로그램의 외부에 저장된 파일을 읽는 여러가지 방법
1. readline 함수 사용하기
f = open('새파일.txt', 'r')
line = f.readline()
print(line)
f.close()
>>> 1번째 줄입니다.
readline 함수는 파일의 첫 번째 줄을 읽어 출력하는 경우에 사용한다.
그렇다면 모든 줄을 읽어서 화면에 출력하고 싶을 땐 어떻게 할까?
f = open('새파일.txt', 'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
이렇게
while True: 라는 무한 루프 안에서 f.readline()을 사용하여 파일을 계속해서 한 줄씩 읽어들인다.
만약 더 이상 읽을 줄이 없으면 break를 수행한다.
readline()은 더 이상 읽을 줄이 없을 경우 None을 출력한다.
2. readlines 함수 사용하기
f = open('새파일.txt', 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close()
readlines 함수는 파일의 모든 줄을 읽은 다음, 각각의 줄을 요소로 갖는 리스트로 돌려준다.
따라서 예시의 lines는 리스트 ['1번째 줄입니다.', '2번째 줄입니다.' , ... '10번째 줄입니다.'] 리스트다.
3. read 함수 사용하기
f = open('새파일.txt', 'r')
data = f.read()
print(data)
f.close()
f.read()는 파일의 내용 전체를 문자열로 돌려준다.
따라서 예제의 data는 해당 파일의 전체 내용이다.
# 파일에 새로운 내용 추가하기
쓰기 모드로 파일을 열 때, 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 된다.
하지만 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야 할 경우에는 추가 모드('a')로 열면 된다.
f = open('새파일.txt', 'a')
for i in range(11, 20):
data = "%d번째 줄입니다. \n" % i
f.write(data)
f.close()
# with문과 함께 사용
f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.close()
그 동안의 파일을 실행할 때, 이러한 형식으로 사용해서 파일을 열고 닫았다.
하지만, 파일을 열고 닫는 것을 자동으로 처리하고 싶을 때는 with을 사용하면 된다.
with open("foo.txt", 'w') as f:
f.write("Life is too short, you need python")
이렇게
아 ~ 뭐 이렇게 공부하는 게 맞냐 슬슬 애매해진다.
그래도 오늘 공부 끝 ㅎㅎ
'🐍파이썬 > 📕점프 투 파이썬' 카테고리의 다른 글
13. 클래스 1 (0) | 2020.12.15 |
---|---|
12. 챕터4 연습문제 (0) | 2020.12.15 |
10. 함수 (0) | 2020.12.10 |
9. 제어문 연습문제 (0) | 2020.12.10 |
8. 제어문 - for 문 (0) | 2020.12.10 |