해당 글은 제로베이스데이터스쿨 학습자료를 참고하여 작성되었습니다
- 네덜란드 출신 개발자 "귀도 반 로섬"이 만든 개발자를 위한 프로그래밍 언어
- 인터프리터 언어
- 매우 쉬운 문법 구조
- 다양한 모듈 -> 매우 방대한 확장성
- 머신러닝, 딥러닝 등 인공지능 분야 최고의 언어
프로그램을 실행시키기 위해서는 코딩(프로그래밍언어로 프로그램을 작성하는 것)을 하고 입력한 소스코드를 기계어로 바꾸어서 실행시키는 작업을 거쳐야 한다. 이 방법에는 대표적으로 Compiler와 Interpreter가 있다.
(출처 : 제로베이스데이터스쿨)
- 개발편의 낮음, 용량감소, 실행속도 상승
-> 실행파일을 별도로 생성함
-> 개발 중 테스트마다 컴파일 수행으로 개발속도 저하
-> 완성된 실행파일만 있으면 작업가능하므로 용량감소, 실행속도 상승- ex) C/C++, Java 등
compiler : 어떤 언어를 다른 언어로 변환하는 compile를 수행하는 주체
(출처 : 제로베이스데이터스쿨)
- 개발편의 높음, 용량증가, 실행속도 감소
-> 소스파일에서 한줄씩 번역하여 수행
-> 테스트 과정이 수월함
-> 실행시 작성한 모든 파일이 있어야하므로 용량증가, 실행속도 감소- ex) Python, JavaScript, SQL 등
interpreter : 번역가,해석기
Compiler는 Low Level Language로 개발은 느리지만, 수행에는 유리하다.
그렇기 때문에 반도체, 의료 등 데스크탑이나 노트북이 아닌 기계를 사용하는 분야는 주로 C/C++, C# 등을 사용한다.
Interpreter는 High Level Langugage로 compiler와 반대이다.
Python은 주로 데이터와 머신러닝, 딥러닝분야에 사용된다.
- 영문사용 -> 한글도 사용가능하지만 일부오류가 있을 수 있음
- 첫번째는 소문자(대문자는 클래스)
- 첫번째 숫자금지
- 데이터의 의미를 알 수 있는 명사
- 예약어(파이썬에서 이미 예약된 단어) 사용금지
- 공백문자 사용금지
- 카멜표기법 or 스네이크표기법
PythonVariable = '카멜표기법' # 띄워쓰기를 하는 부분에 대문자를 사용하는 방식 python_variable = '스네이크표기법' # 언더바(_)로 띄워쓰기를 대신하는 방식
- 각 데이터의 자료형을 변환할 수 있다.
- 아래와 같은 방법으로 바꾸고 싶은 데이터 앞에 int(정수), float(실수), str(문자) 등을 입력하면 해당 자료형으로 변경된다.
- 논리값 True/Flase는 1/0으로 변환가능하다.
- 특정데이터가 존재하면 논리값은 True(1)이다.
- 단, 알파벳을 숫자형으로 바꾸는 등의 불가능한 것은 안된다.
- float를 int로 바꾸면 정수미만의 값은 버린다.
📝입력
inum = 100
print(inum)
print(type(inum))
fnum = float(inum)
print(fnum)
print(type(fnum))
snum = str(inum)
print(snum)
print(type(snum))
flag = True
print(flag)
print(type(flag))
str_flag = str(True)
print(str_flag)
print(type(str_flag))
🧾출력
100
<class 'int'>
100.0
<class 'float'>
100
<class 'str'>
True
<class 'bool'>
True
<class 'str'>
📝입력
flag = True
print(int(flag))
flag = False
print(int(flag))
var = '데이터있다'
print(var)
print(bool(var))
var = ''
print(var)
print(bool(var))
var = ' ' # 공백문자도 데이터이다
print(var)
print(bool(var))
🧾출력
1
0
데이터있다
True
False
True
- input()으로 받은 데이터는 모두 문자형(str)이다.
- 주로 자료형변환과 함께 사용된다.
📝입력
userInput = input('데이터를 입력하세요 : ')
print(userInput)
print(type(userInput))
print('정수로 자료형변환')
print(type(int(userInput)))
🧾출력
데이터를 입력하세요 : 10
10
<class 'str'>
정수로 자료형변환
<class 'int'>
출력의 여러가지 방식
- 일반입력방식
- 콤마(,) : 데이터 사이에 공백문자가 생성
- format방식 : 중괄호{} 위치에 데이터를 넣는 방식
📝입력
userName = '홍길동'
print(userName)
print('User name : ', userName)
print('User name : ' + userName)
print('user name : {}'.format(userName))
print('자동개행을 하지 않는 방식', end='')
print(' 이러면 자동개행이 안되죠')
num = 10
print(num, end='개\n')
print(str(num)+'개')
print(f'User name : {userName}')
num1 = 10
num2 = 11.1
print('num1 + num2 = {:5.3f}'.format(num1+num2))
print(f'num1 + num2 = {(num1+num2):5.3f}')
print(f'num1 + num2 = %.5f' %(num1 + num2))
print(f'num1 + num2 = %f' %(num1 + num2))
🧾출력
홍길동
User name : 홍길동
User name : 홍길동
user name : 홍길동
자동개행을 하지 않는 방식 이러면 자동개행이 안되죠
10개
10개
User name : 홍길동
num1 + num2 = 21.100
num1 + num2 = 21.100
num1 + num2 = 21.10000
num1 + num2 = 21.100000
특수문자
\t : 탭 입력
\n : 개행
\' : ' 입력
\" : " 입력
형식문자
%s : 문자열
%d : 정수형
%f : 실수
📝입력
userName = '홍길동'
userAge = 25
print('User name : %s' % userName)
print('User age : %d' % userAge)
print('User name : %s, User age : %d' % (userName, userAge))
print("Pi : %f" % 3.14)
print("Pi : %d" % 3.14)
🧾출력
User name : 홍길동
User age : 25
User name : 홍길동, User age : 25
Pi : 3.140000
Pi : 3