본문 바로가기

Python

1. Data Type 자료형(숫자형, 문자열 자료형)

자료형은 크게 숫자형, 문자열 자료형, 리스트 자료형, 튜플자료형, 딕셔너리 자료형, 집합 자료형등으로 나눠져있다. 파이썬을 이용해 자료형의 참과 거짓을 알아볼 수 있을 뿐더러, 변수를 지정하여 자료형의 값을 저장할 수 있다.

 

The data type of Python is classified into number, string, list, tuple, dictionary, and set. We can find out True or False with the Python and designate variation for the value of data type.

 

숫자형

  • 정수형 - 말그대로 정수로 된 자료형을 뜻함. 양의 정수, 음의 정수, 0을 정수라 함 
  • a = 1 b = -1 c = 0​
  • 실수형 - 실수가 포함된 자료형을 뜻함. 공대생들은 많이 접하는 e라는 단어는 4.24^10과 같은 역할을 해주는데, 파이썬에서도 응용이 가능하다. 
  • a = 1.3 b = -1.3​ a = 4.24E10 b= 4.24e-10
  • 8 진수 및 16진수 - 8 진수인 경우 숫자 0 + 알파벳 o 혹은 O로 시작하면 되고, 16진수는 0x로 시작하면 된다. 허나 단 한번도 8진수와 16진수 자료형은 써본 적이 없었다.
    a = 0o123
    b = 0x8ff​
  • 복소수도 사용이 가능하다. 파이썬에서는 i 대신 j를 사용한다. (대문자도 사용 가능) 복소수 안에는 내장함수도 들어있는데, 실수 부분과 허수 부분 그리고 켤레복소수를 출력할 수 있는 내장함수를 포함한다. abs라는 내장함수는 복소수의 절댓값을 리턴한다.
    a = 1+2j
    b = 3-4J
    
    a = 1+2j
    a.real
    >>1.0
    
    a = 1+2j
    a.imag
    >>2.0
    
    a = 1+2j
    a.conjugate()
    >>(1-2j)​
    
    a = 1+2j
    abs(a)
    >>2.23606... #(math.sqrt(1 ** 2 + 2 ** 2)와 같음
  • 사칙연산도 가능하다.
    a = 1
    b = 2
    a + b
    >>3
    a * b
    >>2
    a / b
    >> 0.5​
    a ** b 
    >> 1 #제곱을 뜻함
    a % b #나머지출력 연산기호
    >> 1
    a = 7
    b = 4
    a // b #나눗셈 후 정수 변환을 위해 내림 적용
    >> 1

문자열 자료형

  • 문자, 단어 및 문장 등으로 구성되어있음
  • 문자열을 사용하기 위해서는 4가지의 방법이 있다. 문자열안에 큰 따옴표를 사용하고 싶을 경우,양 끝에 작은 따옴표를 사용하면 된다.작은 따옴표를 사용하고 싶을 경우,이와반대로 큰 따옴표를 사용하면 된다.혹은 백슬래쉬(\)를 따옴표 앞에 위치하여 사용가능하다. 
  • 'Hello' #양 끝에 작은 따옴표 1개씩 "My name is" #양 끝에 큰 따옴표 1개씩 """Justin Song""" #양 끝에 큰 따옴표 3개씩 '''123''' #양 끝에 작은 따옴표 3개씩
  • 여러 줄인 문자열을 만들고 싶을 경우
    sentence = "My name is Justin Song\nNice to meet you!" #'\n'이라는 이스케이프 코드를 사용하여 줄 바꿈해줌
    multiline = """My Name is Justin Song
    Nice to meet you!""" #큰 따옴표 혹은 작은 따옴표 3개를 넣어서 입력해도 출력가능​
  • 위와 같은 이스케이프 코드중 \n = 문자열 줄을 바꿀 때 사용, \t = 문자열 사이에 탭 간격을 줄 때 사용, \\문자열 안에 '\'를 넣고 싶을때 사용한다. 더 많은 이스케이프 코드가 있지만 대체로 이들을 주로 사용한다.
  • 문자열은 연산도 가능하다.
    a = 'My name is'
    b = 'Justin Song.'
    a+b #문자열 더하기
    >> 'My name is Justin Song.'
    a = 'My name is Justin Song.'
    a * 2 #문자열 곱하기
    >>'My name is Justin Song.My name is Justin Song.'​
  • 문자열은 0,1,2,3,4로 인덱싱이 된다. 예를 들면 word = apple, word 라는 변수에 apple를 지정할 때, a = 0, p = 1, p = 2, l = 3, e = 4라는 순서를 가지게 되는데, 각 숫자가 문자열의 인덱스가 되는 것이다. word[2]를 입력하면 p가 나올 것이고, word[-1]을 입력하면 e가 나올것이다. -1을 입력시, e가 나오는 이유는 -1일시 뒤에서 부터 카운트를 하는데, -0은 0과 같음으로 뒤에서부터는 -1부터 카운트를 한다.
    word = apple
    word[1]
    >> 'p'
    word[-2]
    >> 'l'​
  • 문자열을 슬라이싱이라는 기법을 사용할 수 있다.
    a = My name is Justin Song."
    b = a[11]+a[12]+a[13]+a[14]+a[15]+a[16]
    print(b)
    >> 'Justin'
    
    b = a[11:16] #a[시작번호:끝번호]
    print(b)
    >>'Justin'
    
    b = a[18:] #끝번호 부분이 생략 될시, 시작번호 부터 끝까지 출력한다는 의미이다. 앞번호 부분이 생략될시도 마찬가지다.
    >>'Song.' #둘다 생략될 경우, 문자열을 처음부터 끝까지 출력한다.
    a = '20220103Rainy' #슬라이싱의 예
    date = a[:8]
    >>'20220103'
    weather = a[8:]
    >>'Rainy'
    
    name = 'Jussin'
    name[3]
    >>s
    name[:3]+'t'+name[4:] #'jus'+'t'+'in'한자리만 제외해서 호출해서 오타를 수정할 수 도 있다.
    name
    >>'Justin'​
  • 문자열 포매팅이란 문자열 안에 어떠한 값을 삽입하는 방법이다.
    "I got %d phones." %2
    >>'I got 2 phones.' # %d는 정수, %f는 실수, %c는 문자, %s는 문자열을 의미한다. %s를 사용할 경우, 
    #뒤에 무엇이 와도 상관없다. 자동으로 문자열로 바뀌기 때문이다.
    'I got %s phones.' %'two'
    >>'I got two phones.'
    
    #2개 이상의 값을 넣으려면 뒤에 콤마를 넣어 구분해준다.
    'I got %d %s.'%(2,'phones')
    >>'I got two phones.'
    
    #%%를 사용하면 문자열안에 %를 사용할 수 있다.
    'I got %d%%.'%98
    >>'I got 98%.'​
  • 포맷코드 사용
    '%10s' %'hi'#10개의 칸에 8개의 공백이 들어가고 마지막 2칸에는 hi가 들어감
    >>'        hi' #'%-10s' %'hi'일 경우 hi가 앞에 두칸을 차지하고, 공백8칸이 들어감
    
    '%0.4f'%1.32422 #0대신 10이 들어가있으면, 위에 코드와 같이, 공백 4개 + 소수점 넷째자리까지 출력함
    >>'1.3242' #소수 넷째자리까지 출력​
  • 문자열 관련 함수
    #p의 개수를 카운트해줌
    a = 'happy'
    a.count('p')
    >>2 
    
    #위치를 찾아주는 변수
    a = 'My Name is Justin Song.'
    a.find('N') #없는 문자면, -1을 반환함; False
    >>3 #대문자 소문자 구분 가능 'n'일 경우 16이라는 숫자 출력
    a.index('N') #find와 용도는 같지만, 없으면 에러 발생
    >>3
    
    #각각 문자에 a라는 변수 삽입
    a=','
    a.join('abcd') 
    >>'a,b,c,d'
    
    #소문자를 대문자로 변환, 대문자를 소문자로 변환시키려면 a.lower() 입력
    a = 'hi'
    a.upper()
    >>'HI'
    
    #공백지우기
    a = '    justin'
    a.lstrip() #왼쪽 공백 지우기, rstrip()일 경우 오른쪽 공백 지우기, strip()일 경우 양쪽 공백 지우기
    'justin'
    
    #문자열바꾸기
    a = 'You are pretty'
    a.replace('pretty','ugly') #replace(바뀌게될 문자열, 바꿀 문자열)
    >> 'You are ugly'
    
    #문자열나누기
    a = 'Life is too short'
    a.split()
    ['Life', 'is', 'too', 'short'] #리스트화 되어 문자열 나눠짐​
  • 고급 문자열 포매팅 - 굳이 %d, %s, %f로 안나누고 바로 올릴 수 있는 방법이있다. format함수를 사용하는 것이다.
    'I have {0} sisters and {1} brothers.'.format(2, 'one')
    >>'I have 2 sisters and one brothers.' #{}안에 있는 숫자는 format 함수 안의 인덱스 순이다.
    
    'I have {0} sisters and {brother} brothers.'.format(2, brother='one') #brother라는 변수지정도 가능
    
    #format함수를 이용한 정렬
    "{0:<10}".format('hi')#{인덱스:<문자열 총자릿수} = 왼쪽 정렬, {인덱스:>문자열 총자릿수} = 오른쪽 정렬
    >>>'hi        ' #{인덱스:^문자열 총자릿수} = 가운데 정렬
    
    #공백 채우기
    "{0:=<10}".format('hi')#:와 부등호 사이에 공백 대신 넣을 문자 삽입
    '====hi====' 
    
    #소수점표현하기
    y=3.1452323
    '{0:0.4f}'.format(y)
    >>>'3.1452'
    
    #'{' 또는 '}'를 사용하고 싶을때는 문자열에서 역슬래쉬 \\ 두번 썼던거처럼 {{ }} 두번씩 써주면 된다.​