- 1991년 네델란드 개발자 귀도 반 로섬이 만듦.
- 처음 소규모 프로젝트에 사용하기 위해서 만듦.
- 이후 주변 사람들로부터 인기를 얻어 완성도가 높은 파이썬이 탄생함.
- 구글은 자바와 함께 파이썬을 메인 언어로 사용하고 있음.
- 'Python'이란 이름은 귀도 반 로섬이 좋아하는 프로그램에서 유래됨
- 무한 정수를 처리할수 있다.
- 문법 구조가 쉽다.
- 다양하고 뛰어난 모듈이 많다.
- 컴파일 언어는 소스 전체를 실행 파일로 만든 후 기계에서 실행 -> 번역과 같음. (예,c / java)
- 인터프린터 언어는 필요한 소스 코드만 그떄 그때 실행 -> 동시통역과 같음. (예, python)

- 데이터가 저장되어 있는 메모리 공간

- 변수를 정의할떄 반듯이 초기화하도록 합니다.
- 초기화 하지 않으면 NameErro: name 'num' is not defined

- 변수는 주로 데이터를 재사용하여 프로그램을 보다 효율적으로 관리하는 목적으로 사용합니다.
- 영문 사용
- 첫 번재는 소문자
- 가급적 데이터 의미를 파악할 수 있는 명사 사용
- 카멜 표기법 또는 스네이크 표기법을 사용
- 예약어 사용 금지
- 특수문자 사용 금지 (단, 언더바 (_) 는 사용 가능)
- 공백문자 사용 금지
- 숫자는 사용해도 되지만 첫 번째 사용 금지
- 효율적인 메모리 사용을 위해서 데이터를 정수형,실수형,문자(열)형,논리형으로 구분한 것.
- 정수는 메모리가 허용되는 한 무한 사용 가능
- 실수는 대략 소수점 이하 17~18번째에서 데이터 손실이 일어남.
- 숫자도 따옴표로 묶으면 문자(열)로 인식함.
- 논리형은 True(나머지), False(0)을 구분하기 위한 자료형.
- 데이터 타입을 변환하는 것으로 파이썬에서 제공하는 함수를 이용한다.
- str(문자열로) int(정수로) float(실수로) bool(논리형으로)
- 빈 문자 : 데이터 없음, bool('') -> False
- 공백 문자 : 데이터 있음, bool(' ') -> True

- input() 함수를 이용한 데이터 입력.
- input() 함수에 입력 가이드 문구 명시.
- input() 함수를 이용해서 입력한 데이터는 항상 문자(열) 자료형.
- 형 변환 함수를 이용하여 입력받은 데이터 형을 변환.
- Print() 함수를 이용한 기본적인 데이터 출력
- 콤마 (,) 를 이용한 데이터 연속 출력
- 포맷 문자열을 이용한 데이터 출력
- 특수문자 : \t (탭) \n (개행)
- format() 함수를 이용한 데이터 출력
print('User name : {}, User age : {}'.format(userName,userAge))
- format() 함수의 인덱스를 이용한 출력
print('나의 이름은 {0}이고, 나이는 {1}살 입니다.{0} 이름은 아버님꼐서 지어 주셨습니다.'.format(userName,userAge))
- 형식 문자를 이용한 데이터 출력
%s -> 문자열 %d -> 정수 %f -> 실수print('User name : %s, User age : %d, User avgScore : %.2f' % (userName, userAge, userAvgScore)

- 산술 연산자 : + - * / % // **
- 할당 연산자 : = += -= *= /= %= //=
- 비교 연산자 : > >= < <= == !=
- 논리 연산자 : and or not
- 문자와 숫자를 이용한 덧셈 X
_TypeError: unsupported operand type(s) for +: 'int' and 'str'_
- 문자(열)을 이용한 뺼셈 X
TypeError: unsupported operand type(s) for -: 'str' and 'str'
- 0으로 나누는 경우 X
ZeroDivisionError: division by zero
- 나눗셈 결과는 항상 float 이다
- 나머지와 몫을 한번에 구하기 : divmod(num1,num2)
result = divmod(num1,num2) print('result : {}'.format(result)) print('몫 : {}'.format(result[0])) print('나머지 : {}'.format(result[1]))
- 숫자 비교 연산 결과는 bool 이다.
- 문자 비교 : 아스키 코드를 이용한 비교연산

- 모듈이란, 누군가 이미 만들어 놓은 훌륭한 기능
- 산술 연산자 관련 함수

- 비교 연산자 관련 함수

- 논리 연산자 관련 함수

- math 모듈의 sqrt()와 pow() 함수

- 제곱근 구하기

- 조건식이란, 어떤 조건에 따라 실행이 분기 되는 식.

- 조건식(삼항연산자)의 두가지 사용법
1. 조건식 결과에 따른 실행만 하는 경우print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')2. 조건식 결과를 변수에 할당하는 경우result = '가능' if userPoint >= minAblePoint else '불가능' print('포인트 사용 가능 여부 : {}'.format(result))
- 특정 조건에 따라 프로그램을 분기한다.

- if 문 : 단일조건
- if ~ else 문 : 양자택일
- if ~ elif 문 : 다자택일(다중조건)
- 모든 조건식(삼항연산자)은 if ~ else 문으로 변경할 수 있다.
- 모든 if ~ else 문을 조건식으로 변경할 수 있는 것은 아니다.

- if ~ elif문 : 여러 가지 조건식 결과에 따라 실행문이 결정됨.
- 조건식 순서가 중요하다.

- 조건 범위를 명시한다.

- 조건문 안에 또 다른 조건문이 있을 수 있다.

- 반복문이란 특정 실행을 반복하는 것.
- 반복문을 사용하면 프로그래밍이 간결하고 유지 보수가 쉽다.
- 횟수에 의한 반복

- 조건에 의한 반복

- 정해 놓은 반복 횟수에 따라 실행한다.
- 횟수에 의한 반복은 for문이 사용된다
- for ~ in

- range() 기본 사용 방법
- 단계가 1인 매개변수 생략 가능
- 시작이 0인 경우 생략 가능

- 조건에 만족하면 반복 실행한다. 그렇지 않으면 반복을 중단한다.
- 조건에 의한 반복은 while문이 주로 사용된다.
- while문 사용 방법

- 횟수에 의한 반복이라면 for문이 while문 보다 적합하다.

- 조건에 의한 반복이라면 while문이 for문 보다 적합하다.


- 반복문을 빠져나올 수 없는 경우를 무한 루프라고 한다
- while문에서 조건식의 결과가 항상 True인 경우

- 조건식에서 논리형 데이터를 사용해서 무한 반복 실행할 수 있다.

- continue 키워드
- 반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.

- else 키워드
- else의 실행문은 반복문이 종료된 후 실행된다.

- break 키워드
- 반복 실행 중 break를 만나면 반복문을 빠져나온다.

- 반복문안에 또 다른 반복문을 선언한다.
