본문 바로가기

코딩

[SW Expert Academy/파이썬 프로그래밍 기초(1)] 3. 기초 문법의 이해 강의 내용 정리

728x90

#### 프로그래밍 기초

## 01숫자형의 특징

#리터럴(Literal): 소스코드 상에서 내장 자료형의 상수 값을 나타내는 용어

#예시

15

3.14

'파이썬'

[1,2,3]

True

 

type()함수 : 리터럴의 자료형을 확인할 때 사용

(값에 의해 자료형이 결저오디는 동적타이핑 언어의 성격을 가진 파이썬)

type(15) -> 정수형

type(3.14) -> 부동소수점 숫자형

type('파이썬') -> 문자열형

type('True') -> 부울형

type([1,2,3]) -> 리스트형

-> type()함수의 인자로 해당 리터럴을 전달하면 함수의 반환값으로 자료형의 정보를 얻을 수 있음

 

#숫자형 

: 숫자 리터럴이 사용된 자료형. 정수형, 부동소수점형, 허수형이 있음

정수형의 길이는 무제한이며, 메모리가 허용하는 범위까지 사용할 수 있음

 

0o 접두어: 8진수 사용

ex) 0o117 = 127

 

0x 접두어: 16진수 사용

ex) 0xdeadbeef = 3735928559

 

0b 접두어: 2진수 사용

ex) 0b100110111 =311

 

매우 큰 수, 매우 정밀한 수를 표현하기ㅏ 위해 지수 표기법 사용 가능

1e100 = 1e+100

3.14e-10 = 3.14e-10

0e0 = 0.0

 

파이썬의 허수형은 j 접미사를 사용함

10.j = 10j

.001j = 0.001j

 

정수형 리터럴 내의 _는 무시됨

100_000_000_000 = 100000000000

부동소수점 숫자형 리터럴 내의 _는 무시됨

3.14_15_93 = 3.141593

허수형 리터럴 내의 _는 무시됨

1e100j = 1e+100j

3.14_15_93j = 3.141493j

 

## 02문자열의 특징

문자열: 문자들의 집합. "" 및 ''로 표현

자료형으로서의 문자형은 제공하지 않음.

ex) "'시간의 역사'남기고 떠난 스티븐 호킹" = '\'시간의 역사\'남기고 떠난 스티븐 호킹'

 

이스케이프 문자열: 프로그램의 소스 코드 내에서 사용할 수 있도록 백슬래시 기호와 조합해서 사용하는 사전에 정의해둔 문자 조합으로,

문자열의 출력결과를 제어하기 위해 사용함. \' or \" 사용

\n = 줄바꿈

\\ = \

\t = 탭




## 03문자열 포맷팅

 

문자열 내에 사용된 문자열 표시 유형(문자열 포맷코드)을 특정 값으로 변경하는 기법

 

# %포맷팅을 사용한 문자열 포맷팅

 

's': 문자열 포맷. % 다음의 값을 문자열로 변환해 처리하는 기능을 가짐

ex) "이름: %s" % "홍길동" => '이름: 홍길동'

ex) "나이: %s" % 20 => '나이: 20'

ex) "결혼: %s" % False => '결혼: False'

ex)"이름: %s\n나이: %s 세" % ("홍길동",20) => '이름:홍길동\n나이:20세'

 

'c': 문자 포맷. 정수를 유니코드 문자로 변환해 출력

ex)"%c => %d" % (97,97) => 'a=97'

 

'd': 10진 정수 형태로 문자열로 변환해 출력

ex) "%d %o %x" % (10,10,10) => '10 12 a'

 

'o': 8진수 형태로 문자열 출력

 

'x': 16진수 형태로 문자열 출력

ex) "%s %d %x" % ("가", ord('가'), ord('가')) => '가 44032 ac00'

 

'f': 부동소수점 숫자로 출력. 소수점 이하 6자리까지만 문자열 출력

ex)"%f %d" % (3.14, 3.14) => '3.140000 3'

 

'%': %문자 자체를 출력

ex)'%d 점은 상위 %d%% 에 속합니다.' % (98,1) => '98점은 상위 1%에 속합니다'

 

'%%': %문자 자체를 문자열 내에 포함될 수 있도록 함

 

#문자열 출력 폭과 정렬 방향

ex) "%10s" % "우측정렬" => '          우측정렬'

ex) "%-10s" % "좌측정렬" => '좌측정렬          '

 

#부동소수점 숫자의 출력 폭 지정, 소수점 이하의 정밀도 표현 적용

ex)"%0.2f" % 3.141592 => '3.14'

ex) "%10.2f" % 3.141592 => '      3.14'

ex) "%010.2f" % 3.141592 => '0000003.14'

 

#str.format()함수를 이용한 문자열 포맷팅

ex)"이름: {0}, 나이: {1} 세".format('홍길동',20) => '이름: 홍길동, 나이: 20세'

ex)"이름: {}, 나이: {}세".format("홍길동",20) => '이름: 홍길동, 나이: 20세'

ex)"나이: {1}, 이름: {0} 세".format('홍길동',20) => '나이: 20세, 이름: 홍길동'

ex)'{0:c} => {1}'.format(97,97) => 'a => 97'   # {0:c} = 유니코드 값으로 변환시켜줌

ex) "{0},{1},{2:x}".format("가", ord("가"), ord("가"))    #{0}= 가, {1} = 44032, {2:x} = 16진수 ac00으로 변환

ex) "{0:f} : {1:.2f}".format(3.14, 3.14) => '3.140000, 3.14'  #{0:f} = 3.14에 대해 소수점이하 6자리까지 출력된 문자열 변환 결과, {1:.2f}: 3.14에 대해 소수점 이하 2자리까지 출력된 문자열 변환 결과

ex) "이름: {name}, 나이: {age}세".format(name='홍길동', age=20) => '이름: 홍길동, 나이: 20세'

ex)"{0:<10}".format("좌측정렬") => '좌측정렬      '

ex)"{0:>10}".format('우측정렬') => '      우측정렬'

ex)"{0:^10}".format("중앙정렬") => '   중앙정렬   '

ex)"{0:*^10}".format("중앙정렬") => '***중앙정렬***'

ex)"{0:0.2f}".format(3.141592) => '3.14'

ex)"{0:10.2f}".format(3.141592) => '      3.14'

ex)"{0:010.2f}".format(3.141592) => '0000003.14'

ex)"{{ {0.:.1f} }}".format(98.5) => '{98.5}'

 

## 04주석처리

프로그램의 코드 앞에 #을 붙여 작성된 부분으로, 소스코드에 대한 상세 설명을 달거나 특정 코드를 실행하지 않을 목적으로 사용함