<플레이데이터>부트캠프의 기록/Python

Python_1 : 파이썬의 첫걸음

EZ_SOO 2022. 7. 4. 20:07
Python을 사용하는 이유
  • 문법이 간단하다.
  • 다양한 분야 접목이 가능하다.
  • 각 분야에 필요한 방대한 라이브러리를 보유하고 있다.
  • 데이터분석에 관련한 프로젝트에서 파이썬을 우선시한다.
  • 최신의 알고리즘을 많은 연구자들이 Python으로 배포하고 있다.
  • 프로그래밍의 기초를 배울때 파이썬으로 많이들 시작하는 편이다.

 

자료의 타입
  • 자료 : 프로그래밍(코딩)을 하는 대상을 '자료'라고 한다.
  • 파이썬의 타입 : 정수(Int), 실수(Float), 불리언(Bool)

 

 

  1. 정수(Interger)
  • int라고 표현
  • 음수, 양수, 0 - 총3가지를 가지고 있다.
  • 4비트를 할당한다.
  • 속도가 느려진다.
type(0) # 파이썬의 정수는 int 라는 타입으로 저장이 된다.
In: print(type(0))
Out: <class 'int'>

 

2. 실수(Float)

  • float라고 표현
  • 소수점이 붙어있는 숫자들을 의미한다.
type(1.0) # 파이썬의 정수는 float 라는 타입으로 저장이 된다.
In: print(type(1.0))
Out: <class'float'>

3. 불리언(Bool)

  • bool이라고 표현
  • 참, 거짓을 표현하는 값(True, False)
  • True = 1, False =0
In: print(type(True)) #1
Out: <class 'bool'>

In: print(type(False)) #0
Out: <class 'bool>

In: print(True + False + True)
Out: 2

 

문자열 String
  • 문자와 문자열은 다른 개념이다.
  • 파이썬에서는 문자와 문자열을 따로 구분하지 않고 string으로 취급한다.
  • 파이썬에서 문자열을 표시하기 위해서는 시작과 끝에 큰따옴표(")나 작은따옴표(')를 지정한다.
In: print("hello")
Out: hello

In: print('hello')
Out: hello
  • 문자열 이스케이프 : 문자를 사용할 때 충돌이 발생하는 경우를 막기 위해 역슬래시(\)뒤에 문자, 혹은 그 문자를 의미하는 약어를 사용한다.
\n: 줄바꿈 \t:탭 \\:\삽입 \":"삽입 \':'삽입

In: print("안녕하세요\n안녕")
Out: 안녕하세요
     안녕
     
In: print("안녕하세요\t안녕")
Out: 안녕하세요	안녕

In: print("안녕하세요\\안녕")
Out: 안녕하세요\안녕

In: print('안녕하세요\'안녕\'')
Out: 안녕하세요 '안녕'

In: print("안녕하세요\"안녕\"")
Out: 안녕하세요 '안녕'

 

 

 

다양한 연산
  • 파이썬을 통해 다양한 사칙연산을 할 수 있다.
+:더하기, -:빼기, *:곱하기, /:나누기, **:거듭제곱, %:나머지, //:몫

In: print(3+3)
Out: 6

In: print(5-2)
Out: 3

In: print(5*2)
Out: 10

In: Print(6/3)
Out: 2

In: Print(2**3)
Out: 8

In: Print(7%3)
Out: 1

In: Print(7//3)
Out: 2

 

  • 논리연산자 : 불리언연산자라고도 불리며 논리연산에는 and, or, not이 있다.
  1. and : A and B -> A와B모두 참일때만 참이고 나머지는 거짓  
  2. or: A or B ->A와 B중 하나라도 참이면 참이고, 둘다 거짓일때 거짓
  3. not: not A ->A가 참이면 거짓이고, 거짓이면 참
*And에서는 False가 가장 강한 성질을 가지고 있고, Or에서는 True가 가장 강한 성질을 가지고 있다.
ex)True and True - True
   True and False - False
   False and False - False
   True or True - True
   True and False - True
   False and False - False
   
   In: print(3>0 and 3<1) #True and False 
   Out: False
   
   In: print (3>0 and 3<1) #True or False
   Out True

 

  • 비교연산자 : 두 개의 숫자를 비교하는 연산이다. 
  1. == : 같다 (=는 프로그래밍 언어에서 할당연산자로 사용되기 때문에 =는 같다의 의미가 아님)
  2. != : 같지않다
  3. < : 작다
  4. > : 크다
  5. <= : 작거나 같다
  6. >=: 크거나 작다          *비교연산자의 우선순위 : not> and> or*
In: print(5==3)
Out: False

In: print(5!=3)
Out: True

In: print(5<3)
Out: False

In: print(5>3)
Out: True

In: print(5<=3)
Out: False

In: print(5>=3)
Out: True

In: print(3==0 and 4<0 or not(3==4)) #연산자 우선순위 생각하기
Out: True

 

 

타입변화
  • 자료형을 알아서 지정해준다. ->type()로 확인할 수 있음
  • 자유롭게 형을 변환할 수 있다. ->변수로 지정한 후 타입을 변환하기
a = 1
b = 1.0
c = '1'

In: print(type(a))           
Out: class 'int'

In: print(type(b))
Out: class 'float'

In: print(type(c))
Out: class 'str'

<타입 변화시키기>
In: a=float(a) #정수였던 a를 float를 이용해 실수로 변화
    print(a)
Out: 1.0

In: b=int(b) #실수였던 b를 int를 이용해 정수로 변화
    print(b)
Out: 1

 

 

 

변수
  • 값을 담는 그릇을 의미한다. 변수명을 정해 값을 할당할 수 있다.
  • 변수를 만드는 규칙
  1. 문자, 숫자, 밑줄기호(_)를 이용하여 만든다. ex) a, book1, my_study
  2. 숫자로 시작하는 변수명은 만들 수 없다. ex)3tart (X)
  3. 대소문자를 구분한다. ex) Money와 money는 다른 변수
  4. 공백을 포함할 수 없다. ex)my study(X) -> my_study
  5. 밑줄기호(_)이외의 다른 기호는 변수에 이용할 수 없다. ex) mystudy% , my#study 등은 변수명이 될 수 없음
  6. 예약어(Reserved word)는 변수명이 될 수 없다. ex)None, True, calss 등은 변수명이 될 수 없음
In: a=사과
    print(a)
Out: 사과

In: My_study = "최고"
    print(My_study)
Out: 최고

 

 

 

시퀀스 타입
  • 기본 타입(숫자, 문자열)을 여러개 모아서 하나의 자료형으로 관리하기 위한 방법이다.
  • 파이썬에서 제공하는 시퀀스 타입 : 리스트, 튜플, 레인지

 

1. 리스트

  • 하나의 이름에 값을 여러개 담을 수 있다. 
  • [ ]를 이용해 만든다.
In: score=[1,2,3,4,5,6]
    print(score)
Out: [1,2,3,4,5,6]
  • 가변형 타입으로 자료의 값을 변경할 수 있다.
append():리스트에서 항목하나를 맨마지막에 추가
insert(원하는자리값:데이터):리스트 특정 위치에 항목을 삽입
extend():리스트에서 항목 여러개를 맨마지막에 추가
remove():입력값과 첫 번째로 일치하는 항목을 리스트에서 삭제
pop():리스트에서 마지막 항목을 제거한 후에 반환 

In: myfriends = ['James','Robert','Lisa','Mary']
    print(myfriends)
Out: ['James','Robert','Lisa','Mary']

In: myFriends.append('Soo')
Out:['James','Robert','Lisa','Mary','Soo']

In: myFriends.insert(1,'Paul')
    print(myfriends)
Out:['James','Paul','Robert','Lisa','Mary','Soo']   

In: myFriends.extend(['Laura','Ellen')
    print(myfriends)
Out:['James','Paul','Robert','Lisa','Mary','Soo','Laura','Ellen']

2. 튜플

  • 하나의 이름에 값을 여러개 담을 수 있다.
  • ()를 이용해 만든다.
  • 불가변형 타입으로 자료의 값을 변경할 수 없다.
  • 인자가 하나인 튜플은 뒤에 콤마(,)를 붙여줘야 한다. ex)tuple1 = (a,)
In: score=(1,2,3,4,5,6)
    print(score)
Out: (1,2,3,4,5,6)

 

 

-Tip:인덱스와 슬라이스-

  • 첫번째 원소의 인덱스가 0이고 순서대로 1씩 증가한다.
  • 프로그래밍에서는 반복문을 활용한 인덱싱/슬라이싱을 많이 사용한다.
  • 인덱스 : 원하는 인수를 뽑아내는 기능이다.  print(변수명[원하는 인수의 자리값])                                                                          *이때 첫번째 인수의 자리값이 0   *끝자리에서 부터 셀때는 -1부터로 표시도 가능
In:a = [1,2,3,4,5,6]
   print(a[3])
Out: 4 

In:a = ["사과","과자","밥"]
   print(a[0])
Out: 사과

In:a = [1,2,3,4,5,6]
   print(a[-1])
Out: 6

*튜플에도 동일*
In:a = (1,2,3,4,5,6)
   print(a[0])
Out: 1

In:a = ("사과","과자","밥")
   print(a[2])
Out: 밥

In:a = (1,2,3,4,5,6)
   print(a[-2])
Out: 5
  • 슬라이스: 시퀀스 내에서 원하는 범위를 잘라서 가져오는 것을 말한다. print(변수명[시작인덱스:끝인덱스+1:간격]
In: a = [1,2,3,4,5,6,7]
    print(a[0:4])
Out: [1,2,3,4]

#시작 위치가 생략되면 첫번째 인수부터를 의미한다.
In: a = [1,2,3,4,5,6,7]
    print(a[:4])
Out: [1,2,3,4]

#마지막 위치가 생략되면 끝까지의 인수를 의미한다.
In: a = [1,2,3,4,5,6,7]
    print(a[:])
Out: [1,2,3,4,5,6,7]

#간격은 생략하면 간격없이 쭉을 의미하고 간격을 넣으면 그 간격을 계산해서 나온 인수를 의미한다.
In: a = [1,2,3,4,5,6,7]
    print(a[::2])
Out: [1,3,5,7]

In:a = ("사과","바나나","딸기","참외","메론","수박")
   print(a[1:5:2])
Out: ('바나나','참외')

3. range

  • 범위 내에서 수열을 생성하는 것을 말한다.
  • range(시작점, 끝점+1,간격)으로 표기
#시작점은 생략이 가능하다.
In: list(range(10) 
Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


#간격은 생략이 가능하다.
In: list(range(1, 10) 
Out: [1, 2, 3, 4, 5, 6, 7, 8, 9]


In: list(range(1, 10, 2) 
Out: [1, 3, 5, 7, 9]