[4일차] 입력과 출력
2022. 12. 22. 15:41ㆍ데이터 엔지니어링 과정/python
목차
1. 화면출력
2. 키보드 입력
3. 파일 읽고 쓰기
4. 반복문을 이용해 파일 읽고 쓰기
5. with 문을 활용해 파일 읽고 쓰기
1. 화면 출력
1. 문자열 여러개를 연결하여 출력
: 자동으로 공백 발생
print("Best", "python", "book")
>>> Best python book
2. sep 활용
: 공백 대신 다른 문자열
print("Best", "python", "book", sep = "-:*:-")
>>> Best-:*:-python-:*:-book
3. 빈칸없이 문자를 연결할 때 + 사용
print("abcd" + "efg")
>>> abcdefg
4. 콤마와 + 같이 사용
print("Best","python","book"+":","This book")
>>> Best python book: This book
5. 변수에 저장된 내용을 출력할 때
x = 10
print(x)
>>> 10
6. 문자열과 숫자를 함께 출력
name = "James"
ID_num = 789
print("Name:", name + ",", "ID Number:",ID_num)
>>> Name: James, ID Number: 789
7. 개행문자 \n 여러 줄로 출력하기
print("James is my friend. \nHe is Korean")
>>> James is my friend.
>>> He is Korean
8. end 두 줄로 출력된 결과를 한줄로 출력하기
print("Welcome to ", end="")
print("python!")
>>> Welcome to python!
9. 형식 지정 출력
- 나머지 연산자(%)를 이용한 형식 및 위치 지정
- 나머지 연산자를 이용한 데이터의 출력형식과 위치를 지정하는 기본구조
- print("%type"%data)
- print("%type %type"%(data1, data2))
name = "광재"
print("%s는 나의 친구입니다." % name)
>>> 광재는 나의 친구입니다.
r = 3 #변수 r에 정수 데이터 할당
PI = 3.14159265358979 #변수 PI에 실수 데이터 할당
print("반지름: %d, 원주율: %f" % (r,PI)) # 지정된 위치에 데이터 출력
>>> 반지름: 3, 원주율: 3.141593
10. 형식 지정 문자열에서 출력위치 지정
- string.format을 이용하는 형식지정 문자열의 기본 구조
- print("{0},{1},{2}.....{n}"format(data_0,data_1,data_2,.....,data_n))
animal_0 = "cat"
animal_1 = "dog"
animal_2 = "fox"
print("Animal: {0}".format(animal_0))
print("Animal: {0}, {1}, {2}".format(animal_0, animal_1, animal_2))
>>> Animal: cat
>>> Animal: cat, dog, fox
- 출력 위치 변경
print("Animal: {1}, {2}, {0}".format(animal_0,animal_1,animal_2))
>>> Animal: dog, fox, cat
- 정수나 실수 출력 가능
문자열을 변수에 대입한 후 변수를 불러서 출력
실수의 경우 17자리까지 표현되며, 반올림 되어 출력
name = "Tomas"
age = 10
a = 0.1234567890123456789
fmt_string = "String: {0}. Integer Number: {1}. Floating Number: {2}"
print(fmt_string.format(name,age,a))
>>> String: Tomas. Integer Number: 10. Floating Number: 0.12345678901234568
11. 형식 지정 문자열에서 숫자 출력 형식 지정
- 데이터가 숫자일 경우 {N:'출력형식'을 지정하여 다양한 형태로 출력이 가능}
a = 0.1234567890123456789
print("{0:.2f}, {0:.5f}".format(a))
>>> 0.12, 0.12346
🔎 {0:.2f} 에서는 각각 무엇을 의미할까?
➡ {0:.2f} : 여기서 숫자는 format에 몇번째 것을 쓸지를 의미한다! 헷갈리면 안돼!!
➡ {0:.2f} : .2f 앞에는 생략이 되어 있다. 0.2f라고 볼 수 있는건데!! 만약에 5.2f로 쓴다면 숫자가 조금 뒤로 밀리는 걸 볼 수 있다.
앞에 숫자를 입력한 후 온점(.)뒤를 생략한다면 (32f처럼), 소수점 아래 자리수는 6자리까지만 보인다.
2. 키보드 입력
1. data = input("문자열")
yourName = input("당신의 이름은? ")
print("당신은 {}이군요.".format(yourName))
>>> 당신의 이름은?
<<< 오리
>>> 당신은 오리이군요.
2. 숫자 입력
- 숫자를 입력한 예
num = input("숫자를 입력하세요: ")
print("당신이 입력한 숫자는 {}입니다.".format(num))
>>> 숫자를 입력하세요:
<<< 37
>>> 당신이 입력한 숫자는 37입니다.
- 숫자를 연산에 이용하기 위해서는 변환해야 한다.
a = input("정사각형 한 변의 길이는?: ")
area = int(a) ** 2
print("정사각형의 넓이: {}".format(area))
>>> 정사각형 한 변의 길이는?:
<<< 3
>>> 정사각형의 넓이: 9
- 실수의 경우 (정수인지 실수인지 모르는 경우에는 실수로 처리하는 것이 좋음)
b = input("정사각형 한 변의 길이는?: ")
area = float(b) ** 2
print("정사각형의 넓이: {}".format(area))
>>> 정사각형 한 변의 길이는?:
<<< 12.6
>>> 정사각형의 넓이: 158.76
3. 파일 읽고 쓰기
1. 파일 열기
: 내장 함수인 open()을 이용해 파일을 연다.
2. 파일 쓰기
- 폴더로 이동하기 명령 cd C:\myPyCode
- myPycode 말고도 파일을 저장하고 싶은 폴더를 적으면 된다.
- 파일을 쓰기 모드로 열고, 문자열 입력 후 파일 닫기 코드
- 파일쓰기 모드 열기 f=open('내가 만들 파일 제목', 'w')
- 문자열 입력 f.write('내가 적을 내용')
- 파일 닫기 f.close()
f = open('myFile.txt', 'w') #(1) 'myFile.txt' 파일 쓰기 모드로 열기
f.write('This is my first file') #(2) 연 파일에 문자열 쓰기
f.close() #(3) 파일 닫기
- 파일 이름 이용해서 내용 확인하기
!type myFile.txt
>>> This is my first file
3. 파일 읽기
f = open('myFile.txt', 'r') #(1) 'myFile.txt' 파일 읽기 모드로 열기
file_text = f.read() #(2) 파일 내용 읽은 후에 변수에 저장
f.close() #(3) 파일 닫기
print(file_text) #변수에 저장된 내용 출력
>>> This is my first file
4. 반복문을 이용해 파일 읽고 쓰기
1. 파일에 문자열 한 줄씩 쓰기
f = open('two_times_table.txt','w') # (1)파일을 쓰기 모드로 열기
for num in range(1,6): # (2)for문 : num이 1~5까지 실행
format_string = "2 x {0} = {1}\n".format(num,2*num) #저장할 문자열 생성
f.write(format_string) # (3) 파일에 문자열 저장
f.close() # (4)파일 닫기
- 파일 이름으로 내용 확인하기
!type two_times_table.txt
>>> 2 x 1 = 2
>>> 2 x 2 = 4
>>> 2 x 3 = 6
>>> 2 x 4 = 8
>>> 2 x 5 = 10
2. 파일에서 문자열 읽기
- readline() 한 줄 씩 문자열 읽기
f = open("two_times_table.txt") # 파일을 읽기 모드로 열기
line1 = f.readline() # 한 줄씩 문자열을 읽기
line2 = f.readline()
f.close() # 파일 닫기
print(line1, end="") # 한 줄씩 문자열 출력 (줄 바꿈 안 함)
print(line2, end="")
>>> 2 x 1 = 2
>>> 2 x 2 = 4
f = open("two_times_table.txt") # 파일을 읽기 모드로 열기
line = f.readline() # 한 줄씩 문자열을 읽기
while line: # line이 공백인지 검사해서 반복 여부 결정
print(line, end = "") # 문자열 한 줄 출력 (줄 바꿈 안 함)
line = f.readline() # 문자열 한 줄 읽기
f.close() # 파일 닫기
>>> 2 x 1 = 2
>>> 2 x 2 = 4
>>> 2 x 3 = 6
>>> 2 x 4 = 8
>>> 2 x 5 = 10
👂🏻 문자열의 경우, while에 들어가면 1로 True, 문자열이 더이상 못 들어간다면 0으로 False가 된다.
- readlines() 한꺼번에 출력한다.
f = open("two_times_table.txt")
lines = f.readlines()
f.close()
print(lines)
>>> ['2 x 1 = 2\n', '2 x 2 = 4\n', '2 x 3 = 6\n', '2 x 4 = 8\n', '2 x 5 = 10\n']
- for문을 이용하여 전체 읽기
f = open("two_times_table.txt") # 파일을 읽기 모드로 열기
lines = f.readlines() # 파일 전체 읽기(리스트로 반환)
f.close() # 파일 닫기
for line in lines: # 리스트를 <반복 범위>로 지정
print(line, end="") # 리스트 항목을 출력 (줄 바꿈 안 함)
>>> 2 x 1 = 2
>>> 2 x 2 = 4
>>> 2 x 3 = 6
>>> 2 x 4 = 8
>>> 2 x 5 = 10
f = open("two_times_table.txt") # 파일을 읽기 모드로 열기
for line in f.readlines(): # 파일 전체를 읽고, 리스트 항목을 line에 할당
print(line, end="") # 리스트 항목을 출력(줄 바꿈 안함)
f.close() # 파일 닫기
>>> 2 x 1 = 2
>>> 2 x 2 = 4
>>> 2 x 3 = 6
>>> 2 x 4 = 8
>>> 2 x 5 = 10
f = open("two_times_table.txt") # 파일을 읽기 모드로 열기
for line in f: # 파일 전체를 읽고, 리스트 항목을 line에 할당
print(line, end="") # line의 내용 출력 (줄 바꿈 안 함)
f.close() # 파일 닫기
>>> 2 x 1 = 2
>>> 2 x 2 = 4
>>> 2 x 3 = 6
>>> 2 x 4 = 8
>>> 2 x 5 = 10
5. with 문을 활용해 파일 읽고 쓰기
1. with 문의 구조
- 파일 만들기 (myTextFile2 만들기)
with open ('C:\myPyCode/myTextFile2.txt', 'w') as f: #(1) 파일 열기
f.write('File read/write test2: line1\n') #(2) 파일 쓰기
f.write('File read/write test2: line2\n')
f.write('File read/write test2: line3\n')
- for문으로 파일 만들기 (myTextFile3로 만들기)
with open('C:\myPyCode\myTextFile3.txt', 'w') as f: #파일을 쓰기 모드로 열기
for num in range(1,6): #for문에서 num이 1~5까지 반복
format_string = "3 x {0} = {1}\n".format(num, 3*num) #문자열 생성
f.write(format_string) #파일에 문자열 쓰기
- 파일 읽기 (my_TextFile2 읽기)
with open('C:\myPyCode/myTextFile2.txt') as f: #(1) 파일 열기
file_string = f.read() #(2) 파일 읽기
print(file_string)
>>> File read/write test2: line1
>>> File read/write test2: line2
>>> File read/write test2: line3
- for문으로 파일 읽기 (myTextFile3)
with open('C:\myPyCode\myTextFile3.txt','r') as f: #파일을 읽기 모드로 열기
for line in f: #파일 전체를 읽고 리스트 항목을 line에 할당
print(line, end="") #line에 할당된 문자열 출력 (줄 바꿈 안 함)
>>> 3 x 1 = 3
>>> 3 x 2 = 6
>>> 3 x 3 = 9
>>> 3 x 4 = 12
>>> 3 x 5 = 15
'데이터 엔지니어링 과정 > python' 카테고리의 다른 글
[6일차] 객체와 클래스 (0) | 2022.12.27 |
---|---|
[5일차] 함수 (0) | 2022.12.26 |
[3일차] 제어문 (if_for_while) (0) | 2022.12.21 |
[2일차] 변수와 자료형 (0) | 2022.12.20 |
[1일차] 파이썬 계산 (0) | 2022.12.19 |