[Python] 혼공단_1주차_Chapter 01~02(02-2)

haeun_06·2023년 1월 8일
0
post-thumbnail

0103


기본 미션 : p. 101 3~5번 실행 결과 쓰고 인증하기

선택 미션 : 모르는 용어(3~5개) 찾아 혼공 용어 노트에 정리하고 인증하기


혼공단을 들어가며

혼공학습단 8기에서는 C언어를 공부했었는데 이제 2학년이 되는 겨울방학인 기념으로 파이썬을 공부해보려고 한다.
친구들과 주변 사람들 말로는 파이썬은 혼자 공부하기 비교적 쉬운 언어라고 한다.
지난 C언어에서는 어느정도의 기본적인 지식은 있는 상태에서 배열을 들어가고 함수를 거쳐 포인터까지 배웠는데 정말 완전 처음 배우는 건 파이썬이 처음이라 떨리기도 하지만 8기의 우수 혼공족으로서 이번에도 최선을 다해보겠다.

이번에는 페북 계정 정지가 되지 않았으면 좋겠다



p. 101 3~5번 실행 결과 쓰고 인증하기

저번처럼 미션은 조금 나중에 하고 배운 내용 정리부터 들어가도록 하겠다.


프로그래밍 (programming)

: 프로그램을 만드는 것

프로그램 (program)

: 미리 작성된 것


컴퓨터 프로그램 (computer program)

: 컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획

ex) 카카오톡의 친구를 지정하고, 메시지를 입력하고, 전송 버튼을 누르면 친구에게 글을 전송해야 해! 라는 프로그램


프로그래밍 언어

이진 숫자 (binary digit)

: 0과 1로 이루어진 컴퓨터가 이해할 수 있는 값

이진 코드 (binary code)

: 이진 숫자로 이루어진 코드

  • 단점 : 비효율적이고 어려움

프로그래밍 언어 (programming language)

: 사람이 이해하기 쉬운 언어로 프로그램을 만들고자 만들어진 사람을 위한 언어

소스 코드 (source code)

: 프로그래밍 언어로 작성한 프로그램


프로그래밍 언어, 파이썬

: 1991년 귀도 반 로섬이 발표한 프로그래밍 언어


파이썬이 인기 있는 이유

파이썬의 장점

  1. 문법이 간단해서 배우기 쉽다.
  2. 많은 사람이 사용하고 있어서 다양한 분야에서 활용할 수 있다.
  3. 대부분의 운영체제에서 같은 방법으로 사용할 수 있다.

1. 비전공자도 쉽게 배울 수 있는 언어

단순한 문법 덕에 비전공자도 쉽게 배울 수 있음

2. 다양한 분야에서 활용

  • 웹 서버
  • 해킹 도구
  • IoT (Internet of Things)
  • 인공지능

3. 대부분의 운영체제에서 동일하게 사용

대부분의 프로그래밍 언어는 운영체제가 제한적이거나 사용방법이 조금씩 다른 경우가 있다. 하지만 파이썬은 모든 운영체제에서 같은 방법으로 사용할 수 있다.


파이썬의 단점

  • 느리다.

하지만 게임처럼 연산을 많이 하는 프로그램, 성능이 좋지 않은 컴퓨터를 사용할 수밖에 없는 프로그램(소형 장치)을 제외하면 파이썬으로 모든 것을 할 수 있다.



마무리 정리

  • 컴퓨터 프로그램이란 컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획을 말한다.
  • 소스 코드는 프로그래밍 언어로 사람이 쉽게 읽고 이해할 수 있도록 만든 코드이다.
  • 파이썬은 배우기 쉽고, 다양한 분야에서 활용되고, 대부분의 운영체제에서 동일하게 사용된다.


들어가며...

개발 환경이란 프로그래밍을 할 수 있는 환경을 말한다.
텍스트 에디터는 프로그래밍 언어로 이루어진 코드를 작성할 수 있고, 그 코드를 실행할 수 있는 것이 코드 실행기이다.
이 장에서는 파이썬 코드를 입력할 수 있는 텍스트 에디터와 파이썬 코드를 실행할 수 있는 도구인 파이썬 인터프리터가 필요하다. 때문에 다운로드를 받을 것이다.


파이썬 설치하기


파이썬 실행하기: 파이썬 인터렉티브 셸

인터프리터 (interpreter)

: 프로그래밍 언어로 작성된 코드를 실행해주는 프로그램


파이썬 인터렉티브 셸

: 파이썬 프로그램을 실행하면 실행되는 파이썬 코드를 한 줄 한 줄 입력하면서 실행 결과를 볼 수 있는 공간

자바의 cmd창과 비슷한 것 같다.


프롬포트 (prompt)

: 다음과 같이 코드를 입력하면 곧바로 실행 결과를 볼 수 있는 컴퓨터와 상호 작용하는 공간이다. 이러한 의미로 인터렉티브 셸이라고 부르기도 하고, 한 마디씩 주고받는 것처럼 대화한다고 해서 대화형 셸이라고도 한다.


텍스트 에디터 사용하기(1): 파이썬 IDLE 에디터

대화형 셸은 간단한 실행 결과 등을 확인할 때 활용하면 편리하다.
그렇다면 긴 코드를 입력하거나 코드를 저장할 때는 어떻게 해야 할까?

텍스트 에디터 (text editer)

: 프로그래밍 언어를 쉽게 작성할 수 있도록 도와준다.
ex) 메모장


파이썬 IDLE 에디터에서 코드 작성하고 실행하기

파이썬은 기본적으로 간단한 통합 개발 환경으로 IDLE를 제공한다.


개발 전용 폰트 설정하기

처음에는 글씨 폰트가 굴림체로 지정되어 있지만 코딩을 할 때는 전용 폰트를 사용하는 것이 좋다.

  1. 글자의 구분
  2. 글자의 너비 통일

을 위해서이다.

텍스트 에디터 사용하기(2): 비주얼 스튜디오 코드

간단하게 혼자 개발한다면 파이썬 IDLE 에디터를 사용해도 괜찮으나, 일반적으로 긴 코드를 작성하는 현업에서는 프로그래밍 언어를 쉽게 작성할 수 있도록 도와주는 텍스트 에디터를 활용해서 개발하는 경우가 많다.
이번에는 비주얼 스튜디오 코드 Visual Studio Code를 설치하겠다.

비주얼 스튜디오 코드 한글 언어 팩 설치하기

초보자에게는 한글 메뉴가 익숙하므로 한글 언어 팩을 설치하도록 하겠다.


비주얼 스튜디오 코드에서 코드 작성하고 실행하기


이처럼 간단한 대화 형식으로 명령어를 입력해서 무언가를 실행하는 공간을 셸 shell이라고 한다.

파이썬을 실행할 때 활용할 수 있는 두 가지 셸

  1. 윈도우 파워셸 Windows PowerShell
    : 윈도우 기본 셸
    - python 명령어를 실행해서 다른 프로그램을 실행할 수 있다.
    - > 기호가 입력하는 곳
  2. 파이썬 인터렉티브 셸
    • 간단한 파이썬 코드를 입력하고 실행할 수 있다
    • >>> 기호가 입력하는 곳. python 명령어를 실행하면 진입할 수 있다.


마무리 정리

  • 파이썬을 하려면 파이썬 코드를 입력할 수 있는 텍스트 에디터와 파이썬 코드를 실행할 수 있는 도구인 파이썬 인터프리터가 필요하다.
  • 파이썬은 평령 프롬프트의 >>>에 코드를 입력하면 바로 실행 결과를 볼 수 있는데, 이는 한 마디씩 주고받는 것처럼 대화한다고 해서 인터렉티브 셸(대화형 셸)이라고 한다.
  • 파이썬으로 작성한 파일은 해당 폴더의 윈도우 파워셸이나 명령 프롬프트에서 python 명령어로 실행할 수 있다.


들어가며...

프로그래밍 언어를 공부하다 보면 낯선 용어들이 많이 나오게 되는데, 이러한 용어들을 얼마나 잘 이해하고 있는지에 따라 습득속도가 달라질 수 있으니 꼭 정리하고 넘어가자.


문장 (statement)

: 실행할 수 있는 최소 단위

실행되는 모든 한 줄 코드는 문장이고, 문장들이 모이면 프로그램이 된다.


표현식 (expression)

: 어떠한 값을 만들어 내는 간단한 코드
ex) 숫자, 수식, 문자열

Q. 그렇다면 + -와 같이 기호가 아무것도 없이 있을 때는 표현식일까?
A. 답은 아니다이다. +-는 그 자체만으로는 어떠한 값도 만들어 낼 수 없기 때문에 표현식이라고 할 수 없다.


키워드 (keyword)

: 특별한 의미가 부여된 단어로 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓은 것

사용자는 이름을 정할 때 키워드를 사용하면 안 된다.
현재 파이썬은 다음과 같은 키워드를 사용한다.

FalseNoneTrueandasassert
asyncawaitbreakclasscontinuedef
delelifelseexceptfinallyfor
fromglobalifimportinis
lambdanonlocalnotorpassraise
returntrywhilewithyield

파이썬은 대소문자를 구분한다. 따라서 True는 키워드지만 true는 키워드가 아니다.
위의 예약어들은 자연히 외우게 되니 굳이 다 외우지 않아도 된다.


혹시 키워드인지 아닌지 확인하고 싶다면

>>> import keyword
>>> print(keyword.kwlist)

로 확인해보면 된다.


식별자 (identifier)

: 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어

주로 변수 또는 함수 이름으로 사용된다.

식별자 사용 규칙

  1. 키워드를 사용하면 안 된다.
  2. 특수 문자는 언더 바( _ )만 허용된다.
  3. 숫자로 시작하면 안 된다.
  4. 공백을 포함할 수 없다.

스네이크 케이스와 캐멀 케이스

공백이 없어 식별자를 이해하기 힘들자 두 가지 방법을 사용해 식별자를 쉽게 이해할 수 있도록 한다.

  1. 단어 사이에 언더 바( _ ) 기호를 붙인다. - 스네이크 케이스 snake_case
  2. 단어들의 첫 글자를 대문자로 만든다. - 캐멀 케이스 CamelCase

식별자 구분하기

캐멀 케이스의 유형이 두 가지가 있지만 파이썬은 유형 1만 사용한다.

캐멀 케이스 유형1: PrintHello -> 파이썬에서 사용
캐멀 케이스 유형2: printHello -> 파이썬에서 사용하지 않음

클래스 - 캐멀 케이스
함수 - 스네이크 케이스
변수 - 스네이크 케이스

1. print() - 함수
2. list() - 함수
3. soup.select() - 함수
4. math.pi - 변수
5. math.e - 변수
6. class Animal: - 클래스
7. BeautifulSoup() - 클래스

주석 (comment) - #

: 프로그램의 진행에 전혀 영향을 주지 않는 코드로 프로그램을 설명하기 위해 사용


연산자와 자료

연산자

: 스스로 값이 되는 것은 아니고 값과 값 사이에 무언가 기능을 적용할 때 사용하는 것
ex) + - * /

자료 (literal)

: 숫자든 문자든 어떠한 자체를 의미


출력: print()

: 파이썬의 가장 기본적인 출력 방법

print(출력1, 출력2, ...)// 출력 부분에는 출력하고픈 내용을 적으면 된다.

이러한 print()함수를 이용하여 간단한 출력을 실행해보자


하나만 출력하기

>>> print("Hello Python Programming...!")
Hello Python Programming...!
>>> print(52)
52

여러 개 출력하기

print()함수 뒤에 출력하고픈 내용을 쉼표로 연결해서 여러 개 적어도 된다.

>>> print(52, 273, "Hello"
52 273 Hello
>>> print("안녕하세요", "저의", "이름은", "아무개입니다!")
안녕하세요 저의 이름은 아무개입니다!

줄바꿈하기

print()함수 괄호 안에 아무것도 입력하지 않으면 정말 단순히 아무것도 출력하지 않게 되며 줄바꿈을 하게 된다.

>>> print()
	# 비어있는 줄
>>> 

✏️직접 해보는 손코딩 _ 기본 출력

소스코드 output.py

# 하나만 출력합니다.
print("# 하나만 출력합니다.")
print("Hello Python Programming...!")
print()

# 여러 개를 출력합니다
print("# 여러 개를 출력합니다.")
print(10,20,30,40,50)
print("안녕하세요", "저의", "이름은", "아무개입니다!")
print()

# 아무것도 입력하지 않으면 단순하게 줄바꿈합니다.
print("# 아무것도 출력하지 않습니다.")
print("---확인 전용 선---")
print()
print()
print("---확인 전용 선---")

이 프로그램을 실행하면 다음과 같은 결과가 출력된다.

이렇게 뒤에 괄호가 있는 것들은 함수라고 부른다. 함수의 괄호 내부에는 문자열 등의 자료를 입력하는데 자료어떤 상태를 가지고 있는 것, 함수어떤 처리를 하는 것이라고 말할 수 있겠다.

그렇다면 함수의 괄호 내부에는 어떤 자료를 넣을 수 있을까?
다음 챕터에서 살펴보도록 하자.


💡인터렉티브 셸에 표현식만 써도 출력되는데 print()함수를 왜 쓰나요?

인터랙티브 셸에 간단한 연산을 입력하면

>>> 1 + 10
11

위와 같이 값을 곧바로 출력한다. 하지만 파일로 실행할 때는 반드시 print()함수를 사용해야 출력이 가능해진다. 인터랙티브 셸은 간단한 한 줄짜리 코드의 실행 결과를 보기 위한 용도로 간단하게 사용하는 것이니 프로그램을 만들 때, 출력할 때는 반드시 print()함수를 사용해야 함을 명심하자.



마무리 정리

  • 파이썬에선느 값을 만들어 내는 간단한 코드를 표현식이라고 부른다.
  • 키워드는 의미가 부여된 특별한 단어로, 사용자가 지정하는 이름에 사용하면 안 된다.
  • 식별자는 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어이다.
  • 주석은 프로그램을 설명하는 데 사용하며, 프로그램에는 어떠한 영향도 주지 않는다.
  • print()함수는 파이썬의 가장 기본적인 출력 방법으로 괄호 안에 출력하고 싶은 것을 입력해서 사용한다.


들어가며...

프로그래밍에서는 프로그램이 처리할 수 있는 모든 것을 자료 data라고 부른다.

  • 카메라로 사진을 찍으면 사진이 자료이고, 이를 카메라에 저장하는 것이 처리이다.
  • 카카오톡으로 친구에게 사진과 함께 "여기 어때?"라는 메시지를 보냈다면 사진과 메시지가 자료이고, 이를 친구에게 전송하는 것이 처리이다.
  • 게임에서 경험치를 얻었다면 경험치가 자료이고, 경험치를 증가시키는 것이 처리이다.

이처럼 우리가 일상에서 만나는 모든 것들은 자료가 될 수 있고, 프로그램은 이러한 자료를 처리하기 위한 모든 행위라고 생각할 수 있다.


자료형과 기본 자료형

자료형 (data type)

: 개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라서 자료를 구분하였는데, 이렇게 구분된 종류

가장 기본적인 자료형으로는 문자열 숫자 이 있다.

  • 문자열 string : 메일 제목, 메시지 내용 등
  • 숫자 number : 물건의 가격, 학생의 성적 등
  • 불 boolean : 친구의 로그인 상태 등 ex) True, False

자료를 알아야 하는 이유

사람의 몸을 구성하는 기본 단위는 세포이다. 그리고 이러한 세포가 종류에 맞게 모이고 모여 한 명의 사람을 만든다.

프로그래밍도 마찬가지이다. 세포가 모이고 모여 사람(객체)이 되는 것처럼 자료를 자료형에 맞게 모으고, 처리 과정을 거쳐 차근차근 더 큰 자료형을 만들어 나가다 보면 거대한 프로그램이 만들어지게 된다.

그렇기 때문에 가장 기본적인 단위인 자료의 의미를 아는 것은 물론, 그 쓰임새를 확실하게 아는 것은 매우 중요하다.


자료형 확인하기

자료형 data type : 자료의 형식

자료의 형식을 확인할 때는 type()함수를 사용한다. 함수의 괄호 내부에 자료를 넣으면 해당 자료의 자료형을 확인할 수 있게 된다.

>>> print(type("안녕하세요"))
<class 'str'>
>>> print("type(273))
<class 'int'>

위의 예제에서 strstring, 즉 문자열이고, intinteger, 즉 정수를 나타낸다.


문자열 만들기

문자열 (string)

: 글자들이 나열된 것

"Hello"		'String'	'안녕하세요'		"Hello Python Programming"

이같이 따옴표로 감싸 입력한 모든 것이 문자열이다.


큰따옴표로 문자열 만들기

문자열은 문자들을 큰따옴표"로 감싸 만든다.

>>> print("안녕하세요")
안녕하세요

작은따옴표로 문자열 만들기

작은따옴표'로도 문자열을 만들 수 있다.

>>> print('안녕하세요')
안녕하세요

실행 결과를 보면 둘 중 무엇을 붙이나 마찬가지의 결과를 출력한다는 사실을 알 수 있다.


문자열 내부에 따옴표 넣기

그렇다면 큰따옴표와 작은따옴표는 똑같은 방법인데 왜 두 가지 방법 다 지원을 하는 것일까? 과연 어떠한 것을 사용해야 할까?

"안녕하세요"라고 말했습니다

위와 같은 큰 따옴표를 포함한 문자열을 만든다고 가정해보자

앞서 배운 방법대로 큰따옴표를 이용해 문자열을 만든다면 다음과 같이 만들 것이다.

>>> print(""안녕하세요"라고 말했습니다")

하지만 오류가 날 것이다.

파이썬 프로그래밍에서는 ""로 문자열 하나, "라고 말했습니다"로 문자열 둘로 인식하여 중간에 있는 안녕하세요가 문자열로 인식이 되지 않아 구문 오류 Syntax Error가 발생하게 된다.

이와 같은 오류를 막기 위해 파이썬은 큰따옴표 작은따옴표모두를 지원하는 것이다.
앞서 봤던 예시와 같은 상황이면 출력할 때 작은따옴표를 사용하면 구문에러 없이 문자열이 만들어질 것이다.


이스케이프 문자를 이용해 문자열 만들기

이스케이프 문자 escape character : 어떤 방법으로 문자열을 만들더라도 원하는 때에 큰따옴표와 작은따옴표를 쉽게 넣을 수 있는 방법

역슬래시 \기호와 함께 사용된다.

  • \" : 큰따옴표를 의미
  • \' : 작은따옴표를 의미
>>> print("\"안녕하세요\"라고 말했습니다")
"안녕하세요"라고 말했습니다
>>> print('\'안녕하세요\'라고 말했습니다')
'안녕하세요'라고 말했습니다

이처럼 이스케이프 문자를 사용하면 큰따옴표 내부에 큰따옴표를 넣고, 작은따옴표 내부에 작은따옴표를 넣을 수 있게 된다.

이외에도 다양한 이스케이프 문자가 있다.

  • \n : 줄바꿈을 의미
  • \t : 탭 (Tap) 을 의미
  • \\ : 역슬래시 \를 의미
>>> print("안녕하세요\n안녕하세요")
안녕하세요
안녕하세요
>>> print("안녕하세요\t안녕하세요")
안녕하세요	안녕하세요
>>> print("\\ \\ \\ \\")
\ \ \ \

여러 줄 문자열 만들기

이스케이프 문자 중 \n를 이용하면 줄바꿈을 할 수 있다.

>>> print("동해물과 백두산이 마르고 닳도록\n하느님이 보우하사 우리나라 만세\n
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세

하지만 \n은 가독성도 떨어지고 번거로운 단점이 있다.

그래서 파이썬은 여러 줄 문자열이라는 기능을 지원한다. 큰따옴표 또는 작은따옴표를 세 번 반복한 기호를 사용한다.

>>> print("""동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세""")
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세

Enter를 누르는 곳마다 자연히 줄바꿈이 되며 코드의 가독성이 높아졌다.


줄바꿈 없이 문자열 만들기

여러 줄 문자열을 입력한 후 코드의 가독성을 높이기 위해 다음과 같이 작성하는 경우도 있다.

>>> print("""
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
""")

동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세

하지만 이렇게 코드를 작성하면 첫 번째 줄과 마지막 줄에 의도하지 않은 줄바꿈이 들어가게 된다.
줄바꿈을 의도하지 않았다면 \기호를 사용하면된다.

>>> print("""\
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세\
""")
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세

문자열 연산자

프로그래밍 언어의 자료들에는 사용할 수 있는 연산자가 정해져 있다. 숫자에는 숫자에만, 문자열에는 문자열에만 적용할 수 있는 연산자가 있는데 그걸 알아보도록 하자.

문자열 연결 연산자: +

+은 문자열에서 두 문자열을 연결해서 새로운 문자열을 만들어 낸다.

>>> print("안녕"+"하세요")
안녕하세요

하지만 문자열은 같은 문자열끼리 연결해야 한다.

>>> print("안녕"+1)

이처럼 문자열+정수를 연결하면
TypeError: can only concatenate str (not "int") to str
라는 오류가 난다.


문자열 반복 연산자: *

문자열*숫자 또는 숫자*문자열을 이용하면 문자열을 반복할 수 있다.

> print("안녕하세요"*3)
안녕하세요안녕하세요안녕하세요

문자 선택 연산자(인덱싱): []

: 문자열 내부의 문자 하나를 선택하는 연산자

[]안에 선택할 문자의 위치를 지정하며 이 숫자를 인덱스 index라고 부른다. 인덱스 유형은

  • 제로 인덱스 zero index : 숫자를 0부터 세는 인덱스 유형
  • 원 인덱스 one index : 숫자를 1부터 세는 인덱스 유형

위와 같이 있는데 파이썬은 제로 인덱스를 사용하는 언어이다.
직접 코드를 작성해보자

✏️02-1 직접 해보는 손코딩 _ 문자 선택 연산자의 결과 출력하기

소스 코드 string_operator01.py

print("문자 선택 연산자에 대해 알아볼까요?")
print("안녕하세요"[0])
print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print("안녕하세요"[4])

실행

추가로 대괄호 안의 숫자를 음수로 입력하면 뒤에서부터 선택할 수 있다.

✏️02-1 직접 해보는 손코딩 _ 뒤에서부터 선택하기

소스 코드 string_operator02.py

print("문자 선택 연산자에 대해 알아볼까요?")
print("안녕하세요"[-1])
print("안녕하세요"[-2])
print("안녕하세요"[-3])
print("안녕하세요"[-4])
print("안녕하세요"[-5])

실행


문자열 범위 선택 연산자(슬라이싱): [:]

문자열의 특정 범위를 선택할 때 대괄호 안에 위치를 :으로 구분하여 범위를 지정한다.

>>> print("안녕하세요"[1:4])
녕하세

그런데 프로그래밍 언어에 따라서 범위 지정 시에

  • 마지막 숫자를 포함
  • 마지막 숫자를 포함하지 않음

이 있는데 파이썬은 마지막 숫자를 포함하지 않음으로 적용한다.
그래서 위와 같은 코드를 작성하면 1번째+2번째+3번째 글자까지만 추출되어 녕하세를 출력하는 것이다.

또한 문자열 범위 선택 연산자

  • 뒤의 값 생략 : 자동으로 마지막 글자까지 지정
  • 앞의 값을 생략 : 자동으로 첫 번째 글자까지 지정

할 수 있다.

>>> print("안녕하세요"[1:])
녕하세요
>>> print("안녕하세요"[:3])
안녕하

IndexError(index out of range) 예외

이 에러는 리스트/문자열의 수를 넘는 요소/글자를 선택할 때 발생한다.

예를 들면

>>> print("안녕하세요"[10])

이와 같이 문자열은 5글자인데 10번째 문자에 접근하고 있어 인덱스가 문자열의 범위를 넘어 에러가 발생하게 된다.


문자열의 길이 구하기

문자열의 길이를 구할 때는 len()함수를 사용한다.
괄호 안에 문자열을 넣으면 문자열에 들어있는 문자의 개수를 세어준다.

>>> print(len("안녕하세요"))
5


마무리 정리

  • 자료의 형식을 자료형이라고 한다.
  • 문자의 나열을 문자열이라고 하는데, 문자열은 큰따옴표 혹은 작은따옴표로 입력한다.
  • 이스케이프 문자는 문자열 내부에서 특수한 기능을 수행하는 문자열을 말한다.
  • 문자열 연산자에는 문자열 연결 연산자`+, 문자열 반복 연산자 *, 문자열 선택 연산자 [], 문자열 범위 선택 연산자 [:]가 있다.
  • type()은 자료형을 확인하는 함수이며, len()은 문자열의 길이를 구하는 함수이다.


기본 미션 : p. 101 3~5번 실행 결과 쓰고 인증하기


03 다음 프로그램의 실행 결과를 예측해보세요.

  • \\을 출력하면 \가 출력되기 때문에 \\4번 반복되니 \4개가 출력되었다.
  • -인 문자열에 문자열 반복 연산자*를 사용해 8번 반복하여 출력하게 하였다.

04 다음 프로그램의 실행 결과를 예측해보고 어떤 오류가 왜 발생하는지 적어보세요.

  • 파이썬은 제로 인덱스이기 때문에 01번째이다. 따라서 [5]6번째 글자를 의미하는데 안녕하세요5글자이므로 IndexError에러가 나는 것이다.

05 다음 프로그램의 실행 결과를 예측해보세요



들어가며...

  • 정수형 : 소수점이 없는 숫자 ex) 0, 1, -25, 359
  • 실수형 : 소수점이 있는 숫자 ex) 0.0, 52.259, -1.2

프로그래밍 언어를 하면서 반드시 알아두어야 할 영단어는 integer(정수)floating point(실수 또는 부동 소수점)이다.

부동소수점은 실수에서는 소수점의 위치를 바꿔도 결국 같은 숫자이므로, 소수점이 움직이는 숫자라는 의미를 가지고 있다. 쉽게 기억하기 위해 소수점이 동동 부유하며 움직인다로 외워도 좋다.


숫자의 종류

숫자에는 두 가지 종류가 있다.

  • 소수점이 없는 숫자
  • 소수점이 있는 숫자

다음과 같이 소수점이 있는 숫자와 없는 숫자를 type()함수로 출력해보자.

>>> print(type(52))
<class 'int'>
>>> print(type(52.0))
<class 'float'>

int는 정수, float는 소수, 즉 부동소수점을 의미한다.

이 개념이 중요한 이유는 일반적으로 프로그래밍 언어에서는 두 자료형을 구분하기 때문이다. 대부분 자료형을 구분할 필요는 없지만 문자열 선택 연산자 [ ] 등을 사용할 때 괄호 안에 넣는 숫자가 정수가 아니라 실수이면 오류가 발생하는 등 미세한 차이가 있다.


💡여기서 잠깐 _ 파이썬에서의 지수 표현

파이썬에서는 부동 소수점을 지수승으로 표현한다.
파이썬에서는 0.52273x10^20.52273e2또는 0.52273E2로 표현한다. 예시는 다음과 같다.

>>> 0.52273e2
52.273
>>> 0.52273e-2
0.0052273

숫자 연산자

문자열에 문자열 연결 연산자 또는 문자열 반복 연산자를 적용할 수 있던 것처럼 숫자에도 연산자를 적용할 수 있다.

사칙 연산자: +, -, *, /

가장 기본적인 사칙 연산자이다.

연산자설명구문
+덧셈 연산자숫자 + 숫자
-뺄셈 연산자숫자 - 숫자
*곱셈 연산자숫자 * 숫자
/나눗셈 연산자숫자 / 숫자

사칙연산자는 우리가 알고 있던 개념과 동일하므로 바로 예시를 쳐보도록 하자.

>>> print("5 + 7 =", 5+7)
5 + 7 = 12
>>> print("5 - 7 =", 5-7)
5 - 7 = -2
>>> print("5 * 7 =", 5*7)
5 * 7 = 35
>>> print("5 / 7 =", 5/7)
5 / 7 = 0.7142857142857143

정수 나누기 연산자: //

이번에는 생소한 정수 나누기 연산자를 알아보도록 하자.
// 형태의 연산자이며, 숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후 정수 부분만 남긴다. 예시를 살펴보자.

>>> print("3 / 2 =", 3/2)
3 / 2 = 1.5
>>> print("3 // 2 =", 3/2)
3 // 2 = 1

나머지 연산자: %

나머지 연산자AB로 나누었을 때 남은 나머지를 구하는 연산자이다. 말 그대로 을 뺀 나머지를 구하는 연산자이다. 예시를 살펴보자.

>>> print("5 % 2 =", 5%2)
5 % 2 = 1

제곱 연산자: *

파이썬에는 숫자를 제곱하는 ** 연산자가 있다. 수학에서의 2의 4승은 파이썬에서 2**4로 사용한다. 예시를 살펴보자.

>>> print("2 ** 1 =", 2**1)
2 ** 1 = 2
>>> print("2 ** 3 =", 2**3)
2 ** 3 = 8

연산자의 우선순위

연산자에는 우선순위가 존재한다.

본디 숫자를 계산할 때는 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선이다. 파이썬도 마찬가지이다. 또한 곱셈/나눗셈과 덧셈/뺄셈처럼 같은 우선순위를 가지는 연산자왼쪽에서 오른쪽 순서로 계산한다.

>>> print(2+2-2*2/2*2)
0.0
>>> print(2-2+2/2*2+2)
4.0

만약 덧셈/뺄셈을 먼저 계산하고 싶다면 수학처럼 ( )로 묶어주면 된다. 이외에도 연산자의 우선순위가 헷갈림을 방지해 연산자 우선순위가 확실한 경우에도 괄호로 감싸주는 것이 좋다.


TypeError 예외

서로 다른 자료를 연산하였을 때 발생하는 예외이다. 언제 발생하는 오류인지 살펴보자.

>>> string = "문자열"
>>> number = 273
>>> string + number

문자열과 숫자를 + 연산자로 연결한 경우이다. 문자열+문자열 연결 연산자로 사용하려고 하고 숫자+연산자를 덧셈 연산자로 사용하려다 보니 충돌이 발생하게 된 것이다.



마무리 정리

  • 숫자 자료형에는 소수점이 없는 정수형과 소수점이 있는 실수형(부동 소수점)이 있다.
  • 숫자 연산자에는 + - * /와 같은 사칙 연산자와 //(정수 나누기 연산자) %(나머지 연산자) **(제곱 연산자)가 있다.
  • 연산자에는 우선순위가 존재한다. 곱하기와 나누기 > 더하기와 빼기이다. 우선순위를 잘 모르겠을 경우에는 괄호를 쳐서 나타낸다.


선택 미션 : 모르는 용어(3~5개) 찾아 혼공 용어 노트에 정리하고 인증하기


1. 인터프리터 interpreter

: 프로그래밍 소스 코드를 곧바로 실행해 주는 프로그램

  • 한 번에 코드 한 줄씩 읽어 실행
  • 파이썬 코드를 실행할 수 있는 도구 : 파이썬 인터프리터

2. 대화형 셸 interactive shell

: 컴퓨터와 상호 작용하는 공간이라는 의미에서 대화형 셸이라고 부른다.

  • 프롬프트라고 불리는 >>>에 코드를 한 줄 한 줄 입력하면 곧바로 실행 결과를 볼 수 있다.

3. 이스케이프 문자 escape character

: \ 기호가 붙은 특수한 문자 리터럴

  • 문자열 내부에서 특수한 기능을 수행한다.


profile
개발새발 블로그

0개의 댓글