프로그래밍/Python

Python 공부 1일차(1장~4장)

은바재바 2021. 5. 30. 21:58

OS

- 컴퓨터는 여러 하드웨어 제품을 포함하는데 이러한 장치들을 처리하기 위해 OS같은 운영체제를 실행

- 컴퓨터 내에서 하드웨어에 직접 접근할 수 있는 유일한 프로그램

- 예) 키보드에서 언떤 키가 눌렸는지, 저장소에서 데이터를 가져올 때 등 운영체제에 요청 

 

인터프리터/가상머신

- 프로그래머와 컴퓨터 하드웨어 사이에 계층을 두어 사용자의 프로그램을 넘겨받아 명령어를 OS가 이해하는 언어로

  바꾸면서 대신 실행

- OS상단에서 바로 프로그램을 작성하는 것 보다 더 쉽고 OS간 이식이 가능

 

인터프리터 사용법

  1. 확장자가 .py인 파일에 저장된 파이썬 프로그램을 실행하라고 명령
  2. 셸 프로그램으로 한 번에 한 명령어씩 입력하면서 인터프리터와 상호작용

타입

- 피연산자가 int와 float면 파이썬은 자동으로 int를 float로 변환

- 실수를 쓸 때는 소수점 아래 0 생략 가능하지만 가독성을 위해 선호하지 않음

- 정수 나눗셈 결과를 올림하지 않고 가장 가까운 정수로 내림값을 반환

-17 // 10 # 1

- 음수 연산자에 %,//를 쓸 경우 정수 나눗셈 결과를 내림하기 때문에 결과가 음수면 결괏값은 예상 값보다 1 작음

-17 // 10 # -2

- 나머지 연산자를 사용할 때 결괏값의 부호는 두 번째 연산자의 부호를 따름

-17 % 10 # 3
17 % - 10 # -3

유한정밀도

- 빠른 계산과 메모리 효율성을 위해 한 숫자에 대해 저장하는 정보 용량을 제한함

- 작은 수부터 큰 수 순으로 더해서 오류 최소화

 

연산자 우선순위

- 우선순위가 낮은 표현식을 괄호()로 묶어 우선순위를 높여 적용

 

컴퓨터 메모리 

- 메모리 내 모든 위치는 집 주소처럼 고유한 식별 주소가 있음

- 정수와의 구별을 위해 identifier의 약자인 id 접두사를 사용해 id1, id2 처럼 표시

- 내장함수인 id를 이용해 실제 메모리 주소 확인 가능

 

오류

    1. 구문 오류(syntax error)

       :: 유효하지 않은 파이썬 코드를 입력했을 때 발생하는 오류

    2. 의미 오류(semantic error)

       :: 존재하지 않는 변수를 사용하는 등의 명령을 내렸을 때 발생하는 오류

 

긴 명령문

- 명령문이 길어지는 경우가 있는데 Python에서는 공백, 탭, 공백 문자를 포함해 한 줄에 최대 80개의 문자만 허용

- 하나의 명령문을 두 줄 이상에 표현하는 방법

  1. 괄호 안에서만 줄을 나눔
  2. 줄 연속 문자인 백슬래시(\) 사용

주석

- #을 이용해 주석문 사용

 

읽기 쉬운 코딩 작성

- 일관된 변수명 사용

- 적절한 공백을 사용해 읽기 쉽게 작성

# 프로그래밍 스타일 가이드 검색하면 다양한 예제가 있음

 

파이썬이 기억하고 재사용하는 객체

- Python 버전에 따라 작은 정수는 흔하기 때문에 처음 구동할 때 생성한 후 같은 객체를 재사용해 연산 속도 상승

 

 

변수


- 프로그램이 실행되면서 값이 변할 수 있는 수

- 대/소문자 구분

- 변수명은 철자와 숫자, 밑줄 기호를 사용해 변수명 생성

test-code! # 구두점 포함하고 있어 적절하지 않은 변수명
8test_code # 변수명은 숫자로 시작할 수 없음

- 변수에 값을 할당한 명령문을 할당문이라고 함

test_code = 13.5 # test_code 변수에 값 13.5를 할당
                 # test_code는 값 13.5를 참조

- 표현식에 변수가 나오면 그 변수가 참조하는 값으로 대체

 

지역변수

- 함수 내에서 생성한 변수

- 함수를 호출할 때마다 생성되며, 함수가 반환될 때 제거됨

- 함수 밖에서는 사용 불가

 

함수


내장함수

- abs, pow, round, int, float 같은 공통 연산을 수행하는 함수가 내장되어 있음

 

사용자정의 함수

- 사용자가 원하는 작업을 수행하기 위해 작성하는 함수

 

인수 

- 함수 호출 시 괄호 사이에 들어가는 표현식

 

반환 값

- 함수에서 연산을 마치고 호출한 곳으로 반환할 값

- return문이 없는 함수는 None을 반환

 

함수 호출 규칙

  1. 왼쪽부터 순서대로 한 번에 한 인수씩 평가
  2. 결괏값을 함수에 전달
  3. 함수를 실행하고 함수 호출이 끝나면 값을 생성

함수의 동작 확인

- help(함수명)을 호출해 함수에 대한 설명을 확인

 

키워드

- Python 내부에서 사용하려고 예약해둔 단어로 Python이 의도한 대로만 사용 가능

- 키워드는 함수명, 변수명으로 사용 불가

- 키워드 목록

False assert del for in or while
None break elif from is pass with
True class else global lambda raise yield
and continue except if nonlocal return  
as def finally import not try  

함수 덮어쓰기

- 같은 파일 안에 같은 함수명이 두 번 나올 경우 두 번째 함수가 덮어씀

 

네임스페이스

- 함수 호출을 실행할 때마다 그 호출에 쓰이는 지역변수를 저장할 임시 공간

- 함수가 반환될 때 제거됨

 

함수 디자인

  1. 첫 줄은 함수 헤더로 매개변수에는 함수에 전달할 저정보 타입을 표기하고, -> 뒤에 표기한 타입은 함수가 반환할 타입
  2. 문서화 문자열(""")을 사용해 함수가 호출될 때 어떤 일을 하는지 설명을 작성
  3. 함수의 예제와 반환값 표기
  4. 문서화 문자열 마침
  5. 함수 본문 

- 이러한 내용은 생략 가능

def test_function(x: int, y: int) -> int:
    """  # 문서화 문자열
       
       x와 y간 수의 차이 반환
       x와 y의 값은 0~200 사이의 값
     
   	   >>> test_function(1,3)
       2
       
    """
    return y - x

텍스트 처리


문자열 표현

- " 또는 '로 감싸서 표현

- 문서화 문자열은 "로 표현하도록 권장

- " 내에 '로 감싸진 문자 삽입 가능

 

문자열 결합

- 'test' + 'code' 처럼 +의 두 피연산자가 문자열이면 결합연산자라고 부름

'test' + 'code'
>>> 'test code'

 

- * 연산자를 이용해 문자열 반복

'test' * 3
>>> 'testtesttest'

# 정수가 0이하일 경우 빈 문자열 생성
'test' * 0
>>> ''

탈출 문자열

- 백슬래시를 탈출문자라고 하며, 탈출문자에 작은따옴표를 합친 부분을 탈출 문자열이라 부름

탈출 문자열 설명
\' 작은따옴표
\" 큰따옴표
\\ 백슬래시
\t
\n 새 줄
\r 캐리지 리턴

 

출력

- print함수를 이용해 메시지 출력

- 색, 글자체 등의 스타일 일체 허용하지 않음

- 키워드 매개변수인 sep를 사용해 각 값을 구분할 구분자 지정

- 키워드 매개변수인 end를 사용해 새 줄에서 시작하지 않고 빈 문자열로 끝내라고 하는 등 지정

 

정보 받기

- 내장함수인 input 함수를 사용해 입력 받을 수 있음

- 입력된 내용은 무조건 문자열로 반환

input_text = input()
>>> 입력된 문자열

# 숫자 입력받아 int형 변환
input_number = int(input())
>>> 입력된 숫자