파이썬/개념

[알기 쉽게 해설한 파이썬 with 컴퓨팅 사고력] CH03. 파이썬 기초 문법

2024. 10. 15. 00:23
728x90

이 글은 '알기 쉽게 해설한 파이썬 컴퓨팅 사고력'을 중심으로 작성되었습니다.

알기 쉽게 해설한 파이썬 with 컴퓨팅 사고력 | 김충석 - 교보문고 (kyobobook.co.kr)

 

 

 

 

 


 

 

 

 

 

Section 01 변수

 

1. 변수의 개념

 프로그램에서 다양한 종류의 데이터를 표현하기 위해 사용하는 것이 변수(variable)는 데이터(data)를 보관하는 역할이다. 모든 프로그램이 실행되기 위해서는 컴퓨터의 주기억장치에 저장되어 실행되어야 한다. 순차적인 물리적 주소를 가지고 있는 주기억장치는 이러한 물리적 주소를 이용하여 프로그래밍을 할 수도 있다.

 

 기억장치의 물리적 주소를 사용하여 프로그램을 작성하는 것은 거의 불가능하다. 프로그램이 실행될 때의 기억장치의 상세한 배치 구조를 알아내어 프로그램 한다는 것은 불가능하기 때문이다.

 대부분의 프로그래밍 언어에서는 다양한 형태의 변수를 사용하여 값들을 저장할 수 있는 기능을 제공하고 있다. 프로그램이 실행되기 위해서는 주기억장치에 변수에 저장된 데이터들을 저장해야 하고, 변수의 값들은 주기억장치의 주소에 접근해야 한다. 프로그래머는 프로그래밍 언어를 처리하는 시스템 프로그램에 의해 자동으로 변수명과 메모리의 주소가 연결되어 사용한다.

 

 

 

2. 변수의 사용

 

변수명의 규칙

  • 변수명의 첫 글자는 반드시 영문자나 일부 특수문자(_)로 시작한다.
  • 변수명에는 숫자가 표함될 수 있다.
  • 변수명에는 공백이 포함될 수 없다.
  • 변수명은 대소문자를 구분한다(Sun과 sum은 다른 변수로 취급).
  • 예악어(프로그래밍 언어에서 사용이 지정된 용어)를 변수명으로 사용할 수 없다.

 

변수의 형

 변수 선언할 때에는 변수의 형(type)을 지정해야 하는데, 이를 자료형(data type)이라고 한다. 변수의 형에 따라 넣을 수 있는 데이터의 형태가 다르다.

  • char: 문자형
  • short, int, long: 정수형
  • float, double: 실수형
  • boolean: 이진형

 

변수 사용의 예

  • C
    : 정수형(integer type) 4가지, 실수형(floating-point type) 3가지
  • 자바(JAVA)
    : C에서 변수의 사용과 비슷한 형태를 지니고 있다.
  • 자바스크립트(JavaScript)
    : 모든 변수는 var로 선언된다. 변수 형은 배정되는 값에 따라 실행시간에 자동으로 결정된다.
  • 파이썬(Python)
    : 변수형을 선언하지 않고 사용하며, 변수의 형은 실행 시간에 동적으로 결정된다.

 

잘못된 변수의 사용 예

 변수에 값을 저장하기 위해서는 배정 연산자 '='를 사용한다. 오른쪽의 값을 평가하여 그 결과를 왼쪽의 변수가 지정하는 곳에 저장한다는 의미이다.

 그러므로 프로그래밍의 수식에서는 '='를 기준으로 오른쪽에는 숫자, 계산식, 변수 등이 올 수 있지만, 왼쪽에는 반드시 변수명만 올 수 있다.

 

 

 

3. 주석문

 파이썬은 한 줄에서 주석을 나타내기 위해 '#'을 사용하여 표현한다. 또한 여러 줄을 주석으로 처리하기 위해서는 큰따옴표 또는 작은 따옴표 3개를 연속하여 사용한다.

 

 

 

 

 


 

 

 

 

 

Section 02 자료형

 

1. 자료형의 개념

 자료형(data type)이란 프로그램에서 나타낼 수 있는 데이터의 종류를 의미한다. 자료구조(data structure)들을 기본적인 자료형으로 제공하고 있다.

 

자료형 설명
bool 이진 자료형으로, True 또는 False 값을 가진다.
int, float, complex 수치 자료형으로, 정수·실수·복소수의 값을 가진다.
str 문자열 자료형으로, 다양한 문자열들을 가진다.
list 순서가 있는 자료형으로, 다양한 객체들을 멤버로 가질 수 있는 자료형이다. []를 사용한다.
     member = [값, 값, 값]
tuple list와 같으나 내용의 변경이 허용되지 않는 자료형이다. ()를 사용한다.
     member = (값, 값, 값)
dict 순서가 없는 자료형으로, 키와 값으로 이루어진 자료를 저장하는 자료형이다. 값은 중복될 수 있으나, 키는 중복될 수 없다. {:}를 사용한다.
     age = {'kim':22, 'Park':21, 'Lee':22}
set 순서가 없는 자료형으로, 값의 중복을 허용하지 않는다. {}를 사용한다.
     grade = {1, 2, 3, 4}

 

 

 

2. 자료형 값의 변경

자료형의 구분 자료형 설명
변경 가능한(mutable) 자료형 list, dict, set 데이터의 값을 변경 가능
변경 불가능한(immutable) 자료형 int float, complex, str, tuple 데이터의 값을 변경 불가

 

 

 

3. 수치 자료형

 수치 자료형이란 숫자인 변수를 의미한다. 파이썬에서의 수치 라죠형은 정수형, 실수형, 복소수형이 있다.

 

 

정수형

 10진수, 2진수, 8진수, 16진수의 사용이 모두 가능하다. 정수형의 표현 범위에 제한이 없다.

 

실수형

 실수형은 부동소수점(floating-point)이 포함된 숫자이다. 숫자에 소수점이 직접 포함되거나 e 또는 E를 활용한 지수승으로 표현되는 숫자이다.

 파이썬에서 실수는 64비트로 표현한다.

 

복소수형

 실수부와 허수부로 고성되는 복소수를 파이썬에서는 j와 J를 사용하여 표현한다. 파이썬의 복소수는 다양한 속성과 함수를 제공하여 편리함을 제공한다.

a = 3 + 2j

print(a.real)			# 복소수의 real 속성을 이용하여 실수 부분을 출력
				# 3.0
print(a.imag)			# 복소수의 imag 속성을 이용하여 허수 부분을 출력
				# 2.0
print(a.conjugate())		# 복소수의 conjugate() 함수를 이용하여 켤레 복소수 출력
				# (3-2j)

 

 

 

 

 


 

 

 

 

 

Section 03 연산자

 

1. 산술연산자

 파이썬에서 동일한 우선순위의 산술식 계산은 왼쪽 결합으로 수행하지만, 지수승의 경우에는 오른쪽 결합을 사용한다.

 

산술 연산자 설명
+, - 부호를 나타내는 단항 연산자
** 지수승
*, /, 5, // 곱셈, 나눗셈, 나머지, 몫
+, - 덧셈, 뺄셈

 

 

 

2. 관계연산자

 관계연산자는 피연산자를 평가하여 결괏값으로 True 또는 False를 반환하는 연산자이다. 파이썬의 관계연산자는 일반적인 언어에서 제공되는 연산자와 같은 형태이지만, 복합적인 관계 표현을 허용하고 있다. 객체에 해당하는 다양한 자료형에 관계연산자를 사용할 수 있다.

관계연산자 설명
>, < 크다, 작다
>=, <= 크거나 같다, 작거나 같다
==, != 같다, 같지 않다

 

 

 

3. 논리연산자

 각 논리연산자는 피연산자로 True 또는 False 값을 가져야 한다. 파이썬에서는 True는 1, False는 0으로 취급한다. 또한 0 또는 0.0이 아닌 상수는 모두 True로 취급한다.

논리연산자 설명
and 두 개의 피연산자가 모두 참인 경우에만 참이고, 나머지는 거짓
or 두 개의 피연산자가 모두 거짓인 경우에만 거짓이고, 나머지는 참
not 피연산자가 참이면 거짓, 거짓이면 참

 

 

 

4. 연산자의 우선순위

우선순위 연산자 설명
1 () 괄호로 지정된 부분은 우선순위와 상관없이 최우선 수행
2 ** 지수승(오른쪽 결합)
3 +, - 양수, 음수를 나타내는 부호 연산자
4 *, /, //, % 곱셈, 나눗셈, 몫, 나머지(왼쪽 결합)
5 +, - 덧셈, 뺄셈
6 <, <=, >, >= 비교연산자
7 !=, == 비교연산자
8 not not 논리연산자
9 and and 논리연산자
10 or or 논리연산자
11 = 배정연산자

 

 

 

 

 


 

 

 

 

 

Section 04 표준 입출력

 

1. 입출력의 개념

 프로그램에서 무엇인가 나가면 출력(output)이고, 프로그램에 무엇인가 들어오면 입력(input)이 된다. 즉 프로그램을 중심으로 입출력을 정의할 수 있다.

 입력 장치에는 키보드, 하드디스크에 있는 파일, 마켓에서 사용하는 바코드 리더기 등이 존재한다. 출력장치에는 가장 많이 사용하는 모니터, 하드디스크에 저장되는 파일, 프린터 등이 존재한다. 모든 입력장치와 출력장치는 프로그램과 입출력을 통해서 동작하게 된다.

 

 

 

2. 표준 입출력의 개념

 파이썬은 입출력과 연관된 다양한 라이브러리 함수를 제공하고 있다. 가장 많이 사용되는 장치인 키보드와 모니터에 대한 입출력을 표준 입출력으로 정의하고 있다.

 표준 입출력은 키보드로부터 입력받고, 처리를 거쳐 결과를 모니터를 통해 나타내는 것이다. 프로그램이 종료되면, 이러한 입출력의 결과는 사라지게 된다. 파이썬에선는 표준 입출력을 위해 input() 함수와 print() 함수를 제공한다.

 

 

 

3. 표준 출력함수 : print() 함수

더보기

print(value, ···, sep=' ', end=' ')

 

value : 출력 대상들을 콤마로 구분하여 지정

sep : 출력 대상들 사이에 넣을 구분자를 지정. 지정하지 않으면 공백으로 구분

end : 값 출력하고 마지막에 출력할 문자열 지정. 지정하지 않으면 줄바꿈 문자 취급

 

문자열 출력

 파이썬에서 문자열의 출력은 작은따옴표나 큰따옴표를 사용하여 출력할 수 있다. 작은따옴표나 큰따옴표 문자열 안에 작은따옴표나 큰따옴표를 사용하여 출력할 수 있다. '\' 문자를 사용하여 따옴표를 출력할 수 있다. 동일한 문자열을 여러 번 출력하는 경우 '*횟수'를 사용하여 출력할 수 있다.

문자 설명
\ 다음 줄과 연속임을 나타냄
\\ \ 문자
\' ' 문자
\" " 문자
\n 줄을 바꿈
\t 탭만큼 띄운다

 

포맷을 이용한 출력

 문자열 객체의 메소드인 format()을 이용하면 다양한 형태로 출력이 가능하다.

더보기

print('출력형식'.format(데이터))

 

출력형식 : 형식화된 문자열을 {} 안에 넣어 출력 형태를 지정

  {:len} : 출력할 길이 지정. 묵시적으로 문자열은 왼쪽, 숫자는 오른쪽 정렬

  {:<len} : 출력할 길이 지정. 왼쪽 정렬

  {:>len} : 출력할 길이 지정. 오른쪽 정렬

  {:^len} : 출력할 길이 지정. 가운데 정렬

 

데이터 : 출력할 데이터를 지정. 다수 개가 사용될 경우 순서대로 매핑.

 

 

 

4. 표준 입력함수 : input() 함수

더보기

input('문자열')

 

문자열 : 문자열을 출력하고, 키보드로부터 입력된 내용을 문자열로 반환

 

 

정수 입력

 파이썬의 input() 함수는 입력되는 데이터의 형과 상관없이 모든 입력 내용을 문자열로 취급한다. 입력되는 내용을 정수로 입력받기 위해서는 int() 함수를 사용한다.

더보기

int('문자열', base)

 

문자열 : 문자열에 해당하는 정수 반환. 정수에 해당하는 문자열이 아닌 경우 오류 발생.

base : 진법을 지정. 묵시적으로 10진법

 

 

실수 입력

 입력되는 내용을 실수로 입력받기 위해서는 float() 함수를 사용한다.

더보기

float('문자열')

 

문자열 : 문자열에 해당하는 실수 반환. 실수에 해당하는 문자열이 아닌 경우 오류 발생

 

 

튜플, 리스트 등 표현식으로 입력 받기

  입력되는 내용을 유효한 표현식으로 입력받기 위해 eval() 함수를 제공한다.

더보기

eval('문자열')

 

문자열 : 문자열에 해당하는 표현식으로 반환

 

 

 

 

 


 

 

 

 

 

Section 05 내장 함수

 

1. 자료형 변환 함수

 문자열로 제공하는 내용을 지정된 자료형으로 변환하는 함수.

 

int(), float(), conplex(), bool(), str(), list(), tuple(), set(), dict()

 

 

 

2. 수학 관련 함수

 진법의 변환이나 절댓값, 몫과 나머지를 구하는 함수 등 제공

 

abs(값): 절댓값 구하기

divmod(값): 몫과 나머지를 튜블로 반환

pow(a, b) : a의 b승

round(값): 반올림한 값

bin(값): 주어진 정수의 2진수 구하기

oct(값): 주어진 정수의 8진수 구하기

hex(값): 주어진 정수의 16진수 구하기

 

 

 

3. 기타 함수

 

all(), any()

 all() 함수는 자료구조형 자료를 매개변수로 받아 모두 참이면 True, 거짓이 하나라도 있으면 False를 반환한다. any() 함수는 all() 함수의 반대 기능을 제공한다.

 

 

chr(), ord()

 chr() 함수는 유니코드(아스키코드 포함) 값을 입력 받아 그 코드에 해당하는 문자를 반환하는 함수이다. ord() 함수는 chr() 함수와 반대로 문자를 입력받아 해당되는 코드 값을 반환하는 함수이다.

 

 

enunerate()

 enunerate() 함수는 순서가 있는 자료형을 입력받아 인덱스 값을 포함하는 객체를 반환하는 함수이다.

 

 

len(), max(), min(), sum()

 len() 함수는 입력받은 자료의 길이를 반환하는 함수이다. max()와 min() 함수는 지정된 자료형에서 최댓값과 최솟값을 찾아 반환하는 함수이다. sum() 함수는 입력받은 리스트나 튜플의 합을 반환하는 함수이다.

 

 

sorted(), type()

 sorted() 함수는 입력받은 자료형을 오름차순으로 정렬하여 리스트로 반환하는 함수이다. type() 함수는 입력받은 자료형을 반환하는 함수이다.

 

 

zip()

 zip() 함수는 두 개의 매개변수로 지정된 자료형을 묶어주는 역할을 하는 함수이다.