본문 바로가기
PROGRAMMING/Python&자료구조

[점프투파이썬 정리/다운로드] 02장. 자료형(숫자형/문자열)

by Hey Nary 2023. 5. 31.
728x90
반응형

Do it! 점프 투 파이썬

정리 다운로드 :

02장._자료형(숫자형문자열).pdf
0.41MB

 

단서 질문

  1. 숫자열 자료형?
  2. 문자열 자료형?

핵심 필기

02장. 파이썬 프로그래밍의 기초, 자료형

💡자료형 : 프로그램의 기본 단위

💡자료형에 대한 충분한 이해없는 프로그래밍은 기초 공사 없는 빌딩 세우기나 마찬가지이다.

 

02-1. 숫자형 (Number) 자료형

(1) 숫자형의 종류

  • 정수형 Integer
  • 실수형 Floating-point
    →a=4.24e-10
    → a=4.24E-10
  • 8진수 Octal
    • 숫자가 0o 또는 0O으로 시작한다. (숫자 0+알파벳 o)
    → a=0o177
  • 16진수 Hexadecimal
    • 숫자가 0x로 시작한다.
    → a=0x8ff
    → b=0xABC

(2) 숫자형 활용을 위한 연산자

  • 사칙연산 : + - * /
  • 제곱 : **
  • 몫 반환 : //
  • 나머지 반환 : %

02-2. 문자열 (String) 자료형

(1) 문자열 만들기

  • 가장 기본적인 방법 : 큰 따옴표 또는 작은 따옴표로 1번 또는 3번씩 감싸기.
    → " " 또는 ' ' 또는 """ """ 또는 ''' '''
  • 단순한 파이썬에서 문자열이 4개로 표현될 수 있는 이유?
    1. 문자열 내에 작은 따옴표나 큰 따옴표를 포함시킬 때
    → food = 'Python's favorite food is perl'
    • 위 문장은 구문 오류이다! (SyntaxError)
  • 문장 안에 작은 따옴표가 있을 때는 큰 따옴표로 둘러싼다.
  • 문장 안에 큰 따옴표가 있을 때는 작은 따옴표로 둘러싼다.
    → food = "Python's favorite food is perl"
    → say = "'Python is very easy.' he says"
  •  백슬래시를 작은따옴표나 큰따옴표 앞에 삽입하면 뒤의 따옴표는 따옴표 그 자체의 문자를 나타낸다.
    → food = 'Python|'s favorite food is perl'

 

(2) 여러 줄로 문자열 만들기

  1. 줄을 바꾸는 이스케이프 코드 '\n" 삽입

→ multiline = "Life is too short \n You need Python"

  1. 연속된 작은따옴표 또는 큰 따옴표 3개 사용하기

→ multiline = """

Life is too short

Yon need Python

"""

💡이스케이프 코드 : 파이썬에 미리 정의된 문자 조합

\n 문자열 내에서 줄을 바꿀 때
\t 문자열 내에서 탭 간격을 줄 때
\\ 문자 \ 을 그대로 표현할 때
\' 작은 따옴표를 그대로 표현
\" 큰 따옴표를 그대로 표현
\r 캐리지 리턴 (줄바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드 (줄바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리 (출력할 때 PC 스피커에서 삑 소리가 난다)
\b 백스페이스
\000 NULL 문자

 

(3) 문자열 연산

  • 더해서 연결하기 (Concatenation) : 각 변수를 + 처리한다.
  • 문자열 곱하기 : 문장을 반복한다. 변수를 * 처리한다.
  • 문자열 곱하기 응용
    • 프로그램 제목을 표시할 때 좋다.
    #multistring.py
    
    print("*"*50)
    print("Program Title")
    print("*"*50)
    
  • 문자열 길이 구하기 : len(변수)

(4) 문자열 인덱싱과 슬라이싱 : 단어 뽑아내기

  • 인덱싱 (Indexting) : 가리키기
    • 변수[위치]
      • 파이썬은 0부터 숫자를 센다!
      → 변수[-0]=변수[0]
      → 변수[-2] #뒤에서 두 번째 문자를 가리킨다
  • 슬라이싱 (Slicing) : 자르기
    • 변수[시작번호:끝번호]
      • 끝번호는 포함되지 않는다. 시작번호~끝-1까지 추출됨.
      → 변수[:] #처음부터 끝까지 뽑아낸다.
      → 변수[19:-8] #a[19]부터 a[-9]까지 포함
  • 문자열 슬라이싱하기 예제
#Pithon을 Python으로 바꾸기

a="Pithon"
print(a)
a=a[:1]+"y"+a[2:]
print(a)
  • 문자열 포매팅 : 특정 자리에 문자열 포맷 코드를 넣고, 변수에 대입해 자료형만 바꾸어 출력시킨다.
    • 문자열 포맷 코드코드 설명
      %s 문자열 String
      %c 문자 1개 Character
      %d 정수 Integer
      %f 부동소수 Floating-point
      %o 8진수
      %x 16진수
      %% % 문자 그 자체
      "Error is %d%%" %30 → 'Error is 30%' |
    • 1개 값 : I eat 3 apples 만들기
      • 숫자 바로 대입하기
      • → “I eat %d apples” %3
      • 문자열 바로 대입
      • → “I eat %s apples” %three
      • 숫자값을 나타내는 변수로 대입→ “I eat %d apples” %number
      • → number = 3
    • 2개 이상의 값 : I ate 3 apples and I was sick for five days→ day="three"
      • → "I ate %d apples and I was sick for %s days” % (number, day)
      • → number=3

💡%s 포맷 코드는, 어떤 형태의 값이든 변환해 넣을 수 있다. 자동으로 뒤의 값을 문자열로 인식해 바꾸기 때문이다.

→"Rate is %s" #3.224 → 'Rate is 3.224'

 

(5) 포맷 코드와 숫자 함께 사용하기

  1. 공백과 정렬
    1. “%숫자s” % “hi”
      → 전체 길이 숫자개인 문자열 공간에 “hi”을 대입하되, 나머지는 나머지는 공백으로 채운다.
    2. 오른쪽 정렬하기
      → “%10s” % “hi”
    3. 왼쪽 정렬하기
      → “%-10s” % “hi”
    4. 응용하기
      → “%-10sjane” % “hi” 
      >>> hi^^^^^^^^jane (이 때 ^은 띄어쓰기를 표시한 것!)
  2. 소수점 표현하기
    1. %0.소숫점f
      →"%0.4f" %3.123456 → 3.1235
    2. 응용하기 : 소수를 10자리칸에서 오른쪽 정렬하기
      → “%0.10.4f” %3.123456 → 3.1235^^^^
  3. format 함수를 사용한 포매팅
    1. 인덱스 항목 넣기 : “ {0}, {1}, … “ .format(변수1,변수2)
    2. 이름 항목 넣기 : “ {name1}, {name2} “ .format(변수1=값1, 변수2=값2)
      • 예) I ate 3 apples and I was sick for five days
      print("I ate 3 apples and was sick for five days")
      print("I ate {0} apples and was sick for {1} days".format(3,"five"))
      print("I ate {num} apples and was sick for {day} days".format(num=3,day="five"))
      print("I ate {0} apples and was sick for {day} days".format(3,day="five"))
      
  4.  정렬
    • 왼쪽정렬 : {0:<숫자}
    • 오른쪽 정렬 : {0:>숫자}
    • 가운데 정렬 : {0:^숫자}
      • 치환되는 문자열을 총 자리수를 맞춰 주며 정렬 방향을 화살표로 알려준다.
    a="{0:<10}".format("hi") #왼쪽정렬
    b="{0:>10}".format("hi") #오른쪽정렬
    c="{0:^10}".format("hi") #가운데정렬
    
  • 공백 채우기 : 공백 문자 또는 지정한 문자로 채울 수 있으며 채울 문자는 정렬문자 바로 앞에 넣는다.
    • {0:문자(정렬기호)숫자}
    a="{0:!^10}".format("hey")
    >>> !!!hey!!!!
    
  • 소수점 표현하기 : 정렬도 함께 표현할 수 있다.
    • {0:소숫점f}
    y = 3.12341234
    a="{0:0.4f}".format(y)
    >>>3.1234
    b="{0:10.4f}".format(y)
    >>>    3.1234
    

    5. f 문자열 포매팅 (3.6 이상 버전)
  • 변수값을 생성한 후, 문자열 앞에 f 접두사를 붙인다. 문자열 안에 {변수}를 선언한다.
#변수 치환하기
age=20
name="홍길동"
a=f"나의 이름은 {name}, {age+1}살입니다."
print(a)

#딕셔너리
dic = {"name":"홍길동", "age":20}
a=f'나의 이름은 {dic["name"]}, {dic["age"]+1}살입니다.'
print(a)

#정렬
a=f'{"hi":<10}' #왼쪽정렬
print(a)
a=f'{"hi":>10}' #오른쪽정렬
print(a)
a=f'{"hi":^10}' #가운데정렬
print(a)

#공백 채우기
a=f'{"hi":=^10}' #=으로 채우기
print(a)

#소숫점 채우기
y=0.12341234
a=f'{y:0.4f}'
print(a)

#소숫점+정렬
a=f'{y:10.4f}'
print(a)

#{}문자를 사용할 때는 두 번 써 줘야 한다.
b=f'{{ and }}'
print(b)
  • 예제 : ‘!!!python!!!’ 문자열 출력하기
#format 함수
a='{0:!^12}'.format("python")
print(a)

#f 문자열 포매팅
a=f'{"python":!^12}'
print(a)

(6) 문자열 관련 내장 함수 : 변수.함수()

.count('a') 문자열 중 a의 개수를 돌려준다.
.find('a') 문자열 중 a가 처음으로 나온 위치를 반환한다. 만약 존재하지 않으면 -1을 반환한다.
.index('a') 문자열 중 맨 처음으로 나온 위치를 반환한다. 존재하지 않으면 에러가 난다.
"b".join('문자열') 문자열 각 문자 사이에 b를 삽입한다.
.upper() 소문자를 대문자로 바꾼다.
.lower() 대문자를 소문자로 바꾼다.
.lstrip() 왼쪽 공백 지우기
.rstrip() 오른쪽 공백 지우기
.strip() 양쪽 공백 지우기
.replace(바뀔 문자열,바꿀 문자열) 문자열 바꾸기
.split(구분자) 문자열을 구분자으로 나눈다. 공백일 경우 (), :일 경우 (’:’)

 

728x90
반응형

댓글