40. 파이썬 – 클래스와 객체(class and object)

40. 파이썬 – 클래스와 객체(class and object)

파이썬 클래스

클래스와 객체(class and object)

아래는 클래스를 가장 잘 설명해 주는 그림이라고 합니다.

40. 파이썬 - 클래스와 객체

위 그림은 과자를 만드는 과자 틀과 그 과자 틀을 사용해 만든 과자 들입니다.

  • 클래스(class) -> 과자틀
  • 객체(object) -> 과자틀로 만들어 낸 과자들

클래스는 과자틀과 비슷하다고 보시면 됩니다.
똑같은 무언가를 계속해서 만들어 내는 설계 도면이라 보시면 되고(과자틀)
객체는 클래스로 만들어낸 피조물을 의미합니다(과자틀로 만들어 낸 과자들)

클래스(class)의 중요한 특징

클래스의 중요한 특징은 객체마다 고유한 성격을 가진다는 것입니다.
과자틀로 만들어 낸 과자들에 구멍을 내거나 조금 먹는다고 해서 다른 과자들에게 영향을 끼치지 않는 것과 마찬가지로 같은 클래스로 만들어진 객체라고 하더라도 서로 영향을 끼치지 않습니다.

클래스의 간단한 예

아래 코드는 클래스의 가장 간단한 예입니다.

Python
>>> class Snaks:
>>>     pass

위 클래스는 아무런 기능도 하지 않습니다.
그렇다고 하더라도 이런 무기능 클래스도 객체를 생성하는 기능은 가지고 있습니다.
아래는 Snaks 라는 클래스의 객체를 만드는 방법입니다.

Python
>>> a = Snaks()
>>> b = Snaks()

Snaks() 의 결과값을 리턴받은 a 와 b 가 바로 객체(object)입니다.
함수를 사용해서 결과값을 리턴받는 경우와 비슷합니다.

객체와 인스턴스의 차이

클래스로 만든 객체를 인스턴스 라고도 합니다.
객체와 인스턴스에는 차이가 있습니다.
a = Snaks() 라고 만든다면 a 는 객체가 됩니다.
그리고 a 객체는 Snaks 의 인스턴스가 됩니다.
즉 인스턴스라는 말은 어떤 개체(a)가 어떤 클래스(Snaks) 의 객체인지를 관계 위주로 설명할 때 사용됩니다.
a 는 인스턴스 보다 a 는 객체라고 표현하며
a 는 Snaks 의 객체 보다 a 는 Snaks 의 인스턴스 라고 표현합니다.

사칙연산 클래스 만들어 보기 #1

이제 클래스를 직접 만들어 보면 공부를 해 보겠습니다.
먼저 사칙연산을 수행해 주는 클래스를 만들어 보겠습니다.
사칙연산이 더하기, 빼기, 곱하기, 나누기 인건 다들 아시겠죠?

클래스를 어떻게 만들지 먼저 구상

클래스를 무조건 만들기 보다는 클래스로 만들 객체를 중점으로 어떻게 동작시킬 컷인지 먼저 구상을 하고 난 뒤에 이렇게 구상한 것들을 하나 하나 해결해 나가면서 완성하는게 좋습니다.
사칙연산을 가능하게 하는 Four_Calculator 가 동작하는 과정을 상기해 봅니다

우선 a = Four_Calculator() 로 a 라는 객체를 만들어 봅니다

Python
>>> a = Four_Calculator()

그 뒤로 a.testnumber(4, 2) 처럼 입력을 하고 입력된 숫자 4와 2를 a 에 지정해 줍니다

Python
>>> a.testnumber(4, 2)

다음 a.add() 라고 수행을 하면 입력된 두 수 4와 2를 더한 결과 4 + 2 를 리턴을 합니다

Python
>>> print(a.add())
6

만일 a.mul() 을 수행을 하면 입력된 두 수 4와 2를 곱한 결과 4 * 2 를 리턴을 합니다

Python
>>> print(a.mul())
8

그리고 또 a.sub() 를 만나면 입력된 두 수 4와 2를 뺀 결과인 4 – 2 를 리턴을 합니다.

Python
>>> print(a.sub())
2

마지막으로 a.div() 를 만나게 되면 입력된 두 수 4와 2에서 나누기를 한 결과 4 / 2 를 리턴을 합니다

Python
>>> print(a.div())
2

이런 동작들을 하게 만드는 것이 이제부터 만들 Four_Calculator 입니다

이번 포스팅에서는 파이썬 클래스와 객체에 대해 클래스의 특징과 객체와 인스턴스의 차이에 대해 알아봤습니다.
다음 포스팅에 사칙연산을 하는 클래스 Four_Calculator 에 대해 이어서 공부해 보겠습니다

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
40. 파이썬 - 클래스와 객체(class and object)

39. 파이썬 클래스의 정의(class)

39. 파이썬 클래스의 정의(class)

이제 파이썬 클래스와 모듈, 예외처리, 라이브러리 등 핵심적인 내용들에 대해 공부를 진행하겠습니다.
먼저 클래스의 정의와 클래스가 필요한 이유에 대해 알아보겠습니다.

파이썬 클래스

저와 같은 파이썬 초보들에게 파이썬 클래스(class)는 아직까진 하나의 벽이기도 합니다.
클래스가 필요한 이유와 클래스의 정의 등 기초부터 공부해 보겠습니다.

클래스가 필요한 이유

프로그래머들이 가장 많이 사용하는 프로그래밍 언어 중 하나는 C 언어 일겁니다.
그런 C언어에는 클래스가 없습니다.
즉 클래스가 없어도 프로그램을 만드는데 지장은 없다는 뜻이기도 할겁니다.
파이썬으로 만들어진 프로그램을 보더라도 클래스가 없는 프로그램도 상당히 많을 겁니다.
이처럼 클래스는 함수, 자료형 같이 필수 요소는 아니라는 겁니다.

그렇다 하더라도 클래스(class)를 알고 클래스를 적절하게 사용을 한다면 프로그래머가 얻는 이익은 상당할 것입니다.

클래스를 사용하기 전 예제

계산기를 예를 들어보겠습니다. 계산기에 숫자를 입력하고 덧셈이나 뺄셈 등에 따라 기호를 입력한 후 숫자를 하나 더하면 결과를 보여줍니다. 그 상태에서 한번 더 기호를 입력한 후 숫자를 입력하면 기존에 나왔던 결과값에 나중에 입력한 기호와 숫자를 더해 최종 결과를 보여 주게 됩니다.
이렇게 계산기는 결과값들을 메모리 어딘가에 저장하고 있어야 합니다.

이런 내용을 예전에 공부한 함수로 구현해 보겠습니다.
계산기의 더하기 기능을 구현해 봅니다.

Python
result_sum = 0

def add(test_num):
    global result_sum
    result_sum += test_num
    return result_sum

print(add(5))
print(add(7))

위 코드에서 생성한 add 함수는 값을 입력 받아 이전에 값에 값을 더해 리턴 해주는 함수 입니다.
이전에 입력된 값을 유지하기 위해서 result_sum 변수를 전역변수(global) 로 설정 했습니다.
결과는 아래와 같습니다.

Python
5
12

여기서 만약에 하나의 프로그램에서 계산기가 2대가 필요하다면 어떻게 해야 할까요?
각각의 계산기는 각각의 결과값을 유지를 해야합니다.
그래서 add 함수 하나만 가지고는 결과값을 유지 할 수가 없습니다.
이런 상황을 해결하기 위해서는 함수를 따로 만들어야 하는 경우가 생깁니다.

Python
result_sum_1 = 0
result_sum_2 = 0

def add1(test_num):
    global result_sum_1
    result_sum_1 += test_num
    return result_sum_1

def add2(test_num):
    global result_sum_2
    result_sum_2 += test_num
    return result_sum_2

print(add1(5))
print(add1(7))
print(add2(5))
print(add2(8))

위 코드를 보시면 add1 함수와 add2 함수는 똑같은 함수입니다.
그런데 각 함수에서 결과값을 유지하기 위해서 result_sum_1 과 result_sum_2 가 각각 전역 변수로 필요하게 되었습니다.
결과값은 아래와 같습니다.

Python
5
12
5
13

1번 계산기 add1 는 2번 계산기 add2 의 결과에 영향을 끼치지 않는 것을 확인 할 수 있습니다.
그런데 이런 계산기가 더 많이 필요하다면 어떻게 될까요?
그때 마다 전역 변수와 함수를 무한정 추가하기는 어려울 것입니다.
거기에 더하기 뿐만 아니라 곱하기, 빼기, 나누기 등을 추가해야 한다면 훨씬 더 복잡해지겠죠

클래스를 사용한 후의 예제

이런 경우에 클래스가 필요한 겁니다.
아직 클래스에 대해 정확히는 모르지만
아래 코드를 보시면서 클래스에 대한 개념만 아~ 이런 식이구나 하는 정도만 아시면 될 듯 합니다.

Python
class Add_Calculator:
    def __init__(self):
        self.result_sum = 0
    
    def add(self, test_num):
        self.result_sum += test_num
        return self.result_sum

cal1 = Add_Calculator()
cal2 = Add_Calculator()

print(cal1.add(5))
print(cal1.add(7))
print(cal2.add(5))
print(cal2.add(8))

위 코드를 실행해 보면 함수 2개를 사용했을 때와 동일하게 결과가 나오는 걸 확인 할 수 있습니다.

Python
5
12
5
13

Add_Calculator 라는 클래스로 만든 계산기 cal1, cal2 를 파이썬에서는 객체라고 합니다.
그리고 이 객체는 각각의 역할을 수행 하게 됩니다.
계산기 cal1, cal2 의 결과값 역시 독립적으로 값을 유지하게 됩니다.
이렇게 클래스를 사용하게 되면 계산기 대수가 많이 늘어난다고 하더라도 객체를 생성해 주기만 하면 되기 때문에 함수를 무한정 늘리는 것 보다 매우 간단해 지게 됩니다.
Add_Calculator 클래스에 만약 빼기 기능을 추가하고 싶다면 Add_Calculator 클래스에 빼기 기능 함수를 추가만 하면 됩니다.

Python
class Add_Calculator:
    def __init__(self):
        self.result_sum = 0
    
    def add(self, test_num):
        self.result_sum += test_num
        return self.result_sum

    def sub(self, test_num):
        self.result_sum -= test_num
        return self.result_sum

cal1 = Add_Calculator()
cal2 = Add_Calculator()

print(cal1.add(5))
print(cal1.add(7))
print(cal2.sub(5))
print(cal2.sub(8))

위 코드에는 sub 라는 빼기 기능을 더한 함수입니다.
아래 결과를 보시면 빼기 기능을 수행한 값이 나온 걸 볼수 있습니다.

Python
5
12
-5
-13

클래스가 필요한 이유는 이것만도 아니고 이점도 이것만이 아닙니다.
그래도 위 예를 하나만 보더라도 클래스가 필요한 이유는 분명해질 것 같습니다.

이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

39. 파이썬 클래스의 정의(class)

38. 파이썬 4장 연습문제 -오류 수정 / 입력 저장

38. 파이썬 4장 연습문제 -오류 수정 / 입력 저장

4장 연습문제

오류 수정과 입력 저장 등의 문제들을 풀이해 보겠습니다.

4. 다른 출력결과가 나오는 코드를 선택해 보세요

  1. print(“Python’s””favorite””food””is””perl”)
  2. print(“Python’s” + “favorite” + “food” + “is” + “perl”)
  3. print(“Python’s”, “favorite”, “food”, “is”, “perl”)
  4. print(“”.join([“Python’s”, “favorite”, “food”, “is”, “perl”]))

Python
>>> print("Python's""favorite""food""is""perl")
Python'sfavoritefoodisperl
>>> print("Python's" + "favorite" + "food" + "is" + "perl")
Python'sfavoritefoodisperl
>>> print("Python's", "favorite", "food", "is", "perl")
Python's favorite food is perl
>>> print("".join(["Python's", "favorite", "food", "is", "perl"]))
Python'sfavoritefoodisperl

위 결과를 보면 알 수 있듯이 콤마가 있는 경우에는 공백이 생깁니다.
첫 번째 “” 로 둘러싸인 문자열은 문자열 + 연산과 같습니다.
두 번째 는 위 설명대로 “” 로 둘러싸인 문자열과 같습니다.
네 번째는 리스트 요소를 “” 과 각각 합쳐서 출력 하니 역시 첫 번째나 두 번째와 동일합니다.

5. 프로그램 오류 수정 – 2

다음 처럼 test.txt 파일에 “Python’s favorite food is perl” 라고 문자열을 저장 한 뒤 test.txt 파일을 다시 읽어서 출력하는 코드입니다.

Python
file1 = open("test.txt", "w")
file1.write("Python's favorite food is perl")

file2 = open("test.txt", "r")
print(file2.read())

위 코드는 단순하게 예상한 대로 “Python’s favorite food is perl” 문장을 출력하지 않습니다.
예상한 대로 “Python’s favorite food is perl” 문장이 출력 되게 수정해 보세요

위 코드를 그대로 비주얼스튜디오코드에서 입력하고 실행해보면 아무런 결과도 나오지 않습니다.
이유는 파일을 open 했으면 close 를 해줘야 하기 때문입니다.

Python
file1 = open("ex_test.txt", "w")
file1.write("Python's favorite food is perl")
file1.close()

file2 = open("ex_test.txt", "r")
print(file2.read())
file2.close

6. 사용자 입력 저장

사용자가 입력하는 내용을 파일로 저장하는 코드를 작성해 보세요. 파일명은 write_txt.txt 로 하겠습니다.
단, 작성한 코드를 재실행 하더라도 기존에 작성한 내용을 유지하고 새로 입력한 내용을 추가해야 합니다.

Python
txt_input = input("기록할 내용을 입력하세요 : ")
file = open("write_txt.txt", "a") # 모드 a 는 추가 모드 입니다.
file.write(txt_input)
file.write("\n") # 입력한 내용을 줄 단위로 구분하기 위해 줄 바꿈 문자를 넣어 줍니다.
file.close

위 코드를 실행하고 문자 입력후, 재실행 후 문자를 입력 했습니다.

Python
기록할 내용을 입력하세요 : Python's favorite food is perl

기록할 내용을 입력하세요 : python

원하던 대로 기존 문자열을 유지한 채 다음 문자열이 추가가 되었습니다.

38. 4장 연습문제 -오류 수정  입력 저장

7. 파일의 문자열 변경

아래와 같은 문자열을 가진 write_text.txt 파일이 있습니다.
이 파일의 내용중 “java” 라는 문자열을 “python” 으로 바꿔서 저장해 보세요

Python
Python's favorite food is perl
you need java

아래 처럼 코드를 생성해 봅니다
파일을 읽기 모드로 열어서 파일 전체를 txt 라는 변수에 대입합니다.
파일을 닫고 txt 변수 안에 저장된 문자열에서 replace 함수를 사용해 java 를 python 으로 변경합니다.
이번에는 다시 파일을 쓰기 모드로 열어서 저장된 txt 변수의 문자열을 파일에 씁니다.

Python
file = open("write_text.txt", "r")
txt = file.read()
file.close()

txt = txt.replace("java", "python")

file = open("write_text.txt", "w")
file.write(txt)
file.close

8. 입력한 값들을 모두 더하여 출력

다음 처럼 실행을 하면 입력된 값들을 모두 더하는 코드입니다.
D:\test\test_argv.py 파일을 생성해 보세요

D:\> cd test
D:\test> python test_argv.py 1 2 3 4 5 6 7 8 9 10
55

import sys 을 먼저 진행을 해주어야 인수를 전달 할 수 있습니다.
sys 모듈의 argv 를 사용해 주면 됩니다.

Python
import sys

nums = sys.argv[1:] # 파일 이름을 제외한 명령 행의 모든 입력을 받습니다.
tot = 0
for num in nums:
    tot += int(num)
print(tot)

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
38. 4장 연습문제 -오류 수정  입력 저장

37. 파이썬 – 프로그램 입출력(연습문제)

37. 파이썬 – 프로그램 입출력(연습문제)

프로그램 입출력

Dos 명령어에 type 이라는 명령이 있습니다.
type 명령을 사용해 파일이름을 입력 받아 파일의 내용을 출력을 하게 됩니다.

C:\> type test.txt

이렇게 명령 프롬프트에서 사용 되는 명령어들은 인수를 전달하여 프로그램을 실행하게끔 됩니다.
이와 같은 기능을 파이썬에서도 사용할 수가 있습니다.

명령어 [인수 1 인수 2 ...]

sys 모듈

파이썬에서는 sys 모듈을 사용하여 프로그램에 인수를 전달 할 수 있습니다.
sys 모듈은 사용하기 전에 먼저 import 명령어를 사용해야 합니다.

Python
# test.py
import sys

test = sys.argv[1:]
for i in test:
    print(i)

위 코드는 프로그램을 실행하면서 입력 받은 인수를 for 문을 이용해 하나씩 차례대로 출력하는 코드입니다.
위에서 사용된 sys 모듈의 argv 는 프로그램 실행시 전달된 인수를 의미합니다.
argv[0] 은 파일 이름인 test.py 가 되고 argv[1] 부터는 뒤에 따라오는 인수가 차례로 argb 의 요소가 됩니다.


위에 작성된 코드를 명령 프롬프트를 이용해 실행해 보겠습니다.

37. 파이썬 - 프로그램 입출력

명령 프롬프트에서 python test.py aaa bbb ccc 라고 입력을 했습니다.
전달받은 인수를 출력한 걸 볼 수 있습니다.

간단한 코드를 하나 작성 해 보겠습니다

Python
# test_02.py
import sys
test_args = sys.argv[1:]
for i in test_args:
    print(i.upper(), end=' ')

위 코드를 마찬가지로 명령 프롬프트에서 실행해 보겠습니다.

# test_02.py
import sys
test_args = sys.argv[1:]
for i in test_args:
print(i.upper(), end=' ')

위 코드에서 보면 upper() 함수를 사용해 test_02.py 를 실행할 때 전달 한 인수를 모두 대문자로 바꾸어 준걸 확인 할 수 있습니다.

4장 연습문제 풀이

1. 홀수 짝수 판별

자연수를 입력 받아 홀수 인지 짝수 인지 구별하는 함수 is_odd 를 만들어 보세요

Python
>>> def is_odd(num):
...     if num % 2 == 1:
...         return True
...     else:
...         return False
...
>>> is_odd(5)
True
>>> is_odd(8)
False

2. 모든 입력 값의 평균 값 구하기

입력을 받아 모든 수의 평균 값을 구하는 함수를 만들어 보세요
단, 입력으로 들어오는 수의 개수는 정해져 있지 않습니다.

Python
>>> def num_avg(*num):
...     tot = 0
...     for i in num:
...         tot = tot + i
...     avg = tot / len(num)
...     return(avg)
...
>>> num_avg(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
5.5

3. 프로그램 오류 수정 – 1

두 개의 숫자를 입력 받아 더한 값을 출력해 주는 코드 입니다.

Python
input_01 = input("첫번째 숫자 입력 : ")
input_02 = input("두번째 숫자 입력 : ")

tot = input_01 + input_02
print("입력 받은 두 수의 합은 %s 입니다" % tot)
Python
첫번째 숫자 입력 : 5
두번째 숫자 입력 : 7
입력 받은 두 수의 합은 57 입니다

5 와 7 을 입력 했을 때 결과가 57 이 나왔습니다.
정상적으로 5 + 7 의 결과인 12 가 나오게 수정해 보세요

Python
input_01 = input("첫번째 숫자 입력 : ")
input_02 = input("두번째 숫자 입력 : ")

tot = int(input_01) + int(input_02)
print("입력 받은 두 수의 합은 %s 입니다" % tot)

입력이 항상 문자열이라고 공부했었습니다. int 함수를 이용해 정수로 변경 후 출력해 보았습니다.

Python
첫번째 숫자 입력 : 5
두번째 숫자 입력 : 7
입력 받은 두 수의 합은 12 입니다
  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

36. 파이썬 – 파일 읽기.내용 추가하기

지난 포스팅에 이어서 파이썬 파일 읽기와 파일에 내용 추가하기 에 대해 공부해 보겠습니다.

파이썬 입출력

파일 읽고 쓰기

파일을 읽는 여러가지 방법

줄바꿈 문자(\n) 제거하는 방법

파일을 읽어 올 때 줄 끝에 줄 바꿈 문자(엔터값 또는 개행값이라고 합니다) \n 를 제거해야 할 경우가 종종 생깁니다.
다음 코드는 줄 바꿈 문자가 있는 상태에서 그냥 출력해 본 코드입니다.

Python
file = open(r"d:\test\신규파일.txt", 'r')
lines = file.readlines()
for line in lines:
    print(line)
file.close()

결과를 보면 줄 바꿈 문자로 인해 줄 사이에 한 줄씩 비어 있는 것이 보입니다

Python
1 번째 줄 입니다.

2 번째 줄 입니다.

3 번째 줄 입니다.

4 번째 줄 입니다.

5 번째 줄 입니다.

6 번째 줄 입니다.

7 번째 줄 입니다.

8 번째 줄 입니다.

9 번째 줄 입니다.

10 번째 줄 입니다.

다음 코드처럼 strip 함수를 사용해서 줄 바꿈 문자를 제거 해보겠습니다

Python
file = open(r"d:\test\신규파일.txt", 'r')
lines = file.readlines()
for line in lines:
    line = line.strip() # 줄 끝의 줄 바꿈 문자를 제거합니다.
    print(line)
file.close()

줄 바꿈 문자가 제거되어 빈줄 없이 출력이 되었습니다.
그냥 보기에도 확실히 위의 예 보다는 보기가 훨씬 좋습니다.

Python
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
read 함수 사용하기

앞에 포스팅에서 readline 과 readlines 함수를 사용 해봤는데 이번에는 read 함수를 사용해 보겠습니다.

Python
file = open(r"d:\test\신규파일.txt", 'r')
file_view = file.read()
print(file_view)
file.close

아래 결과 처럼 read 함수는 파일 전체 내용을 문자열로 리턴하게 됩니다.
결국 아래 결과가 신규파일.txt 의 전체 내용이라고 보시면 됩니다.

Python
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
파일 객체를 for 문과 함께 사용

파일 객체를 for 문과 함께 사용하는 방법도 있습니다.

Python
file = open(r"d:\test\신규파일.txt", 'r')
for file_view in file:
    print(file_view)
file.close

for 문을 사용하여 파일을 줄 단위로 읽어온 결과입니다.

Python
1 번째 줄 입니다.

2 번째 줄 입니다.

3 번째 줄 입니다.

4 번째 줄 입니다.

5 번째 줄 입니다.

6 번째 줄 입니다.

7 번째 줄 입니다.

8 번째 줄 입니다.

9 번째 줄 입니다.

10 번째 줄 입니다.

파일에 새로운 내용 추가하기

앞선 예제 코드에서는 읽기 모드로(‘r’) 로 파일을 열어 봤습니다.
쓰기모드(‘w’) 로 파일을 열게 되면 이전에 존재하는 내용이 모두 사라진다고 공부했었습니다.
하지만 무조건 적으로 이렇게 모든 내용이 사라지게 하면서 파일을 작성할 수는 없을 겁니다.
이럴때 사용하는 것이 추가모드(‘a’) 입니다.

Python
file = open(r"d:\test\신규파일.txt", 'a')
for i in range(11, 20):
    file_view = "%d 번째 줄 입니다.\n" % i
    file.write(file_view)
file.close

파일이 잘 작성이 되었는지 열어 보겠습니다.
아래처럼 기존에 10번째 까지 작성되었던 파일에 추가로 데이터가 들어간 것을 확인 할 수 있습니다.

36. 파이썬 - 파일 읽기.내용 추가하기

with문 사용하기

지금까지 사용한 파일을 열고 닫는 방식과는 다르게 with 문을 사용하여 파일을 열고 닫아보겠습니다.
이전에는 파일을 open 하면 끝에는 항상 close 를 해주어야 했습니다.

Python
with open(r"d:\test\python_test.txt", "w") as file:
    file.write("Python's favorite food is perl")

with 문을 사용하게 되면 with 문이 속해 있는 문장을 벗어나면 열려있는 파일 객체가 자동으로 close 하게 됩니다.
아래 처럼 파일이 잘 생성된 것을 확인 할 수 있습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

윈도우11 설치된 프로그램 파일 경로 찾기

윈도우11 설치된 프로그램 파일 경로 찾기

시작메뉴 통해 파일 경로 찾기

컴퓨터를 사용을 하다 보면 자주는 아니겠지만 가끔…아주 가끔은
내가 설치한 프로그램이 어디에 설치가 되었는지 파일 경로를 찾아봐야 할 때가 있습니다.

윈도우 10이나 윈도우 11 이나 비슷하긴 하지만 두 윈도우 운영체제의 경우 프로그램을 설치를 하게 되면
윈도우 시작 메뉴에서 프로그램 탭으로 들어가 내가 설치한 프로그램 들을 볼 수가 있습니다.
혹시 시작 메뉴라는 용어를 모르신다면 아래 빨간 박스안에 모양 창 모양 처럼 생긴게 윈도우 시작메뉴입니다^^

윈도우11 설치된 프로그램 파일 경로 찾기

시작메뉴 열기

이제 시작메뉴를 클릭해서 열어줍니다.
아래 화면은 윈도우 11에서 나오는 시작메뉴 화면입니다.
고정된 프로그램들에 내가 찾고자 하는 프로그램이 없다면 우측 상단에 있는 ‘모든앱’ 을 클릭해 줍니다

윈도우11 설치된 프로그램 파일 경로 찾기

파일 경로 찾을 프로그램 선택하기

모든 앱이 열려 있다면 알파벳 순으로 정렬이 되어있는 걸 볼 수 있습니다
아래로 스크롤을 내려 찾고자 하는 프로그램이 보인다면 마우스 오른쪽 버튼을 클릭 해 줍니다.
그럼 아래처럼 메뉴가 간단히 나오는 경우도 있고 바로 ‘파일 위치 열기’ 메뉴가 보이는 경우도 있습니다
파일 위치 열기 메뉴가 바로 보인다면 바로 클릭하시면 되고
아래처럼 메뉴가 가려져 있다면 ‘기타’ 메뉴를 한번 더 클릭 해서 ‘파일 위치 열기’ 메뉴를 선택하시면 됩니다.

윈도우11 설치된 프로그램 파일 경로 찾기

착각하기 쉬운 바로 가기 경로

파일 위치 열기 로 파일의 위치를 열었더니 원하던 프로그램 아이콘도 보이고
여긴가 싶을 수 있습니다
하지만 아래 빨간 동그라미 안에 있는 파일의 유형을 보면 ‘바로 가기’ 입니다.
쉽게 생각해서 바로가기는 말 그대로 바로가기 입니다
프로그램을 다른 경로에서도 바로 실행 할 수 있게 만들어져 있는게 바로가기 입니다.
고로 아래 바로 가기 가 있는 경로는 우리가 원한던 진짜 파일 경로가 아닙니다.

윈도우11 설치된 프로그램 파일 경로 찾기

이제 진짜 파일 경로

바로 가기로 만들어져 있는 프로그램 아이콘을 한번 더 마우스로 우클릭 해서 메뉴를 열어줍니다.
여기서 다시 한번 파일 위치 열기 메뉴를 클릭 해 줍니다

윈도우11 설치된 프로그램 파일 경로 찾기

드디어 파일이 있는 경로가 탐색기에서 열렸습니다.
그런데 주소표시줄을 보면 ‘내 컴퓨터의 사용자 이름 > 파일위치’ 라고만 표시가 되어 있습니다.
보통 생각하면 C:\Program Files 이나 C:\Program Files (x86) 하다 못해 Program Data 라는 폴더도 있는데 보기에 여기가 맞나 싶을 수도 있습니다.
그러나 단순하게 그냥 주소표시줄을 한 번 클릭해 주시면 진짜 파일 경로가 나오게 됩니다.

윈도우11 설치된 프로그램 파일 경로 찾기

자 아래처럼 내가 원하는 프로그램의 설치 경로를 드디어 찾아 왔습니다.

윈도우11 설치된 프로그램 파일 경로 찾기

컴퓨터에 설치된 프로그램의 파일 경로를 찾는 것이 무조건 이 방법만 있는 것은 아닙니다.
제어판을 이용하는 경우도 있고 레지스트리를 이용하는 방법도 있습니다.
제가 올려 둔 방법은 보통 제어판을 건드리는 사람이 많이 없고
더더군다나 레지스트리를 건드리는 사람은 더더욱 많이 없죠

내가 프로그램을 설치 프로그램을 이용해서 설치 했다면 대부분 지금은 시작메뉴에 프로그램 목록에 등록이 되고 단순히 윈도우 시작 메뉴를 클릭해서 클릭 몇 번으로 파일 위치를 찾아갈 수 있기 때문에 올려 봤습니다.

제어판으로 파일 경로 찾기

그럼 제어판에서 파일 경로는 어떻게 찾을까 한 번 살펴보겠습니다.
‘윈도우키 + r’ 로 실행창을 열어 ‘control’ 이라고 입력 하면 제어판이 열립니다.

윈도우11 설치된 프로그램 파일 경로 찾기

이렇게 제어판이 열리면 프로그램 이라는 큰 아이콘이 있고 밑에 프로그램 제거 를 선택하세요
바로 프로그램 제거가 되고 하는건 아니니 걱정은 안하셔도 됩니다.

윈도우11 설치된 프로그램 파일 경로 찾기

프로그램 제거 또는 변경 이라고 창이 열렸습니다.
위쪽 빨간 박스 안쪽에서 마우스로 오른쪽 버튼을 클릭 해줍니다.
그럼 아래처럼 나오는 메뉴에서 자세히 를 클릭해 줍니다.

윈도우11 설치된 프로그램 파일 경로 찾기

그럼 아래처럼 목록 오른쪽에 파일 위치가 표시되는 걸 확인 할 수 있습니다.
목록이 안나오는 항목들은 레지스트리 에서 볼 수 있으나 레지스트리에 대해 잘 아시는게 아니시라면 레지스트리는 가급적 안 건드리시는게 좋을 듯 합니다.

윈도우11 설치된 프로그램 파일 경로 찾기

레지스트리에서 파일 경로 찾기

그래도 굳이 레지스트리에서 파일 경로를 봐야 겠다 하시는 분들은 참고 하시기 바랍니다.
제어판을 열었던 방식으로 이번에는 레지스트리 편집기를 열어보겠습니다.
윈도우키 + r 을 눌러 실행창에 regedit 를 입력하신 뒤 엔터를 치시면 레지스트리 편집기가 열립니다.

윈도우11 설치된 프로그램 파일 경로 찾기

아래 경로를 찾아 Uninstall 을 클릭 해 봅니다

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Uninstall 아래로 쭉 요상한 글자들이 나오는데 하나 하나 클릭해 보시면 우측에 정보들이 나옵니다.
우측에 나오는 데이터 필드에서 찾고자 하는 파일 위치를 찾아 볼 수 있습니다.

윈도우11 설치된 프로그램 파일 경로 찾기

이렇게 윈도우 11 에서 설치된 프로그램의 파일 경로를 찾아봤습니다.

파이썬 아나콘다 자동실행 Batch 만들기

파이썬 아나콘다 자동실행 Batch 만들기

아나콘다 자동실행 Batch 를 왜 만들려 하시나요?

저같은 경우엔 무언가 자동화 프로그램을 만들고 싶어 파이썬을 공부하기 시작했습니다
그런데 파이썬으로 프로그래밍을 한 뒤 만들어진 코드를 매일 반복 작업을 하려니
아무것도 모르는 상태에서는 어지간히 번거로운 게 아닙니다.
자동화를 하고 싶어서 프로그래밍을 하는데
그 자동화를 매일 수작업으로 돌려줘야 한다는 슬픈 현실

아나콘다 자동실행 Batch

기존에 파이썬으로 프로그래밍을 할 때 아나콘다를 설치하고 가상환경을 설정한 뒤에
그 가상환경에서 진행하는 것에 대해서 알아봤었습니다.
가상환경에서 진행하는 이유에 대해서는 이전 포스팅을 참고하시면 됩니다.

아나콘다 환경에서 내가 만든 코드를 자동실행 Batch 로 만드는 방법에 대해 알아보겠습니다.
기본 구성은 아래처럼 구성하시면 됩니다.
아래의 코드를 메모장 같은 문서편집기에서 작성하신후
배치파일이름.bat 이런식으로 저장해주시면 됩니다.

set root=[아나콘다 설치 경로]
call %root%\Scripts\activate.bat %root%

call conda activate [설정할 가상환경 이름]
call cd [아나콘다 자동실행 Batch 로 실행할 파이썬 파일이 있는 경로]
call python [실행할 파이썬 파일이름].py

pause

아나콘다 설치 경로

윈도우 10 이나 윈도우 11 이전에는 프로그램을 설치를 하게 되면 거의 대부분이
C:\Program Files 이나 C:\Program Files (x86) 에 설치가 되었습니다.
윈도우가 32비트냐 64비트냐 구분지어서 위처럼 경로가 지정이 되었습니다.
물론 더 그 이전에는 C:\Program Files (x86) 라는 폴더는 필요가 없었죠
어쨌든 지금은 C:\Program Files 이나 C:\Program Files (x86) 도 아닌 다른 폴더에 프로그램이 설치되는 경우가 많습니다.
예를 들면 C:\Users\사용자명\ 처럼 사용자 폴더 밑에 있는 사용자명 폴더에 설치되는 경우가 많습니다.
그래서 설치된 프로그램 경로를 찾으려면 헤매는 경우도 종종 생기기도 합니다.

이럴 때 고민하지 말고 시작메뉴를 눌러봅니다

파이썬 아나콘다 자동실행 Batch 만들기

저 같은 경우는 윈도우 11 이기 때문에 위 화면 처럼 나옵니다.
윈도우 10이라고 하더라도 별반 다르지 않으니 자세한 설명은 생략하겠습니다.
모든 앱 에서 내가 찾고자 하는 아나콘다 프로그램을 찾기 위해 스크롤을 내려 줍니다.
알파벳 순이라 앞쪽에 있네요
아나콘다 네비게이터든 프롬프트든 상관이 없습니다.
어차피 같은 폴더에 있을테니깐요
파일을 선택에 마우스 우클릭을 해줍니다.
그리고 나오는 메뉴에서 기타 를 클릭한뒤
다시 나오는 메뉴에서 파일 위치 열기 를 클릭 해 줍니다.

파이썬 아나콘다 자동실행 Batch 만들기

아래처럼 폴더가 열렸습니다.
그런데 여기서 주의할 점은 지금 열린 폴더는 실제 프로그램이 설치된 폴더가 아니라
아래 동그라미 안에 파일 유형 처럼 바로가기가 만들어진 경로 입니다.

파이썬 아나콘다 자동실행 Batch 만들기

그래서 한번 더 아이콘에서 우클릭을 한번 더 해서 파일 위치 열기를 해줍니다

파이썬 아나콘다 자동실행 Batch 만들기

이제 실제로 아나콘다가 설치 된 경로가 열렸습니다.

파이썬 아나콘다 자동실행 Batch 만들기

위에 빨간 박스로 표시해둔 주소표시줄을 클릭 해줍니다.
그럼 아래 처럼 실제 경로가 선택이 됩니다.
컨트롤+C (Ctrl + c) 로 복사해 주시면 됩니다.

파이썬 아나콘다 자동실행 Batch 만들기

이제 아나콘다 경로를 몰라서 못하시는 없어야 합니다

가상환경 이름 설정(conda env list)

다음은 가상환경 이름 설정입니다.
가상환경 이름 설정은 간단합니다
명령프롬프트를 열어서 아래 명령어를 입력하면 가상환경 리스트가 나오게 됩니다

conda env list

파이썬 아나콘다 자동실행 Batch 만들기

저의 경우에는 ‘py_study_3110’ 이라는 가상환경으로 작업을 진행하기에 py_study_3110 으로 설정했습니다.

파이썬 아나콘다 자동실행 Batch 파일 실행

이제 만들어진 ㅇㅇㅇㅇ.bat 파일을 더블클릭해서 실행시키시면 됩니다.

  • 위 내용은 매직블럭 님의 블로그를 참조했습니다.

35. 파이썬 – 파일 읽고 쓰기(내용 쓰기.파일 읽기)

35. 파이썬 – 파일 읽고 쓰기(내용 쓰기.파일 읽기)

이전 공부 내용에서는 파일을 생성하는 것 까지 진행을 해보았습니다.

이번에는 생성된 파일을 쓰기 모드로 열어 내용 쓰기에 대해 공부해 보겠습니다

파이썬 입출력

파일 읽고 쓰기

쓰기 모드로 파일을 열고 내용 쓰기

이전 포스팅에서는 파일을 쓰기 모드로 열어보는 것을 해봤습니다. 그 안에 내용은 쓰지 않았죠.
이번에는 문자열을 파일에 쓰는 것을 해보겠습니다.

Python
# write_test.py
file = open(r"d:\test\신규파일.txt", 'w')
for i in range(1, 11):
    text = "%d 번째 줄 입니다.\n" % i
    file.write(text)
file.close()

위에 코드를 실행하고 해당 경로로 가서 파일을 열어보면 아래처럼 결과가 나옵니다.

Python
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.

다른 코드를 살펴보겠습니다.

Python
for i in range(1, 11):
    data = "%d 번째 줄 입니다.\n" % i
    print(data)

위 코드의 결과는 아래와 같습니다.

Python
1 번째 줄 입니다.

2 번째 줄 입니다.

3 번째 줄 입니다.

4 번째 줄 입니다.

5 번째 줄 입니다.

6 번째 줄 입니다.

7 번째 줄 입니다.

8 번째 줄 입니다.

9 번째 줄 입니다.

10 번째 줄 입니다.

앞서 open을 사용해 쓰기모드에서 내용을 쓴 코드와 그 다음 print 문으로 출력한 코드의 차이점은 data 를 출력하는 방식입니다.
두 번째 방식은 이전에 계속 진행했었던 모니터 화면에 출력하는 방식이고,
첫 번째 방식은 모니터 화면대신 생성한 파일에 쓰기모드로 열어 데이터를 입력하는 방식입니다.
print 대신 파일 객체인 file 의 write 함수를 사용한 것 말고는 차이가 거의 없습니다.

그리고 똑같이 줄바꿈을 해줬는데 write 함수를 썼을 때는 정상적으로 한번의 줄바꿈으로 표현이 되어 있는데 print 문을 썼을 때는 for 문으로 반복해서 진행을 하다 보니 줄바꿈이 한번 더 표현이 된 듯 합니다.

파일 읽기의 여러 가지 방법

파일을 읽는 방법에는 여러가지가 있습니다.

readline 함수 이용

먼저 reading 함수를 사용하는 방법에 대해 알아보겠습니다.

Python
# reading_test.py
file = open(r"d:\test\신규파일.txt", 'r')
line = file.readline()
print(line)
file.close()

위 코드를 보면 신규파일.txt 를 읽기모드 ‘r’ 로 파일을 열고 readline() 명령을 사용해서 해당 파일의 첫 번째 줄을 읽어 화면에 보여주는 기능을 하고 있습니다.
기존에 만들어 놨던 신규 파일이 그대로 있으면 그 파일의 첫 번째 줄을 화면에 출력합니다.

Python
1 번째 줄 입니다.
readlines 함수 이용

여기서 만약 첫 번째 줄만이 아니라 전체 줄을 화면에 출력하려면 어떻게 할까요?

Python
# reading_all_test.py
file = open(r"d:\test\신규파일.txt", 'r')
while True:
    line = file.readlines()
    if not line: break
    print(line)
file.close()

위 코드를 실행해 보면 이전에 print 문으로 출력 했던 것과 동일하게 나오는 것을 확인 할 수 있습니다.

Python
['1 번째 줄 입니다.\n', '2 번째 줄 입니다.\n', '3 번째 줄 입니다.\n', '4 번째 줄 입니다.\n', '5 번째 줄 입니다.\n', '6 번째 줄 입니다.\n', '7 번째 줄 입니다.\n', '8 번째 줄 입니다.\n', '9 번째 줄 입니다.\n', '10 번째 줄 입니다.\n']

readlines 함수를 사용하면 파일의 모든 줄을 읽어서 하나의 줄 씩 리스트 요소로 가지고 있게 됩니다.
직전에 사용했던 readline 함수와 차이점은 끝에 ‘s’ 가 하나 더 붙어 있다는 걸 유의해야 할 듯 합니다.

다음 포스팅에서는 파일 읽기의 여러가지 방법에 대해 좀 더 알아보겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

34. 파이썬 – 파일 읽고 쓰기(파일 생성)

34. 파이썬 – 파일 읽고 쓰기(파일 생성)

여태까지 공부한 내용들에서 입력을 받을 때는 사용자가 직접 입력하는 방식을 사용하고, 출력 할 때는 화면에 출력을 했습니다.


그러나 입출력 방식이 꼭 이렇게만 있는 것은 아닙니다.
이번 시간에는 파일을 통해서 입출력 하는 방식에 대해 공부해 보겠습니다.
파일을 새로 만들고 프로그램에서 나온 결과값을 역시 새 파일로 출력해 보겠습니다.
또한 파일에 기록된 내용을 읽고, 새로운 내용을 추가하는 방법도 공부해 보겠습니다.

파이썬 입출력

파일 읽고 쓰기

파일 생성

다음 코드를 실행해 보겠습니다.

Python
file = open("신규파일.txt", "w")
file.close()

위 코드를 실행해 보면 프로그램이 실행된 디렉토리에 파일이 하나 생성 된 것을 확인 할 수 있습니다.

34. 파이썬 - 파일 읽고 쓰기

위 코드에서 사용된 open 은 내장함수로 파일을 생성하기 위해 사용되었습니다.
open 함수는 아래 형식처럼 ‘파일 이름’과 ‘파일 열기 모드’를 입력받고 결과값으로 파일 객체를 리턴하게 됩니다.

파일 객체 = open(파일 이름, 파일 열기 모드)
파일 열기 모드

파일 열기 모드에는 여러가지가 있습니다.

  • r – 읽기 모드 : 파일을 읽기만 할때 사용됩니다.
  • w – 쓰기 모드 : 파일에 내용을 기록하고자 할 때 사용됩니다.
  • a – 추가 모드 : 파일의 마지막에 새로운 내용을 추가 하고자 할 때 사용됩니다.

주의 해야 할 건 파일을 쓰기 모드로 열게 되면 이미 파일이 존재할 경우에 원래의 내용은 모두 없어지고, 파일이 존재하지 않는다면 새로운 파일이 생성된다는 것입니다.
위 예제로 나온 코드는 해당 폴더에 파일이 없는 상태에서 신규파일.txt 를 쓰기 모드 ‘w’로 열었기 때문에 신규파일.txt 라는 이름의 새로운 파일이 현재 폴더에 생성된 것입니다.
만일 신규파일.txt 를 다른 폴더에 생성하려 한다면 아래처럼 하시면 됩니다.

Python
file = open("D:/test/신규파일.txt", "w")
file.close()

하지만 위처럼 다른 폴더를 선택해서 파일을 만들려고 한다면 해당 경로에 폴더는 이미 생성이 되어있어야 오류가 안날겁니다.
그리고 위 코드에서 사용되는 file.close() 명령은 열려 있는 파일의 객체를 닫아 주라는 의미입니다.
이 문장은 생략해도 되긴 합니다.
왜냐면 파이썬에서는 프로그램을 종료할 때 파이썬 프로그램이 열려있는 파일의 객체를 자동을 닫아주기 때문입니다.
그러나 그렇다고 해도 close()를 사용해서 직접 열려있는 파일을 닫아 주는 것이 좋습니다.
이유는 쓰기모드로 열었던 파일을 닫지 않고 다시 사용하려고 한다면 오류가 발생할 수 있기 때문입니다.

파일 경로와 슬래시(/)

보통 윈도우에서 파일 경로를 표현 할 때는 경로에 역슬래시(\) 를 사용해 D:\ 식으로 표현을 합니다.(실제 화면상에서는 \ 로 보이기도 합니다.)
하지만 위 코드에서는 슬래시(/)를 사용해 D:/test/신규파일.txt 라고 표현 했습니다.
만약 역슬래시를 사용해 경로를 표현하고자 한다면 D:\\test\\신규파일.txt 처럼 역슬래시 2개를 연달아 붙여서 사용합니다.
또 다른 방법으로는 r”D:\test\신규파일.txt” 이라고 표현을 해주면 문자열 앞에 위치한 r 문자(Raw String)와 문자열이 만나 경로를 표현해 주게 됩니다.
이런식으로 표현을 안 해주면 “D:\new\test\신규파일.txt” 처럼 \n 이스케이프 문자가 있을 경우에 줄바꿈 문자로 잘못 판단 되어 엉뚱한 파일 경로로 판단할수 있기 때문입니다.

이번 시간에는 파일 입출력 중 파일 읽고 쓰기의 첫번째 시간으로
파일을 생성하는 방법에 대해 공부해 봤습니다.
다음 시간에는 파일을 쓰기 모드로 열어서 내용을 쓰는 방법에 대해 공부해 보도록 하겠습니다.

이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

34. 파이썬 - 파일 읽고 쓰기(파일 생성)

33. 파이썬 사용자 입출력

33. 파이썬 사용자 입출력

지난 시간까지 파이썬 함수에 대해서 공부해 봤습니다.
이번 포스팅에서는 파이썬 사용자 입출력(입력과 출력)에 대해 공부해 보도록 하겠습니다.

사용자 입출력

대부분의 프로그램들은 사용하는 사람의 입력을 받아 그에 따른 결과를 출력하게 됩니다.
인터넷 게시판에 글을 쓴 다음에 확인 버튼을 클릭해야만 글이 정상적으로 게시판에 올라가는 것이 대표적인 예가 되겠습니다.
앞서 입출력이 어떤 의미인지 공부 했었습니다.
이제 더 다양한 입력과 출력 방법에 대해 공부 해 보겠습니다.

사용자 입력

항상 변수에 값을 먼저 대입해 놓고 프로그램이 동작하는것은 아닙니다
사용자에게서 값을 입력받아 변수에 대입을 해야 하는 경우가 더 많을수 있습니다.

input 사용하기

Python
>>> i = input()
Python's favorite food is perl
>>> i
"Python's favorite food is perl"

위 코드처럼 input 은 사용자에게서 키보드로 입력 받아서 문자열로 저장을 하게 됩니다.

프롬프트를 띄워서 입력받기

프로그램을 실행 시켜서 사용자에게 “숫자를 입력하세요”, “이름을 입력하세요” 라고 하는 안내 문구나 질문이 나오도록 할 때 input() 안 괄호 안에 안내문구를 입력하여 프롬프트를 띄워줄 수 있습니다.

input("안내문구")
Python
>>> number = input("정수를 입력하세요: ")
정수를 입력하세요: 

위 코드를 실행 해 보면 프롬프트에 숫자 5을 입력하면 변수 number 에 숫자 5가 대입이 됩니다.
이후에 print(number)로 출력을 해볼 수 있습니다.

Python
>>> number = input("정수를 입력하세요: ")
정수를 입력하세요: 5
>>> print(number)
5
>>>

그런데 여기서 확인 해 봐야 할 것이 있습니다.
숫자 5를 입력해서 숫자가 나오는 걸 봤습니다.
그럼 print 되어 나온 5는 정말 숫자 일까요?

Python
>>> type(number)
<class 'str'>
>>>

type 명령어를 통해 변수 number 를 확인해 보면 문자열이라고 나옵니다.
input 명령은 입력되는 모든 것을 문자열로 취급 한다는 것을 알고 있어야 할 것 입니다.

print 에 대하여

print 라고 하면 그냥 딱 봐도. 그리고 우리가 알고 있는 것도 데이터를 출력하라는 용도로 알고 있습니다.
print 문을 통해 데이터를 출력하는 사용 예를 보겠습니다.

Python
>>> i = 456
>>> print(i)
456
>>> r = "rainbow"
>>> print(r)
rainbow
>>> l = [4, 5, 6]
>>> print(l)
[4, 5, 6]
큰 따옴표(“)로 둘러싸인 문자열은 + 연산과 동일
Python
>>> print("Python's " "favorite " "food " "is" " perl") # 1. 큰 따옴표로 둘러싼 문자열
Python's favorite food is perl
>>> print("Python's " + "favorite " + "food " + "is" + " perl") # 2. + 문자열 + 연산
Python's favorite food is perl

1번 코드와 2번 코드의 결과값이 동일한 것을 알 수 있습니다.

문자열 띄어쓰기는 콤마 사용
Python
>>> print("Python's", "favorite", "food", "is", "perl")
Python's favorite food is perl

이전 큰 따옴표로 둘러싼 문자열과 + 연산을 한 코드에서는 띄어쓰기를 위해 “” 안에 띄어쓰기를 해주었습니다.
그런데 콤마(,)를 사용하면 큰따옴표(“”) 안에 띄어쓰기가 되어 있지 않아도 콤마로 인해 띄어쓰기가 되어 있는 걸 볼 수 있습니다.

한 줄에 결과값 출력

예전 구구단 을 만들기 위하여 for 문을 사용했을 때 보았듯이 한 줄에 결과값을 계속해서 출력하게 하려면 매개변수 end 를 사용해서 끝문자를 지정해 준 적이 있습니다.

Python
>>> for i in range(30):
...     print(i, end=' ')
...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 >>>

위의 코드를 보는 것처럼 end 매개변수의 초기값은 줄바꿈 문자(\n) 입니다.

이렇게 파이썬 사용자 입출력에 대해 공부해 봤습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
33. 파이썬 사용자 입출력