input 사용하기
input()은 사용자가 키보드로 입력한 모든 것을 문자열로 저장한다.
>>> a = input()
Life is too short, you need python # 사용자가 문장을 입력
>>> a
'Life is too short, you need python'
프롬프트를 띄워 사용자 입력받기
사용자에게 "숫자를 입력하세요." or "이름을 입력하세요."라는 안내 문구 또는 질문을 보여주고 싶은 경우 input() 괄호 안에 안내 문구를 입력하여 프롬프트를 띄워주면 된다.
input("안내_문구")
예제)
>>> number = input("숫자를 입력하세요: ")
숫자를 입력하세요: 3
>>> print(number)
3
>>> type(number)
<class 'str'> # input은 입력되는 모든 것을 문자열로 취급하기 때문에 number는 숫자가 아닌 문자열이라는 것에 주의!
Print문 자세히 알기
지금까지 우리가 알던 print 문의 용도는 데이터를 출력하는 것이었다.
데이터를 출력하는 print문의 사용 예시
>>> a = 123
>>> print(a) # 숫자 출력하기
123
>>> a = "Python"
>>> print(a) # 문자열 출력하기
Python
>>> a = [1,2,3]
>>> print(a) # 리스트 출력하기
[1, 2, 3]
큰따옴표로 둘러싸인 문자열은 + 연산과 동일하다.
>>> print("life" "is" "too short")
lifeistoo short
>>> print("life"+"is"+"too short")
lifeistoo short
문자열 띄어쓰기는 쉼표로 한다.
쉼표(,)를 사용하면 문자열을 띄어줄 수 있다.
>>> 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
###
파일 읽고 쓰기
파일 생성하기
경로에 'r'을 붙이면 문자열을 있는 그대로(raw) 해석하게 되어서 \가 특별한 의미를 갖지 않게된다.
즉, 백슬래시를 두번(\\)이나 쓰지 않아도 된다.
그러나, 'r'을 붙이지 않았을 경우 \는 이스케이프 문자로 작동해서 오류가 발생할 수 있다.
'r' / '\\' / '/' 를 사용하자
open() : 파일을 생성하기 위해 파이썬 내장 함수 open 사용
'파일 이름'과 '파일 열기 모드'를 입력값으로 받고 결괏값으로 파일 객체를 리턴한다.
파일_객체 = open(파일_이름, 파일_열기_모드)
파일 열기 모드
r (읽기모드)
: 파일을 읽기만 할 때 사용한다.
w(쓰기모드)
: 파일에 내용을 쓸 때 사용한다.
: 파일을 쓰기모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고 해당 파일이 존재하지 않으면 새로운 파일이 생성된다.
a(추가모드)
: 파일의 마지막에 새로운 내용을 추가할 때 사용한다.
예제
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일2.txt",'w')
>>> f.close() # 열려있는 파일 객체를 닫아주는 역할을 한다.
프로그램을 종료할 때 파이썬 프로그램이 열려있는 파일의 객체를 자동으로 닫아주기 때문에 .close()는 생략도 가능하지만, close()를 사용해서 직접 닫아주는 것이 좋다.
쓰기모드로 열었던 파일을 닫지 않고 다시 사용하면 오류가 발생하기 때문이다.
파일을 쓰기 모드로 열어 내용 쓰기
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt",'w',encoding="utf-8")
>>> for i in range(1,11):
... data = "%d번째 줄업니다.\n" % i
... f.write(data) # data를 파일 객체 f에 써라
... f.close()
파일을 읽는 여러가지 방법
readline 함수 이용하기
- readline()을 사용해서 파일의 첫 번째 줄을 읽어 출력하기
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> line = f.readline()
>>> print(line)
1번째 줄업니다.
- 모든 줄을 읽어서 화면에 출력하고 싶다면,
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> while True:
... line = f.readline()
... if not line:break
... print(line)
... f.close()
...
>>> f.close()
while True: 무한 루프 안에서 f.readline()을 사용해 파일을 계속 한 줄씩 읽어들이고, 더 이상 읽을 줄이 없으면 break를 수행한다.
(readline은 더 이상 읽을 줄이 없을 경우 빈 문자열(' ')을 리턴한다.)
readlines 함수 사용하기
readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 가지는 리스트를 리턴한다.
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> lines = f.readlines()
>>> for line in lines:
... print(line)
... f.close()
줄 바꿈(\n) 문자 제거하기 : strip 함수
: 파일을 읽을 때 줄 끝의 줄 바꿈(\n) 문자를 제거하고 사용해야 할 경우가 많다.
다음처럼 strip 함수를 사용하면 줄 바꿈 문자를 제거할 수 있다.
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> lines = f.readlines()
>>> for line in lines:
... line = line.strip()
... print(line)
... f.close()
...
### 실행 결과
1번쨰 줄입니다.
2번쨰 줄입니다.
3번쨰 줄입니다.
4번쨰 줄입니다.
5번쨰 줄입니다.
6번쨰 줄입니다.
7번쨰 줄입니다.
8번쨰 줄입니다.
9번쨰 줄입니다.
10번쨰 줄입니다.
###
read 함수 사용하기
read()는 파일 내용의 전체를 문자열로 리턴한다.
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> data = f.read()
>>> print(data)
1번쨰 줄입니다.
2번쨰 줄입니다.
3번쨰 줄입니다.
4번쨰 줄입니다.
5번쨰 줄입니다.
6번쨰 줄입니다.
7번쨰 줄입니다.
8번쨰 줄입니다.
9번쨰 줄입니다.
10번쨰 줄입니다.
위 data는 파일의 전체 내용이다.
파일 객체를 for문과 함께 사용하기
파일 객체는 for문과 함께 사용하여 파일을 줄 단위로 읽을 수 있다.
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","r",encoding="utf-8")
>>> for line in f:
... print(line)
... f.close()
...
1번쨰 줄입니다.
2번쨰 줄입니다.
3번쨰 줄입니다.
4번쨰 줄입니다.
5번쨰 줄입니다.
6번쨰 줄입니다.
7번쨰 줄입니다.
8번쨰 줄입니다.
9번쨰 줄입니다.
10번쨰 줄입니다.
파일에 새로운 내용 추가하기 - 'a'
쓰기모드('w')로 파일을 열 때 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 된다.
하지만 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야 할 경우도 있는데,
이런 경우에는 파일을 추가모드('a')로 열면 된다.
>>> f = open(r"C:\Users\wlwlg\OneDrive\바탕 화면\새파일.txt","a",encoding="utf-8")
>>> for i in range(11,20):
... data = "%d번째 줄입니다.\n" % i
... f.write(data)
... f.close()
### 실행 결과
1번쨰 줄입니다.
2번쨰 줄입니다.
3번쨰 줄입니다.
4번쨰 줄입니다.
5번쨰 줄입니다.
6번쨰 줄입니다.
7번쨰 줄입니다.
8번쨰 줄입니다.
9번쨰 줄입니다.
10번쨰 줄입니다.
11번째 줄입니다.
12번째 줄입니다.
13번째 줄입니다.
14번째 줄입니다.
15번째 줄입니다.
16번째 줄입니다.
17번째 줄입니다.
18번째 줄입니다.
19번째 줄입니다.
###
with문과 함께 사용하기
- 파일을 열면 항상 닫아주도록 하자
- write()메서드가 파일에 기록한 문자 수를 반환합니다.
>>> f = open('C:/Users/wlwlg/OneDrive/바탕 화면/foo.txt','w') # 파일 열기
>>> f.write("Life is too short, you need python")
34
>>> f.close() # 파일 닫기
with문을 사용하면 파일을 열고 닫는 것을 자동으로 처리할 수 있다.
with open("C:/Users/wlwlg/OneDrive/바탕 화면/foo.txt","w") as f:
f.write("Life is too short, you need python")
위와 같이 with문을 사용하면 with 블록(with문에 속해있는 문장)을 벗어나는 순간, 열린 파일 객체 f가 자동으로 닫힌다.
프로그램 입출력
C:\Users\wlwlg\OneDrive\바탕 화면>type foo.txt
명령 프롬프트에서 "type 파일명"을 작성하면 type 바로 뒤에 적힌 파일 이름을 인수로 받아 해당 파일의 내용을 출력해주는 명령어이다.
대부분의 명령 프롬프트에서 사용하는 명령어는 다음과 같이 인수를 전달하여 프로그램을 실행하는 방식을 따른다.
명령어 [인수1 인수2...]
sys 모듈 사용하기
파이썬에서는 sys 모듈을 사용하여 프로그램에 인수를 전달할 수 있다.
import sys
args = sys.argv[1:]
for i in args:
print(i)
프로그램 실행 시 전달받은 인수를 for문을 사용해 하나씩 출력하는 예이다.
sys 모듈의 argv는 프로그램 실행 시 전달된 인수를 의미하고, 아래와 같이 입력했다면 argv[0]은 파일 이름인 sys.py가 되고 argv[1] 부터는 뒤에 따라오는인수가 차례대로 argv의 요소가 된다.
C:\Users\wlwlg>python sys.py aaa bbb ccc # python argv[0] argv[1] argv[2] argv[3]
예제)
import sys
args = sys.argv[1:]
for i in args:
print(i.upper(), end = ' ')
### cmd창에서 실행
C:\Users\wlwlg>python sys1.py life is too short, you need python
###
### cmd창 실행 결과
LIFE IS TOO SHORT, YOU NEED PYTHON
###
'Python > Do it 점프 투 파이썬' 카테고리의 다른 글
파이썬 프로그래밍 기초 - 함수 (0) | 2025.04.03 |
---|---|
파이썬 프로그래밍 기초 - for문 (0) | 2025.04.01 |
파이썬 프로그래밍 기초 - while문 (0) | 2025.04.01 |
파이썬 프로그래밍 기초 - if문 (0) | 2025.03.31 |
파이썬 프로그래밍 기초 - 자료형의 값을 저장하는 공간, 변수 (0) | 2025.03.25 |