파이썬 기초 - 개념과 연산자

subinii·2024년 3월 13일

DS 25기

목록 보기
2/46

파이썬 특징과 툴

파이썬 특징

  1. 무한 정수를 처리할 수 있다.
  2. 문법 구조가 쉽다.
  3. 다양하고 뛰어난 묘듈이 많다 (묘듈 = 기능, 라이브러리)
  • 파이썬 IDLE (통합 개발 환경)
    - 프로그램 개발에 필요한 코드 작성과 디버깅, 실행 등을 위한 툴 (=코딩 툴)
    • 간단한 코드 작성에 사용
  • 코드 편집기 사용 법 : 파이썬 쉘 파일 -> 뉴 파일
    • 저장해야 코딩 가능 (ctrl + s)
    • 실행 f5

컴파일러와 인터프리터

  • 컴파일러 : 우리가 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 바꿈 .
    • 소스 전체를 실행 파일로 만든 후 기계에서 실행 → 번역과 같음 (ex. c/c++, java)
  • 인터프린터 : 컴파일러와 달리 실행 파일을 만들지 않고 실행이 필요할 때 기계어로 변환 함.
    • 필요한 소스 코드만 그때 그때 실행함 → 동시 변역과 같음 (ex. python)

데이터와 메모리 그리고 변수

  • 데이터 : 관찰이나 측정을 통해 수집된 데이터 (수집, 가공)
  • 메모리 : 데이터를 저장
  • 변수 : 데이터가 저장되어 있는 메모리 공간.
    • 변수 명 (이름 설정 => 변수 선언)
    • 변수를 정의할 때 반드시 ‘초기화’하도록 합니다. 선언 후 초기화 하지 않으면 오류가 나기 때문
  • 변수를 사용하는 이유 : 데이터를 재사용 하기 위해서, 프로그램을 보다 효율적으로 관리할 수 있다.

변수 작명법

  1. 영문 사용하기
  2. 첫 번째 단어는 소문자로하기 (class에 혼동을 줌)
  3. 가급적 데이터의 의미를 파악할 수 있는 명사 사용
  4. 카멜 표기법 또는 스네이크 표기법 사용 (코드 판독, 가독성)
    • customerBankAccount => ⭕
    • customer_bank_account => ⭕
    • customerbankaccount => ❌
  5. 예약어(이미 파이썬에서 예약된 단어) 사용 금지

    (해당 코드 실행해보기)
  6. 특수 문자 사용 금지 (단, _ 언더바는 가능)
  7. 공백문자 사용 금지
  8. 숫자는 사용해도 되지만 첫 번째 사용 금지

자료형 (Data Type)

print(type(변수))

  1. 자료형 : 효율적인 메모리 사용을 위해서 데이터를 정수형, 실수형, 문자(열)형, 논리형으로 구분한 것
  • 정수 : int
    • 메모리가 허용되는 한 무한 사용 가능
  • 실수 : float
    • 대략 소수점 이하 17~18번째 데이터부터 손실됨 (데이터 왜곡)
  • 문자(열) : str
    • 문자(열)형은 작은따옴표 또는 큰따옴표를 사용할 수 있으나, 혼용해서 사용할 수는 없다.
  • 논리형 : bool (Ture, False)
  1. 자료형 변환 : 데이터 타입을 변환하는 것으로 파이썬에서 제공하는 함수를 이용

데이터 입,출력

데이터 입력

데이터 입력 : input() 함수를 이용한 데이터 입력 ⇒ 문자 타입 (str)

EX)
userInputData = input('키보드를 통해서 데이터를 입력하세요.')
print(userInputData)

출력 결과⬇️

입력 받은 데이터 형 변환

데이터 출력

  • print()
  • 콤마(,)를 이용한 데이터 연속 출력
  • end = ‘’ (자동 기행 막기 위함)
  • 포맷 문자열을 이용한 데이터 출력 - 파이썬에서 가장 정석적인출력
EX)
print(f'user name : {userName}')
print(f'user age :  {userAge}')
print(f'user name :  {userName} , user age :  {userAge}')

format()함수와 형식 문자

  • format() 함수
    • {} 인덱스 활용 가능
EX)
print('user name : {}'.format(userName))
 print('user age : {}'.format(userAge))
 print('user name : {}, user age : {}'.format(userName, userAge))
  • 형식 문자를 이용한 데이터 출력
    • %s → 문자열, %d → 정수, %f → 실수 (%.3f ⇒ 소수점 3번째 까지)
EX)
print('user name : %s' % userName)
print('user age : %d' % userAge)
print('user name : %s, user age : %d' % (userName,userAge))`

pi = 3.14print('pi : %f' % pi)
print('pi : %.2f' % pi)
print('pi : %d' % pi)`

연산자

산술연산자 : +, -, , /, %, //, **
할당연산자 : =, +=,-=,
=, /=, %=, //=
비교 연산자 : >, ≥, <, ≤, ==, ≠
논리 연산자 : and, or, not

산술연산자 (+, -, *, /, %, //, **)

덧셈, 뺄셈

  1. 숫자와 문자 덧셈 ❌
  2. 문자와 문자 덧셈 ⭕
  3. 문자와 문자 뺄셈 ❌`

곱셈 나눗셈

  1. 나눗셈 결과는 항상 float이다.
  2. 0을 나눗셈 하는 경우에 결과는 항상 0이다.
  3. 0으로 나눌 수 없다.

나머지와 몫

  1. 몫 : //
    나머지 : %
  2. 한번에 구하기 : divmod() 함수
EX)
employee = int(input('직원 수 :')) 
apple = int(input('사과 수 : '))
result = divmod(employee, apple)
print('사과를 나누어 줄 수 있는 최대 직원 수 : {}명'.format(result[0]))
print('남는 사과의 개수 : {}개' .format(result[1]))

거듭제곱 연산자

거듭제곱 연산자 : 같은 수를 여러 번 곱한 값을 구한다.

  • num1 num2 ⇒ num1의 num2승
    - 2
    3 ⇒ 2의 3

  • 제곱근 구하기
    - n의 m제곱근 공식 : n ** (1/m)

  • math 모듈의 sqrt()와 pow() 함수
    - sqrt() - 제곱근 구하기 (2제곱 근만 사용 가능 / 다른 수의 제곱근은 불가능)
    - pow() - 거듭제곱 구하기

EX)
import math
print(math.sqrt(2))
print(math.pow(2,3))

복합 연산자 (+=,-=, *=, /=, %=, //=, **= )

할당(대입) 연산자 : 오른쪽의 값을 왼쪽에 할당(대입)
1. += : 덧셈 연산 후 할당 (num1 = num1 + 5 : num1 += 5)

Ex) #은 산술 연산자로 변환된 코드이다. 
num = 10
num += 3   # num = num + 3
print('num : {}' .format(num))
=> num : 13
  1. -= : 뺄셈 연산 후 할당
num = 10
num -= 3   # num = num - 3
print('num : {}' .format(num))
=> num : 7
  1. *= : 곱셈 연산 후 할당
num = 10
num *= 3   # num = num * 3
print('num : {}' .format(num))
=>num : 30
  1. /= : 나눗셈 연산 후 할당
num = 10
num /= 3   # num = num / 3
print('num : {}' .format(num))
=> num : 3.3333333333333335
  1. %= : 나머지 연산 후 할당
num = 10
num %= 3   # num = num % 3
print('num : {}' .format(num))
=> num : 1
  1. //= : 몫 연산 후 할당
num = 10
num //= 3   # num = num // 3
print('num : {}' .format(num))
=> num : 3
  1. **= : 거듭제곱 연산 후 할당
num = 10
num **= 3   # num = num ** 3
print('num : {}' .format(num))
=> num : 1000

비교 연산자 (>, ≥, <, ≤, ==, !=)

  1. 숫자 비교 : 연산의 결과는 bool이다 (True, False)
num1 = 10; num2 = 5

result = num1 > num2
print('num1 > num2 : {}'.format(result))
=> num1 > num2 : True

result = num1 >= num2
print('num1 >= num2 : {}'.format(result))
=> num1 >= num2 : True

result = num1 < num2
print('num1 < num2 : {}'.format(result))
=> num1 < num2 : False

result = num1 <= num2
print('num1 <= num2 : {}'.format(result))
=> num1 <= num2 : False

result = num1 == num2
print('num1 == num2 : {}'.format(result))
=> num1 == num2 : False

result = num1 != num2
print('num1 != num2 : {}'.format(result))
=> num1 != num2 : True
  1. 문자 비교 (대문자와 소문자의 표기법이 다름)
    - 아스키 코드를 이용한 비교 연산
    (필요 시 구글에 ‘아스키 코드표’ 검색 후 사용)
    - 문자와 아스키 코드 변환
    (ord - 문자를 정수(10진수)로 표현 ) / (chr - 10진수를 문자로)
    - 문자열 비교 : 문자열 자체 비교 (Ture, False) / 같거나 같지 않다만 출력 가능

논리 연산자 (and, or, not )

논리 연산자 : 피연산자의 논리 (Ture/False)를 이용한 연산
1. and 연산자
A and B : A와 B 모두 ture인 경우만 결과값으로 true이다.
2. or 연산자
A or B : A와 B 중 어느하나만 ture이면 결과 값은 true이다.
3. not 연산자
not A : A의 상태를 부정하는 결과를 나타낸다.

operator 모듈 함수

operator 모듈이란 : 누군가 이미 만들어 놓은 훌륭한 기능 (무료)
ex) 수학 연산 관련 모듈, 난수 관련 모듈, 연산자 관련 모듈 등
(import operator 사용)

단축키 요약

  • 파이참 실행 : ctrl + shift + F10
  • 파이참 복사 : ctrl + D
  • 주석쓰기
    • 한줄 : ctrl + / 또는 #
    • 여러줄 : ''' (첫과 끝)
  • 특수문자 : \t (탭) , \n (개행)
  • 자동 기행 막기 : end = ‘’

“이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.”

profile
데이터 공부 기록

0개의 댓글