1991년 네덜란드 개발자 귀도 반 로섬이 만듦
구글은 자바와 함께 파이썬을 메인 언어로 사용하고 있음
특징
컴파일러 : 우리가 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 바꿈
소스전체를 실행파일로 만든 후 기계에서 실행 -> 번역과 같음(ex. c/c++, java)

인터프린터 : 컴파일러와 달리 실행 파일을 만들지 않고 실행이 필요할 때 기계어로 변환함.
필요한 소스코드만 그때 그때 실행 함. -> 동시 통역과 같음 (ex.python)

데이터 : 관찰이나 측정을 통해 수집된 데이터
메모리 : 데이터를 저장하고 있다.
변수 : 데이터가 저장되어 있는 메모리 공간
number = 10 ( 변수 선언 및 초기화)
** 변수를 정의할 때 반드시 '초기화'를 해야한다.
데이터 재사용 : 변수는 주로 데이터를 재사용하기 위한 목적으로 사용
변수 작명법)
1. 영문 사용
2. 첫 글자는 소문자로
3. 가급적 데이터이 의미를 파악할 수 있는 명사 사용
4. 카멜 표기법 (ex. customerBankAccount='125-01-12345') 또는 스네이크 표기법 (ex. customer_bank_account='125-01-12345') 사용
5. 예약어(파이썬에서 이미 예약된 단어) 사용 금지
6. 특수 문자 사용 금지 (단, 언더바(__)는 사용 가능)
7. 공백문자 사용 금지
8. 숫자는 사용해도 되지만 첫 번째 사용 금지
자료형이란 효율적인 메모리 사용을 위해서 데이터를 정수형, 실수형, 문자(열)형, 논리형으로 구분한 것
정수형 : int
정수는 메모리가 허용되는 한 무한 사용 가능
실수 : float
실수는 대략 소수점 이하 17-18번째에서 데이터 손실이 일어남
문자(열) : str
숫자도 따옴표로 묶으면 문자(열)로 인식함
논리형 : bool
True, False을 구분하기 위한 자료형
**문자(열)형은 작은따옴표 또는 큰따옴표를 사용할 수 있으나, 혼용해서 사용할 수는 없다.
자료형 변환 : 데이터 타입을 변환하는 것으로 파이썬에서 제공하는 함수를 이용
var = 100
print(var)
print(type(var))
var = str(var)
print(var)
print(type(var))
100
<class 'int'>
100
<class 'str'>
var = 3.14
print(var)
print(type(var))
var = str(var)
print(var)
print(type(var))
3.14
<class 'float'>
3.14
<class 'str'>
var = True
print(var)
print(type(var))
var = str(var)
print(var)
print(type(var))
True
<class 'bool'>
True
<class 'str'>
var = True
print(var)
print(type(var))
var = int(var)
print(var)
print(type(var))
True
<class 'bool'>
1
<class 'int'>
num1 = 123
num2 = 456
print(num1 + num2)
num1 = str(num1)
num2 = str(num2)
print(num1 + num2)
579
123456
fNum1 = 3.14
fNum2 = 0.123
print(fNum1 + fNum2)
fNum1 = str(fNum1)
fNum2 = str(fNum2)
print(fNum1 + fNum2)
3.263
3.140.123
flag1 = True
flag2 = False
print(flag1)
print(flag2)
flag1 = str(flag1)
flag2 = str(flag2)
print(flag1 + flag2)
True
False
TrueFalse
input() 함수를 이용한 데이터 입력
print('키보드를 통해서 데이터를 입력하세요')
userInputData =input()
print(userInputData)
**input()함수를 이용해서 입력한 데이터는 항상 문자(열) 자료형
입력받은 데이터 형 변환
userInputData = input('문자형을 입력하세요.')
print(userInputData)
print(type(userInputData))
userInputData = int(input('정수형을 입력하세요. '))
print(userInputData)
print(type(userInputData))
userInputData = float(input('실수형을 입력하세요. '))
print(userInputData)
print(type(userInputData))
userInputData = bool(input('논리형을 입력하세요. '))
print(userInputData)
print(type(userInputData))
문자형을 입력하세요. hello
hello
<class 'str'>
정수형을 입력하세요. 10
10
<class 'int'>
실수형을 입력하세요. 3.14
3.14
<class 'float'>
논리형을 입력하세요. True
True
<class 'bool'>
print() 함수를 이용한 기본적인 데이터 출력
userName = '홍길동'
print(userName)
userAge = 20
print(userAge)
홍길동
20
콤마(,)를 이용한 데이터 연속 출력
print('User name : ', userName)
print('User age : ', userAge)
print('User name : ', userName, ', User age : ', userAge)
User name : 홍길동
User age : 20
User name : 홍길동, User age : 20
포맷 문자열을 이용한 데이터 출력
print(f'User name : {userName}')
print(f'User age : {userAge}')
print(f'User name : {userName}, User age : {userAge}')
User name : 홍길동
User age : 20
User name : 홍길동, User age : 20
** 특수 문자
\t : 탭
\n : 개행
print(f'User name\t:\t{userName}\nUser age\t:\t{userAge}')
User name : 홍길동
User age : 20
print('User name : {}'.format(userName))
print('User age : {}'.format(userAge))
print('User name : {}, User age : {}'.format(userName, userAge))
User name : 홍길동
User age : 20
User name : 홍길동, User age : 20
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 : 20
User name : 홍길동, User age : 20
Pi : 3.140000
Pi : 3
result = data1 + data2
# 알바비와 카드값을 입력하고, 남은 금액이 얼마인지 출력해보자
partTimeMoney = int(input('알바비 입력 : '))
cardMoney = int(input('카드값 : '))
result = partTimeMoney - cardMoney
print('partTimeMoney : {}원'.format(partTimeMoney))
print('cardMoney : {}원'.format(cardMoney))
print('남는돈 : {}원'.format(result))
** 나눗셈 결과는 항상 float이다.
result = divmod(num1, num2)
print('result: {}'.format(result))
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))
result: (3,1)
몫: 3
나머지: 1
# 아들이 엄마한테 용돈을 받는데, 첫 달에는 200원을 받고 매월 이전 달의 2배씩 인상하기로 했다. 12개월째 되는 달에는 얼마를 받을 수 있는지 계산해보자.
firstMonthMoney = 200
after12Month = ((firstMonthMoney * 0.01) **12) * 100
print('12개월 후 용돈 : %.f원' % after12Month)
after12Month = int(after12Month)
after12MonthFormated = format(after12Month, ',')
print('12개월 후 용돈 : %s원' % after12MonthFormated)
12개월 후 용돈 : 409600원
12개월 후 용돈 : 409,600원
모듈이란, 누군가 이미 만들어 놓은 훌륭한 기능(우리는 공짜로 사용할 수 있다)


조건식이란, 어떤 조건에 따라 실행이 분기 되는 식
A if 조건식 else B : 조건식의 결과가 True이면 A실행, 그렇지 않으면 B실행
조건문 : 특정 조건에 따라 프로그램을 분기한다.
반복문이란, 특정 실행을 반복하는 것
반복문을 사용하면 프로그래밍이 간결하고 유지보수가 쉽다.
for i in range(100):
print('i -> {}'.format(i))
for i in range(1, 11, 1) :
1부터 10까지 1씩 증가하면서 반복 (단계가 1인 경우, 생략 가능)
for i in range(0, 10, 2) :
0부터 9까지 2씩 증가하면서 반복 (시작이 0인 경우, 생략 가능)
# 1부터 100까지의 정수 중 3의 배수에 해당하는 정수만 출력하는 코드
for i in range(1,101):
if i % 3 == 0
print(i)
num = 0
while (num < 10):
print('num -> {}'.format(num))
num +=1
# 1부터 100까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력하자.(while문 이용해서)
n =1
while n < 101:
if n%2 == 0:
print('{}은 2의 배수이다.'.format(n))
if n%3 == 0:
print('{}은 3의 배수이다.'.format(n))
n +=1
반복문 사용 시 무한 반복에 주의해야 한다.
반복문을 빠져나올 수 없는 경우를 무한 루프라고 한다.
1. while문에서 조건식의 결과가 항상 True인 경우
2. 조건식에 논리형 데이터를 사용해서 무한 반복 실행할 수 있다.
반복문을 제어하는 방법
1. countinue 키워드 : 반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.
2. else 키워드 : else의 실행문은 반복문이 종료된 후 실행된다.
3. break 키워드 : 반복 실행 중 break를 만나면 반복문을 빠져나온다.