[1주차] python 기초

목해민·2023년 1월 8일

01. python이란?

  • 1991년 네덜란드 개발자 귀도 반 로섬이 만듦

  • 구글은 자바와 함께 파이썬을 메인 언어로 사용하고 있음

  • 특징

    • 문법 구조가 쉽다
    • 다양하고 뛰어난 모듈이 많다.
    • 무한 정수를 처리할 수 있다.

02. python 실행 과정

  • 컴파일러 : 우리가 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 바꿈
    소스전체를 실행파일로 만든 후 기계에서 실행 -> 번역과 같음(ex. c/c++, java)

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

03. 데이터와 메모리, 변수

데이터 : 관찰이나 측정을 통해 수집된 데이터
메모리 : 데이터를 저장하고 있다.

변수 : 데이터가 저장되어 있는 메모리 공간
number = 10 ( 변수 선언 및 초기화)
** 변수를 정의할 때 반드시 '초기화'를 해야한다.

데이터 재사용 : 변수는 주로 데이터를 재사용하기 위한 목적으로 사용

변수 작명법)
1. 영문 사용
2. 첫 글자는 소문자로
3. 가급적 데이터이 의미를 파악할 수 있는 명사 사용
4. 카멜 표기법 (ex. customerBankAccount='125-01-12345') 또는 스네이크 표기법 (ex. customer_bank_account='125-01-12345') 사용
5. 예약어(파이썬에서 이미 예약된 단어) 사용 금지
6. 특수 문자 사용 금지 (단, 언더바(__)는 사용 가능)
7. 공백문자 사용 금지
8. 숫자는 사용해도 되지만 첫 번째 사용 금지

04. 자료형 (Data type)

자료형이란 효율적인 메모리 사용을 위해서 데이터를 정수형, 실수형, 문자(열)형, 논리형으로 구분한 것

정수형 : int
정수는 메모리가 허용되는 한 무한 사용 가능

  • num = 10
  • score = 85

실수 : float
실수는 대략 소수점 이하 17-18번째에서 데이터 손실이 일어남

  • pi = 3.14
  • height = 180.5

문자(열) : str
숫자도 따옴표로 묶으면 문자(열)로 인식함

  • intro = '안녕하세요'
  • country = 'korea'

논리형 : bool
True, False을 구분하기 위한 자료형

  • exampleResult = True
  • dayOff = 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

05. 데이터 입력

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'>

06. 데이터 출력

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

07. _format()와 형식문자

  • format()함수를 이용한 데이터 출력
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

  • 형식 문자를 이용한 데이터 출력
    %s : 문자열
    %d : 정수
    %f : 실수
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

08. 산술연산자

result = data1 + data2

  • 산술 연산자 : +,-,*,/,%,//,**
  • 할당 연산자 : =,+=,-=,*=,/=,%=,//=
  • 비교 연산자 : >,>=,<,<=,==,!=
  • 논리 연산자 : and, or, not
# 알바비와 카드값을 입력하고, 남은 금액이 얼마인지 출력해보자

partTimeMoney = int(input('알바비 입력 : '))
cardMoney = int(input('카드값 : '))
result = partTimeMoney - cardMoney
print('partTimeMoney : {}원'.format(partTimeMoney))
print('cardMoney : {}원'.format(cardMoney))
print('남는돈 : {}원'.format(result))

** 나눗셈 결과는 항상 float이다.

  • 나머지와 몫을 한번에 구하기 : divmod()함수
result = divmod(num1, num2)
print('result: {}'.format(result))
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))

result: (3,1)
몫: 3
나머지: 1

  • 제곱근 구하기
    • sqrt()함수 이용
    • n의 m제곱근 : n**(1/m)
  • 거듭제곱 구하기
    • pow()함수 이용
# 아들이 엄마한테 용돈을 받는데, 첫 달에는 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원

09. 복합연산자

  • += : 덧셈 연산 후 할당
  • -= : 뺄셈 연산 후 할당
  • *= : 곱셈 연산 후 할당
  • /= : 나눗셈 연산 후 할당
  • %= : 나머지 연산 후 할당
  • //= : 몫 연산 후 할당
  • **= : 거듭제곱 연산 후 할당

10. operator 모듈

모듈이란, 누군가 이미 만들어 놓은 훌륭한 기능(우리는 공짜로 사용할 수 있다)


11. 조건식

조건식이란, 어떤 조건에 따라 실행이 분기 되는 식
A if 조건식 else B : 조건식의 결과가 True이면 A실행, 그렇지 않으면 B실행

조건문 : 특정 조건에 따라 프로그램을 분기한다.

  • if문 : 단일조건
  • if~else문 : 양자택일
    조건식 결과에 따라 둘 중에 하나가 실행됨
  • if~elif문 : 다자택일(다중조건)
    여러 가지 조건식 결과에 따라 실행문이 결정됨
    주의할 점) 조건식 순서가 중요하다.
    조건 범위를 명시한다.

12. 반복문

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

  • 횟수에 의한 반복 (for문)
    정해 놓은 반복 횟수에 따라 반복 실행한다
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)
  • 조건에 의한 반복(while문)
    조건에 만족하면 반복 실행한다. 그렇지 않으면 반복을 중단한다.
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를 만나면 반복문을 빠져나온다.

profile
데이터분석가

0개의 댓글