반응형
Notice
Recent Posts
«   2025/03   »
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
30 31
Today
Total
관리 메뉴

오식랜드

[python] 입출력 본문

dev-log/python

[python] 입출력

개발하는 오식이 2023. 1. 9. 14:48
반응형

문자열

다음 두 문장의 출력 결과는 어떻게 될까요?

print("Python", "Java")

print("Python" + "Java")

첫 번째 문장은 콤마(,) 로 문자열들을 구분하였고 두 번째 문장은 더하기(+) 기호로 문자열들을 합쳤습니다.

실행시켜보면 이런 결과를 확인할 수 있습니다. 띄어쓰기가 되느냐 마느냐의 차이네요.

 

사실 print() 문에서는 문자열들을 구분하는 방법을 사용자가 직접 정의할 수 있습니다.

바로 sep 입니다. 분리 기호를 의미하는 separator 의 줄임말이죠.

  • sep
print("Python", "Java", sep=",") # 값들을 콤마(,) 로 구분

각 값들을 무엇으로 구분할지를 정해서 sep= 의 값으로 설정하면 되는데 여기서는 콤마(,) 로 했습니다.

조금 더 확실히 확인하기 위해서 이번에는 " vs " 라는 문자열로 구분지어보겠습니다. 이해를 돕기 위해 JavaScript 도 하나 추가해볼게요.

print("Python", "Java", "JavaScript", sep=" vs ") # 값들을 " vs " 로 구분

  • end

print() 는 기본적으로 문장이 끝날때마다 줄바꿈을 하기 때문에 연속적으로 2개 이상의 print() 를 이용하면 각각의 줄에 내용이 출력됩니다. 하지만 이를 한 줄에 모두 엮어서 출력하려면 end=" " 와 같이 하면 되지요.

print("Python", "Java", sep=",", end="?")
print("무엇이 더 재밌을까요?")

Python 과 Java 라는 각각의 문자열을 sep="," 을 통해서 콤마(,) 로 구분하고, end="?" 를 통해서 print() 문의 마지막을 물음표(?) 로 하였기 때문에 두 번째로 나오는 문장은 연이어서 한 줄에 출력되는 것이죠.

사전

  • items()

dictionary에서는 변수.items()로 출력해보면 튜플로 변환되어 나옵니다

scores = {"수학":0, "영어":50, "코딩":100}
print(scores.items())

# dict_items([('수학', 0), ('영어', 50), ('코딩', 100)])

  • items() + for

그리고 items를 for문에 이용해보면 이렇게 쓸 수 있습니다

scores = {"수학":0, "영어":50, "코딩":100}
print(scores.items())
for subject, score in scores.items(): # key, value
    print(subject, score)

출력은 위와 같이 나오게 되는데, 이 때 각각 subject와 score의 글자정렬을 바꿔줄 수 있습니다.

  • ljust() : 왼쪽 정렬(left)
  • rjust() : 오른쪽정렬(right)
scores = {"수학":0, "영어":50, "코딩":100}

for subject, score in scores.items():
    print(subject.ljust(8), str(score).rjust(4), sep=":")

  • zfill()

예를 들어 은행 대기번호를 출력해보도록 하겠습니다.

for num in range(1, 21): # 1~20 까지의 숫자
    print("대기번호 : " + str(num))

실행 결과로는 아래처럼 나옵니다

대기번호 : 1

대기번호 : 2

대기번호 : 3

-생략-

대기번호 : 18

대기번호 : 19

대기번호 : 20

이를 실제 은행의 대기 번호표와 같이 바꿔보겠습니다.

여기서 사용할 zfill() 은 함께 전달해주는 숫자만큼의 공간을 확보하고 그 공간을 zero 로, 즉 0 으로 채워주는(fill) 동작을 합니다.

for num in range(1, 21): # 1~20 까지의 숫자
    print("대기번호 : " + str(num).zfill(3))

대기번호 : 001

대기번호 : 002

대기번호 : 003

-생략-

대기번호 : 018

대기번호 : 019

대기번호 : 020

실행 결과는 훨씬 모양새가 좋습니다.

 

 

출처 : https://nadocoding.tistory.com/

반응형

'dev-log > python' 카테고리의 다른 글

[python] class  (0) 2023.01.12
[python] 파일 입출력  (0) 2023.01.09
[python] 함수  (0) 2023.01.09
[python] 반복문 while문  (0) 2023.01.04
[python] 반복문 for문  (0) 2023.01.04
Comments