파이썬 프로그래밍의 기초, 자료형 1
목차
👀, 🤷♀️ , 📜 , ⌨
이 아이콘들을 누르시면 코드, 개념 부가 설명을 보실 수 있습니다:)
밑의 코드들은 일부로 숨겨 두었는데 처음읽을땐 코드를 보고 두번쨰엔 보지 않고 콘솔창에 출력해보길 바랍니다😊
문자열 포맷팅
문자열 안의 특정한 값만 바꿔야 할 경우
[1] 숫자 바로 대입
숫자를 넣고 싶은 자리에 %d(문자열 포맷코드)-> 숫자만
>>> "I eat %d apples." % 3
'I eat 3 apples.'
[2] 문자열 바로 대입
숫자 대신 문자열 대입 %s(문자열 포맷코드)-> 문자만
!! S 문자열을 대입할 때는 따옴표나 작은따옴표를 반드시
>>> "I eat %s apples." % "five"
'I eat five apples.'
[3] 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'
[4] 2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'
문자열 포맷 코드
기호 | 의미 |
---|---|
%s | 문자열(String) |
%c | 문자 1개(Character) |
%d | 정수(Integer) |
%f | 부동 소수(Floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 ‘%’ 자체) |
%s | 어떤 형태의 값이든 변환해 넣을 수 있다 |
%d%% | 포매팅 연산자 %d와 %를 같이 쓸 때 |
[Error is N%에서 N을 98로 포매팅 하기]
⌨ 정답 코드 보기
>>> "Error is %d%%." % 98
'Error is 98%.'
포맷 코드와 숫자 함께 사용하기
[1] 정렬과 공백
“%전체글자수s” %”넣을 문자열” 이렇게 하면 된다
>>> "%10s" % "hi"
' hi' #hi가 오른쪽 정렬됨
반대로 -만 붙여주면 된다.
“%-전체글자수s” %”넣을 문자열” 이렇게 하면 된다
>>> "%-10s" % "hi"
'hi jane' #hi가 왼쪽 정렬됨
[2] 소수점 표현하기
3.42134234를 소수점 네 번째 자리까지만 나타내고 싶은 경우
>>> "%0.4f" % 3.42134234
'3.4213'
공백과 같이 사용
>>> "%10.4f" % 3.42134234
' 3.4213'
format 함수를 사용한 포매팅
인덱스로 표현하는 방법이다.
“{0}{1}…”.format(0,1) 이런식으로 인덱스를 부여하고 쓰면 된다
아래의 예를 보며 확인해보자
[1] 숫자 바로 대입하기
>>> "I eat {0} apples".format(3)
'I eat 3 apples'
[2] 문자열 바로 대입하기
>>> "I eat {0} apples".format("five")
'I eat five apples'
[3] 숫자 값을 가진 변수로 대입하기
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'
[4] 2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'
[5] 이름으로 넣기
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
[5] 인덱스와 이름을 혼용해서 넣기
>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
[6] 정렬
>>> "{0:<10}".format("hi")
'hi '
>>> "{0:>10}".format("hi")
‘ hi'
>>> "{0:^10}".format("hi")
' hi '
[7] 공백 채우기
>>> "{0:=^10}".format("hi")
'====hi===='
[8] 소수점 표현하기
>>> y = 3.42134234
>>> "{0:0.4f}".format(y)
'3.4213'
[9] { 또는 } 문자 표현하기
>>> "".format()
'{ and }'
f 문자열 포매팅 (파이썬 3.6~)
이 방식을 추천함 (구글 지침에 가장 적합한 표현) 기본형은 f'{“”:}’
- “”가 .format()역할을 한다
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
변수 값을 생성한 후에 그 값을 참조
>>> age = 30
>>> f'나는 내년이면 {age+1}살이 된다.'
'나는 내년이면 31살이 된다.'
딕셔너리
딕셔너리 형태도 표현이 가능하다.
딕셔너리는 다음에 배울것이니 모른다고 걱정하지 말자!!
- 간단하게 말하면 {key:value} 형태의 자료형이다
>>> d = {'name':'홍길동', 'age':30}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
정렬
>>> f'{"hi":<10}'
'hi '
>>> f'{"hi":^10}'
' hi '
>>> f'{"hi":=^10}'
'====hi===='
소수점
>>> y = 3.42134234
>>> f'{y:0.4f}'
'3.4213'
f 문자열에서 { } 문자
>>> f''
'{ and }'
문제
1. 아래의 주어진 변수를 이용하여 ‘오늘은 2020년 2월 10일 내 생일 입니다’를 출력해보세요
year= 2020
month= 2
date= 10
day= "내 생일"
⌨ 정답 보기
print(f'오늘은 {year}년 {month}월 {date}일 {day}입니다.')