WeniVooks

검색

견고한 파이썬

입력과 출력

1. 입력함수 input

Python의 input 함수는 사용자로부터 키보드 입력을 받을 수 있게 합니다.

1.1 기본 예시
age = input('나이를 입력해주세요.') print(age + age) # 이어붙입니다.

실행 버튼을 누르고 10을 입력해보세요. 10을 숫자로 더하지 않고 문자열로 이어붙이기 때문에 1010이 출력됩니다.

입력 대기 창을 프롬프트라고 부릅니다.

프롬프트는 여러분의 입력을 대기하는 상태를 얘기합니다. 이러한 프롬프트에서는 사용자의 입력을 받아 해당 명령을 수행합니다.

프롬프트 엔지니어링이라는 얘기를 들어보셨나요? ChatGPT와 같은 대화형 AI에서 사용자의 입력을 최적화하고, 어떻게 하면 더 좋은 출력 결과를 이끌어 낼 수 있을지를 고민하는 분야입니다. 쉽게 말해 사용자의 input을 어떻게 효과적으로 처리하고 관리하는지에 대한 엔지니어링입니다.

2. 출력함수 print

파이썬에서 화면에 텍스트나 변수의 값을 출력하려면 print 함수를 사용하면 됩니다. 다만 우리가 사용하는 위니북스colab은 마지막 라인에 한하여 print를 쓰지 않아도 출력합니다.

2.1 한 줄 출력
print('출력합니다.')
2.2 여러 줄 출력

print 함수를 연속해서 여러 번 사용하면, 각각의 출력이 새로운 줄에 표시됩니다.

print('출력합니다.') print('출력합니다.')
2.3 자동 출력

구글 코랩과 위니북스의 경우 마지막 줄의 값을 자동으로 출력합니다. 따라서 print 함수를 생략해도 해당 값이 출력됩니다.

'출력합니다.'

이 기능은 디버깅이나 데이터 분석 중간 결과 확인 등에서 유용하게 사용됩니다. 위의 코드처럼 출력하지 않고 다음 코드처럼 여러 줄 작성할 때는 print를 적지 않더라도 마지막 라인에 한하여 출력되기 때문에 '출력합니다.'가 한 번 출력되는 것을 확인할 수 있습니다. 2.2 여러 줄 출력 코드와 비교해보시길 바랍니다.

'출력합니다.' '출력합니다.'

이러한 출력 방식은 코드의 오류를 확인하는 디버깅이나 코드 중간 결과 확인 등에서 유용하게 사용됩니다.

2.4 print의 여러 옵션

print 함수는 콤마로 구분된 여러 개의 값을 동시에 출력할 수 있습니다. 각 문자 사이에 "Hello", "World", "!" 사이에 콤마 다음 띄어쓰기가 들어갑니다. 기본적으로 콤마를 찍으면 여러 개의 값을 띄어쓰기로 연결할 수 있습니다.

print("Hello", "World", "!")

이 예제에서, print 함수는 "Hello", "World", "!" 세 값을 콘솔에 출력합니다.

print 함수는 여러 옵션을 활용할 수 있습니다. 그 중 하나인 sep를 사용하면 값들 사이의 구분자를 원하는 문자로 지정할 수 있습니다. 만약, 띄어쓰기가 아닌 것으로 연결을 시키고 싶을 경우 sep을 이용합니다.

print("010", "0000", "0000", sep="-")

이 예제에서는 sep 옵션을 사용하여 각 값 사이에 -를 삽입하여 출력합니다. 따라서 출력 결과는 010-0000-0000이 됩니다.

sep 말고도 자주 사용하는 것은 end가 있습니다. end를 사용하면 마지막에 어떤 문자를 추가할지 결정할 수 있습니다. 기본적으로 마지막에는 개행(\n, 줄 바꿈)이 들어가 있습니다.

print("010", "0000", "0000", sep="-", end='???') print("010", "0000", "0000", sep="!")

3. 문자열 포매팅

문자열 포메팅은 문자열 내에 특정 값을 삽입하는 방법입니다. 이러한 방식은 특히 print 함수 안에 들어가는 문자열을 생성할 때 유용합니다.

파이썬에서는 여러 가지 문자열 포매팅 방법을 지원합니다. 이 중에 가장 최근에 나온 f-string 방법이 가장 간단하고 직관적이라 많이 사용됩니다. 여기서는 f-string에 기본적인 내용만 다루고 상세한 내용은 chater14.5챕터에서 다루도록 하겠습니다.

3.1 % 기호를 이용한 포매팅

% 기호를 이용한 포매팅은 다음과 같이 사용합니다.

name = "Licat" age = 10 print("이름: %s, 나이: %d" % (name, age))
3.2 format 메소드를 이용한 포매팅

format 메소드를 이용한 포매팅은 다음과 같이 사용합니다.

name = "Licat" age = 10 print("이름: {}, 나이: {}".format(name, age))
3.3 f-string을 이용한 포매팅

f-string을 이용한 포매팅은 다음과 같이 사용합니다.

name = "Licat" age = 10 print(f"이름: {name}, 나이: {age}")

4. print와 마지막 라인 출력의 차이

여기서 다루는 것처럼 print로 출력하는 것과 마지막 라인 출력은 실제로는 다른 값을 출력할 수도 있습니다. 이 부분은 class에서 다루도록 하겠습니다.

여기서 기억해야 할 점은 print 함수로 출력값과 마지막 라인 출력값이 완전히 동일하지는 않다는 것입니다.

class Character: def __str__(self): return 'a' def __repr__(self): return 'b' hero = Character() print(hero) hero

5. None은 마지막 라인에서 출력하지 않는다.

뒤에서 배울 None이라는 값은 print를 사용하지 않으면 출력되지 않습니다.

a = None a

이는 함수도 마찬가지입니다.

def f(): return None f()
{"packages":["numpy","pandas","matplotlib","lxml"]}
3.2 주석4장 타입