멀티캠퍼스 1주차 -1

2023. 12. 28. 17:43Data Science/Study 자료

Chapter 3. 파이썬을 계산기처럼

  • 데이터 분선가 : 기본언어 pyhton ,현업(의료기간,r수요 높음)
  • 개발자 : 기본언어 python,수료후 장기적 React, Java

사칙연산

In [3]:
1+1
Out[3]:
2
In [4]:
5-2
Out[4]:
3
In [5]:
15*2
Out[5]:
30
In [6]:
#나눗셈 10/2 #정수/정수 실수형으로 반환
Out[6]:
5.0
  • 실수연산
In [8]:
print(1.2 + 5.2) print(3.5 - 2.1) print(4.2 * 1.3) print(9.5 / 2.8) #결과 확인을 할때 print() 사용권장, 습관
6.4
1.4
5.460000000000001
3.3928571428571432

연산규칙

  • (1) 괄호안 계산
  • (2) 지수 계산
  • (3) 곱셈과 나눗셈 계산
  • (4) 덧셈과 뺄셈 계산
  • (5) 같은 순위 연산이면, 왼쪽에서 오른쪽으로
  • (6) 중복된 괄호가 있을 경우, 안쪽에서부터 처리
In [9]:
print(2 + 3 * 4)
14
In [10]:
print(3 / 2 * 4 - 5 / 2)
3.5
In [11]:
print((5 * 4 - 15) + ((5-2) * (9 - 7)))
11

type()

  • 함수 : 특정기능을 수행하도록 만든 매직박스
  • 특정함수를 조건만 맞춰주면 동작

 

함수의 종류

  • 내장(built-in)함수 : 파이썬 설치와 함께 제공되는 기본적인 함수
  • print(), type()...
  • 라이브러리에서 제공하는 함수
  • R : 패키지 , Python : 라이브러리   (목적이 분명)

라이브러리 예시

  • 웹사이트 개발 : 웹사이트 개발과 관련된 라이브러리 설치
  • 통계분석
  • 시각화
  • 게임개발
In [13]:
# 파이썬에서 정수를 어떨게 표현할까 # 파이썬에서 실수를 어떨게 표현할까 type(3)
Out[13]:
int
In [14]:
type(3.5)
Out[14]:
float
In [15]:
print(type(3)) print(type(3.5))
<class 'int'>
<class 'float'>
  • 파이썬 객체지향 언어입니다. (class에 대해서)

거듭 제곱과 나머지

  • 숫자 A를 n번 곱하는 거듭제곱(power)
  • A를 밑, n을 지수
In [16]:
2 * 2 * 2 * 2 * 2
Out[16]:
32
In [17]:
2**5 #거듭제곱
Out[17]:
32

-나머지 구하는 방법

In [19]:
13 % 5 #나머지
Out[19]:
3
In [20]:
13 // 5 #몫
Out[20]:
2

과학적 표기법

  • 아주 큰 수, 작은 수를 다뤄야하는 케이스
  • 빛은 초당 30만 km
  • 300,000,000m/s
  • 3x10^8
In [21]:
3* 10 ** 8
Out[21]:
300000000
In [22]:
3e8
Out[22]:
300000000.0
In [24]:
3e-4
Out[24]:
0.0003

진수 표환과 변환

  • 우리는 일상생활에서 10진법
  • 60진법 : 60초 1분 , 60분 1시간
  • 12진법 : 오전 112시간, 오후 12시간, 1년 12달
  • 컴퓨터 프로그래밍: 숫자 0과 1로 이루어진 2진법
  • 8진법 : 0 ~ 7
  • 16진법 : 0 ~ 9, a~f
  • 메서드
  • bin() : 10진수를 2진수
  • oct() : 10진수를 8진수
  • hex() : 10진수를 16진수

논리연산 및 비교연산(매우 중요)

  • 참/거짓 (불린)
  • 논리 연산을 잘 활용하는 것이 프로그래밍 핵심
In [25]:
print(True)
True
In [26]:
print(False)
False
In [27]:
print(type(True))
<class 'bool'>

논리 연산자

  • and : A and B : A 와 B 모두 참일때 참
  • or : A or B : 둘중 하나라도 참이면 참 둘다 거짓이면 거짓
  • not : not A : A가 참이면 거짓 , A가 거짓이면 참
In [28]:
print(True and True)
True
In [29]:
print(True and False)
False
In [30]:
print(False and True)
False
In [31]:
print(False and False)
False
In [32]:
print(False or True) print(True or True) print(True or False) print(False or False)
True
True
True
False
In [33]:
not True
Out[33]:
False
In [34]:
not False
Out[34]:
True

비교연산자

In [36]:
1 == 1
Out[36]:
True
In [37]:
1 != 2
Out[37]:
True
In [39]:
1 <= 2
Out[39]:
True
In [40]:
1 < 2
Out[40]:
True

비교연산자 + 논리연산자

In [41]:
1 > 0 and -2 < 0 #비교연산자(1순위) 논리연산자(2순위)
Out[41]:
True
In [42]:
((3 < 0) and (-5 > 0)) and (1 > 5) #괄호가 먼저 연산
Out[42]:
False

깃 허브 팁

  • Repo 1 : edu 학습 / 또는 교육
  • Repo 2 : Projects 관련
  • Repo 3 : 00공모전
  • 옵션() : 자기소개 Repo
  • 링크 추가 (Repo 2)

Chapter 4. 변수와 자료형

변수

In [45]:
#변수 : Variable, 데이터 a = 100 b = 1000
In [46]:
print(a)
100
In [47]:
print(b)
1000

변수명 짓기 규칙

  • snake, camel
  • Snake : num_a = 1

  • Camel : myStudent = 'evan'

주의해야할 것

  • 3star = '이장군' #숫자가 앞에 오면 안됨
  • 기본 내장 함수명은 변수명으로 만들면 안됨
  • 변수명은 띄어쓰기 공백 안됨
In [62]:
#실제 변수를 만들어보기 num1 = input('숫자를 입력해주세요') num2 = input('숫자를 입력해주세요') # input의 반환값은 문자열이 기본 print(num1, num2)
숫자를 입력해주세요100
숫자를 입력해주세요200
100 200
In [63]:
print(num1 + num2)
100200
In [64]:
print(int(num1) + int(num2))
300
In [65]:
print(type(num1)) #'str' 문자열
<class 'str'>
In [66]:
print(type(num2)) #'str' 문자열
<class 'str'>
In [ ]:
# 하고 시은것 : 사칙연산 #결론 문자열을 숫자로 변경 #int #구글 검색시 키워드를 검색뒤 날짜를 확인하여 최신

문자열

프로그래밍 문자열 표현

"" or ''

In [ ]:
a = '100' #문자열 b = '5000' #문자열
In [67]:
long_string = ''' 문장이 긴 텍스트 문장이 긴 텍스트 문장이 긴 텍스트 ''' print(long_string)
문장이 긴 텍스트
문장이 긴 텍스트
문장이 긴 텍스트

In [68]:
a = 'Enjoy ' b = 'Python!' print(a + b)
Enjoy Python!
In [69]:
print(a * 3)
Enjoy Enjoy Enjoy 

리스트(List)

  • 가장 중요한 자료형
  • 다른 프로그래밍 언어에서는 배열(Array)
  • 예시
  • 1반의 과목별 수학 점수
  • 다중의 데이터를 묶는다
In [70]:
# 1번 학생의 국어, 영어 , 수학, 과학 student1 = [90, 95, 85, 80] student1
Out[70]:
[90, 95, 85, 80]
In [71]:
print(type(student1))
<class 'list'>

인덱싱(indexsing)

  • 리스트에서 특정 데이터를 추출
  • 인덱싱은 0부터 시작, 즉 첫번째 항목이 0번 인덱싱
In [73]:
student1[0]
Out[73]:
90
In [74]:
print(student1[0]) print(student1[1]) print(student1[2]) print(student1[3])
90
95
85
80
In [75]:
greeting = 'Hello, Python'
In [76]:
greeting[7] #인덱스를 매칭하여 문자열 P뽑기
Out[76]:
'P'

리스트 수정 ,삭제

In [77]:
student1[0] = 100 #새로운 데이터 할당(수정)
In [78]:
student1
Out[78]:
[100, 95, 85, 80]
In [83]:
myFriends = ['James', 'Robert', 'Lisa', 'Mary']
In [82]:
#문자열의 덧셈 ,곱셈 연산자 리스트 적용
In [85]:
newFriends = ['Kim'] myFriends2 = myFriends + newFriends print(myFriends2)
['James', 'Robert', 'Lisa', 'Mary', 'Kim']
In [86]:
myNumbers = [1]
In [87]:
myNumbers * 3
Out[87]:
[1, 1, 1]
In [88]:
newFriends * 3
Out[88]:
['Kim', 'Kim', 'Kim']
In [89]:
mixed = [0, 2, 3.14, 'python', True, myFriends2] mixed
Out[89]:
[0, 2, 3.14, 'python', True, ['James', 'Robert', 'Lisa', 'Mary', 'Kim']]
In [91]:
#Lisa, L추출 myFriends2[2][0]
Out[91]:
'L'
In [96]:
mixed[5][4][0]
Out[96]:
'K'
In [99]:
mixed[-1][-1][0]
Out[99]:
'K'

슬라이싱

  • 문자열 리스트 그 외 파이썬 자료형 원리 동일 적용
In [100]:
list_data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [110]:
print(list_data) print(list_data[0:3]) #시작인덱스 : 끝인덱스-1 print(list_data[0:6]) print(list_data[4:]) print(list_data[:]) #모든 데이터 조회 print(list_data[::2])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2]
[0, 1, 2, 3, 4, 5]
[4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
In [ ]:
print(list_data[::2]) # 두칸 간격으로
In [107]:
greeting = 'Hello, Python' print(greeting[0:5])
Hello

튜플(Tuple)

  • 리스트와 유사
In [112]:
tuple1 = (1, 2, 3, 4) print(tuple1) print(type(tuple1))
(1, 2, 3, 4)
<class 'tuple'>
In [116]:
tuple_data = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) print(tuple_data[:]) print(tuple_data[:4]) print(tuple_data[3:7])
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(0, 1, 2, 3)
(3, 4, 5, 6)

차이점

  • 리스트는 수정,삭제가 가능
  • 튜플은 수정, 삭제가 불가능
In [120]:
l_data = [0, 1, 2, 3] t_data = (0, 1, 2, 3) #l_data[3] = 30 #3대신 30넣기 가능 #t_data[3] = 30 #3대신 30넣기 불가능 #del t_data[3] # 삭제 불가능