Python

[파이썬] 입력, 출력 포맷(sep, end, items, ljust,rjust,zfill, input)

뉴라코 2024. 11. 8. 23:47
입력 포맷
print("python","java","javascript", sep=",")
print("python","java","javascript", sep=" vs ")

print("python","java",sep=",",end="?")
print("무엇이 더 재미있을까요?")

 

Terminal>>
python,java,javascript
python vs java vs javascript
python,java?무엇이 더 재미있을까요?

1. sep 는 seperate , 사이에 띄워진 부분에 무엇을 넣겠다는 것.

2. end 는 끝에 무엇을 넣겠다는 의미로 밑에 있는 print 출력문과 붙어서 나옴.


정형화된 포맷으로 출력 나타내기

- 글자 : 숫자 정렬

import sys
print("python","java",file=sys.stdout)
print("python","java",file=sys.stderr)

#시험 성적
scores = {"수학":0,"영어":50,"코딩":100} #스코어라는 dictionary(key:value)
for subject, score in scores.items(): #키와 벨류를 쌍으로 튜플로 보내줌
    print(subject, score)

scores = {"수학":0,"영어":50,"코딩":100} #스코어라는 dictionary(key:value)
for subject, score in scores.items(): #키와 벨류를 쌍으로 튜플로 보내줌
    print(subject.ljust(8), str(score).rjust(4),sep=":") #서브젝트는 8칸을 띄우고 왼쪽으로 정렬, 스코어는 4칸을 띄우고 오른쪽 정렬

 

1. stdout 표준출력, stderr 표준에러 -> 에러를 처리하라

2. for subject, score in scores.items() 아이템즈는 키와 밸류를 쌍으로 subject와 score에 넣어준다는 이야기

3. 세번째 문단은 정렬의 문제임. ljust(숫자)는 숫자만큼 띄우고 왼쪽정렬, rjust(숫자)는 숫자만큼 띄우고 오른쪽정렬.

이때, score는 숫자값이므로 문자열로 취급하기 위해 str 사용.

- 001,002 .. 0으로 빈 공간 채우기

#은행 대기순번표(001,002...)
for num in range(1,21):
    print("대기번호:"+str(num).zfill(3)) #3크기만큼 공간확보하고 값이 없는 공간에는 0으로 채워라

1. for num in range(1,21) 뜻은 1부터 20까지의 숫자를 num에 넣어라

2. "대기번호": num 인데, 이때 글자열인 str으로 만들어주고 .zfill(숫자)입력

- 숫자만큼 공간 확보하고 안채워진 공간은 0으로 채우라는 소리 zero fill

 

-input 활용할 때 유의점 : 인풋으로 입력받은 값은 type 이 항상 문자열 str임.

answer = input("아무 값이나 입력하세요:")
print(type(answer))
print("입력하신 값은"+answer+"입니다.")

1. answer = input(" 띄우고 싶은 문장") - print("띄우고 싶은 문장2 + answer )


출력값 포맷
#빈 자리는 빈공간 두고, 오른쪽 정렬, 총 10자리 공간 확보
print("{0: >10}".format(500))
# 양수일 땐 +표시, 음수 - 표시(주식같이)
print("{0: >+10}".format(500))
print("{0: >-10}".format(500))
#왼쪽 정렬,빈칸을 _로 채움.
print("{0:_<+10}".format(500))
# 3자리마다 콤마를 찍어주기
print("{0:,}".format(100000000000000))
# 3자리마다 콤마를 찍어주기+ 플마
print("{0:+,}".format(-100000000000000))
# 3자리마다 콤마,플마부호,자릿수 확보 후 빈자리 ^로 채우기
print("{0:^<+30,}".format(100000000000000))
# 소수점 출력
print("{0:f}".format(5/3))
# 소수점 특정 자리수만 표시(소수 두번째까지만 표시- 소수 셋째자리에서 반올림)
print("{0:.2f}".format(5/3))

 

1. print("{0: 빈공간 또는 넣고 싶은 문자 >10}".format(값))

2. 세 자리마다 콤마 찍기는 print("{0:,}

3. 소수점의 경우 print("{0:f}".format(5/3))

4. 소수점 특정 자리까지만 표시하고 싶은 경우 점+숫자+f  print("{0:.2f}".format(5/3)) 

->이 뜻은 그 밑자리에서 반올림한다는 뜻.