dev/Python

[Python]자료형(1) - 숫자/문자열

mingracle 2022. 1. 20. 22:19

1. 숫자형

 - 정수

a = 123
a = -123
a = 0

 - 실수

a = 1.23
a = -3.45
a = 4.24E10 #4.24*10^10
a = 4.24e-10 #4.24*10^-10

- 8진수: 숫자가 0o 또는 0O으로 시작

 a = 0o177

 - 16진수: 0x으로 시작

a = 0x8ff
a = 0xABC

 숫자형자료형을 활용하기 위한 연산자

 - 사칙연산(+, -, *, /)

 - 제곱(**): x의 y제곱 = x**y

 - 나눗셈 후 나머지 반환: %, 몫 반환: /(몫에 해당하는 정수만 반환: //)

 

2. 문자열

  : 문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.

   "큰따옴표", '작은따옴표', """큰따옴표 3개연속""", '''작은따옴표 3개연속'''을 사용해 문자열을 만든다.

    ※ 큰따옴표, 작은따옴표 구분이 없음

 

- 문자열 안에 따옴표 포함시키는 경우

   ① 문자열 안에서 따옴표 사용할 때 큰따옴표와 작은따옴표를 교차시켜 사용해줘야 한다.

     작은따옴표는 큰따옴표로 둘러싸야 한다. "Python's favorite food is perl"

     큰따옴표는 작은따옴표로 둘러싸야 한다. '"Python is very easy." he says.'

 

   ② 백슬래시를 사용해 문자열에 포함시키기.

      백슬래시 뒤의 따옴표는 문자열을 둘러싸는 기호의 의미가 아니라 문자 그 자체를 뜻한다.

       'Python\'s favorite food is perl'

       "\"Python is very easy.\" he says.'

     

- 여러 줄인 문자열을 변수에 대입할 경우 

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

        multiline = "Life is too short\n You need python"

   ② 연속된따옴표 사용

        multiline = """ Life is too short

                         You need python"""

 

코드 설명
\n 줄바꿈
\t 탭 간격
\\ 문자 \를 그대로 표현할 때 사용
\' 작은따옴표 '를 그대로 표현할 때 사용
\" 큰따옴표 "를 그대로 표현할 때 사용
\r 캐리지 리턴. (줄바꿈 문자. 현재 커서를 가장 앞으로 이동)
\f 폼피드. (줄바꿈 문자. 현재 커서를 다음 줄로 이동)
\a 벨소리. (출력시 '삑' 소리가 난다)
\b 백스페이스
\000 널문자

- 문자열 연산하기

   ① 더하기(연결. Concatenation)

head = "Python"
tail = " is fun!"
print(head + tail)
  #'Python is fun!' 출력

   ② 곱하기(반복)

a = "Python"
print(a * 2) # a문자열을 2번 반복한다.
  #PythonPython 출력

   ③ 길이 구하기: len함수 사용

a = "Life is too short"
len(a)
  #17 출력

 

- 문자열 인덱싱/슬라이싱

   ① 문자열 인덱싱

      : 문자열 안의 특정 값을 뽑아내는 역할을 한다. print(a[0]+a[1]+a[2]+a[3]) : a[0]~[3]까지 출력

        [0]: 문자열의 첫번째 값 ([-0]과 동일)

        [n-1]: 문자열의 n번째 값

        [-1]: 문자열의 맨 뒤에서 첫번째 값

        [-n]: 문자열의 맨 뒤에서 n번째 값

 

   ② 문자열 슬라이싱

      : 문자열의 n번째 자리부터 m번째 자리까지 뽑아내는 역할을 한다. print(a[b:c]): a문자열의 b부터 c-1까지 출력

       a[시작번호 : 끝번호]

         끝번호 생략 = 시작번호부터 문자열의 끝까지 출력. (a[3:]은 a[4]~끝까지 출력)

         시작번호 생략 = 문자열의 처음부터 끝번호까지 출력. (a[:3]은 a[0]~a[2] 출력.) (a[:]는 전체 출력)

      ※ 문자열 요소값은 변경할 수 없기 때문에 슬라이싱 기법을 이용해 문자열을 변경할 수 있다.

 

- 문자열 포매팅

  : 문자열 안의 특정 값을 바꿔야하는 경우 사용

 

   ① 문자열 포매팅

  str = “나는 %살이다!” %10
  str1= “나는 %s이 흥미롭다” %”python”

  kg = 1006.5
  str2 = “몸무게는 %f kg이다” %kg 

  grade = ‘A’
  str3 = “나는 %c학점이다” %grade

#전체 길이가 10개인 문자열에 
#양수일 경우 오른쪽에 “hi”대입 
  str4 = “%10s” %”hi”
  
#전체 길이가 10개인 문자열에 
#음수일 경우 왼쪽에 정렬
  str5 = “%-10s” %”hi”
  
#소수점 셋째자리까지 반올림되어서 출력
  str6 = “%0.3f” %3.4125
  
#길이가 10인 문자열에 소수점 셋째자리까지 반올림해 출력
  str7 = “%10.3f” %3.4125 
  
#길이가 5인 문자열에 소수점 둘째자리 반올림해 출력
  str8 = “%5.2f” %32.2452

     ※ 포매팅연산자(%d)와 %를 같이 사용할 때는 %%를 사용한다.

        (문자열 안에 포매팅연산자가 없으면 홀로 사용되어도 된다.

 

   ② format함수를 이용한 포매팅

     : {0}, {1}... 과 같은 인덱스 항목에 format함수의 입력값이 순서에 맞게 대입된다.

      {name}형태를 사용하는 경우 format함수에 반드시 name=value와 같은 형태로 입력값을 

  str9 = “나는 {0}살이다”.format(10)

  score = 95
  str10 = “나는 {0}학점에 {1}점이다 {2}점!”.format(‘A’, score, 95)

  str11 = "인덱스 사용{0}, 이름 사용{day}".format('O', day='O')
  
#0번째 변수에 10개의 공간이 주어지고 왼쪽부터 출력
  print(“{0:<10}”.format(“hello”))
  
#10칸의 공간에서 왼쪽 정렬, 추가 10칸에 오른쪽 정렬
  print(“{0:<10}{1:>10}”.format(“hello”, “hi”))
  
#10칸의 공간에서 ^(가운데정렬) 후 빈공간을 =으로 채우기
  print("{0:=^10}.format('hi')
  
#소수점 표현하기
  y = 3.42134234
  print("{0:10.4f}".format(y)
    #'    3.4213' 출력

 

- 문자열 관련 함수

  : 문자열 자료형이 자체적으로 가지고있는 함수를 문자열 내장함수라고 한다. 내장함수사용 => 문자열변수.함수이름

  

  ① count : 문자개수 세기

  ② find : 위치 알려주기

  ③ index : 위치 알려주기

  ④ join : 문자열 삽입

  ⑤ title : 맨 앞글자만 대문자

   upper : 소문자 → 대문자

   lower : 대문자 → 소문자

   strip : 양쪽공백 지우기

     - lstrip: 왼쪽공백 지우기

     - rstrip: 오른쪽 공백 지우기

  ⑨ replace : 문자열 바꾸기 replace(“기존 값”, “바꿀 값”)

  ⑩ split : 문자열을 나눠 리스트형태로 출력

                기본값은 공백 기준. 구분할 문자를 괄호 안에 적어주면 해당 문자가 기준이 됨 split(“,”)

s1 ="  py th on  "
print(s1.count("p")) #1 #문자p의 개수 출력
print(s1.find("t")) #5
print(s1.index("h")) #6
print("_".join(s1)) # _ _p_y_ _t_h_ _o_n_ _  #문자열 abc 사이에 문자열(,) 삽입
print(s1.title()) #  Py th on
print(s1.upper()) #  PY TH ON
print(s1.lower()) #  py th on
print(s1.strip()) #python
print(s1.lstrip()) #py th on
print(s1.rstrip()) #  py th on
print(s1.replace("on", "off")) #  py th off
print(s1.split()) #['py', 'th', 'on']
	#공백을 기준으로 문자열을 나눠 리스트형태로 출력
	#구분할 문자를 괄호 안에 적어주면 해당 문자가 기준이 됨 split(“,”)