02-4 튜플 자료형

튜플?

[] 대신 ()를 사용하고 수정이 불가능 하다는 점에서 리스트와 차이가 있음

튜플 다루기

수정이 안되는 것 외에 리스트와 동일하므로 사용도 리스트와 비슷

인덱싱, 슬라이싱, 더하기, 곱하기, 길이 구하기

# 02-4 튜플자료형
t1 = ()
t2 = (1, ) # 요소 한 개 가질 때 뒤에 반드시 콤마 필요 (리스트는 안그래도 됨)
t3 = (1, 2, 3)
t4 = 1, 2, 3 # 괄호 생략 가능
t5 = ('a', 'b', ('ab', 'cd'))
print(t1)
print(t2)
print(t3)
print(t4)
print(t5)
# 튜플 요소 삭제 시도
#del t3[1]
# 튜플 요소 수정 시도
#t3[1] = 'a'

# 튜플 다루기
# 인덱싱
t1 = (1, 2, 'a', 'b')
print(t1[0])
print(t1[3])
# 슬라이싱
print(t1[1:])
# 더하기
t2 = (3, 4)
print(t1 + t2)
# 곱하기
print(t2 * 3)
# 길이 구하기
print(len(t2))

02-5 딕셔너리 자료형

딕셔너리?

key = value와 같이 대응관계를 나타낼 수 있는 자료형

연관배열 또는 해시(Hash)

리스트나 튜플처럼 순차적으로 요솟값을 구하지 않고 key를 통해 value를 얻는다.

딕셔너리 만드는 법

 

 

'강의 > Python' 카테고리의 다른 글

02. 파이썬 프로그래밍의 기초, 자료형(1)  (0) 2020.06.30
01. 파이썬이란 무엇인가?  (0) 2020.06.30
00. 프로그래밍 기본  (0) 2020.06.30
자료형이란?

data type

1 + 1 = 2

'1' + '1' = '11'

자료형에 따라 연산의 결과가 달라진다

변수란?

값을 담는 상자

a = 3

a라는 숫자 자료를 a라는 상자(변수)에 담는다

수학에서의 등호랑 다른 의미

ex) a = a + 1

오른쪽에 있는 값을 왼쪽의 변수에 담는다. 대입한다.

02-1 숫자형

  • 정수형(1, 2, -2) int
  • 실수(1.24, -24.56) float (수직선 위에 나타낼 수 있는 수로, 유리수와 무리스 전체를 총칭하여 확장한 수)
  • 컴퓨터식 지수 표현 방식(4.24e10, 4.24e-10)
  • 8진수(0o37)
  • 16진수(0x7A)

숫자형 사용하기 예제

숫자형 활용하기 위한 연산자 : +, -, *, /, **, //, %

연산자 사용하는 예제

02-2 문자열 자료형

문자열(String) : 문자, 단어 등으로 구성된 문자들의 집합

문자열 자요형 만드는 4가지 방법

"hello world"

'python is fun'

"""Life is too short, You need python"""

'''Life is too short, You need python'''

왜 네가지나 방법이 필요할까?

문자열 안에 ', " 들어갈 수 있으니..

여러라인에 걸쳐 문자열을 작성할 수 있으니..

 

이스케이프 코드

프로그래밍 할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'

주로 출력물을 보기 좋게 정렬하는 용도로 사용

\n, \t, \\, \', \" 정도만 알면 됨

문자열 연산

문자열 더하기

문자열 곱하기

문자열 길이 구하기 len(a)

문자열 인덱싱과 슬라이싱

indexing 색인하기, 가리키기 : 번호는 0부터 시작함, 뒤에서부터는 -1 부터 시작

slicing 잘라내기

a[시작번호(이상):끝번호(미만):간격]

문자열 포매팅

형식, 틀

문자열 안의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이 바로 포매팅

문자열 안에 어떤 값을 삽입하는 방법

%d, %s

숫자+% 표현 방법 : %d%%

포맷코드와 숫자 같이 사용하는 것 : 살펴는 보지만 사실 많이 쓰이진 않음

format 함수는 사용한 포매팅

문자열 관련 함수

count

find

index

join

upper

lower

lstrip

rstrip

strip

replace

split

02-3 리스트 자료형

odd = [1, 3, 5, 7, 9]
print(odd)

# 여러가지 생김새의 리스트
a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]

# 리스트의 인덱싱
a = [1, 2, 3]
print(a)
print(a[0])
print(a[0] + a[2])
print(a[-1])

a = [1, 2, 3, ['a', 'b', 'c']]
print(a[0])
print(a[-1])
print(a[3])
print(a[-1][0])
print(a[-1][1])
print(a[-1][2])

# 리스트의 슬라이싱
a = [1, 2, 3, 4, 5]
print(a[0:2])
# 스트링의 슬라이싱과 비교
a = "12345"
print(a[0:2])

a = [1, 2, 3, 4, 5]
b = a[:2]
c = a[2:]
print(b)
print(c)

# 중첩된 리스트의 슬라이싱
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
print(a[2:5])
print(a[3][:2])

# 리스트 연산하기
# 1. 더하기(+)
a = [1, 2, 3]
b = [4, 5, 6]
print(a+b)
# 2. 리스트 반복하기(*)
a = [1, 2, 3]
print(a*3)
# 3. 리스트 길이 구하기
a = [1, 2, 3]
print(len(a))

# 리스트의 수정과 삭제
a = [1, 2, 3]
a[2] = 4
print(a)

a = [1, 2, 3]
del a[1]
print(a)

a = [1, 2, 3, 4, 5]
del a[2:]
print(a)

# 리스트 관련 함수
# append
a = [1, 2, 3]
a.append(4)
print(a)
a.append([5, 6])
print(a)

# sort
a = [1, 4, 3, 2]
a.sort()
print(a)
a = ['a', 'c', 'b']
a.sort()
print(a)

# reverse
a = ['a', 'c', 'b']
a.reverse()
print(a)

# index
a = [1, 2, 3]
print(a.index(3))
print(a.index(1))
# 존재하지 않는 원소 인덱싱
#print(a.index(0))

# insert
a = [1, 2, 3]
a.insert(0, 4)
print(a)
a.insert(3, 5)
print(a)

# remove
# 처음 발견하는 요소 삭제
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
print(a)
a.remove(3)
print(a)

# pop
a = [1, 2, 3]
a.pop()
print(a)
a = [1, 2, 3]
a.pop(1)
print(a)

# 요소 삭제하는 세가지 방법 -> del, remove, pop

# count
a = [1, 2, 3, 1]
print(a.count(1))

# extend
a = [1, 2, 3]
a.extend([4, 5])
print(a)
b = [6, 7]
a.extend(b)
print(a)

# append와 extend의 차이는?

 

'강의 > Python' 카테고리의 다른 글

02. 파이썬 프로그래밍의 기초, 자료형(2)  (0) 2020.07.05
01. 파이썬이란 무엇인가?  (0) 2020.06.30
00. 프로그래밍 기본  (0) 2020.06.30

01-1 파이썬이란?

  • 귀도 반 로섬이 취미로 만든 프로그래밍 언어
    • 1991년 최초 발표
    • 2000년 python2, 2008년 python3
  • 구글에서 만들어진 소프트웨어 50% 이상이 파이썬
  • 드롭박스, 인스타그램
  • 이해하기 쉬워 공동 작업과 유지보수가 편함

01-2 파이썬의 특징

  • 파이썬은 인간다운 언어이다
    • if 4 in [1,2,3,4]: print("4가 있습니다")
  • 파이썬은 문법이 쉬워 빠르게 배울 수 있다
    • 대학교 교양 강의로 파이썬 활용
    • 프로그래밍 유경험자라면 1주일이면 충분
  • 파이썬은 무료이지만 강력하다
    • 사용료 걱정없이 언제 어디서든 파이썬을 다운로드하여 사용(오픈소스)
    • 파이썬과 C는 찰떡궁합(접착언어)
      • 상대적으로 쉽지만 느린 파이썬 + 빠른 C언어 조합 가능
    • 파이썬 라이브러리들 중에는 C로 만들어진 것도 많다
      • NumPy : C 라이브러리를 python에서 쓸 수 있도록 래핑
      • 라이브러리 : 파이썬 프로그램을 작성할 때 불러와 사용할 수 있는 미리 만들어 놓은 파이썬 파일 모음
  • 파이썬은 간결하다
    • 파이썬은 가장 좋은 방법 한가지만 이용하는 것을 선호
    • 실행이 되게 하려면 꼭 줄을 맞추어야 한다
  • 파이썬은 개발 속도가 빠르다
컴파일 언어 vs 인터프리터 언어

C언어 : 컴파일 언어

프로그래밍 언어로 작성한 파일이 있으면 컴파일러가 컴파일(번역)을 해서 0과 1로 된 실행 파일을 만든다

Python : 인터프리터 언어

한 줄씩 소스 코드를 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어

print('hello')

print('world')

인터프리터를 통해 한줄 씩 읽기 때문에 느림

01-3 파이썬으로 무엇을 할 수 있을까?

프로그래밍 언어를 단순히 좋다 나쁘다 나눌 수 없음

언어별로 장단점이 존재하기 때문에 용도에 맞는 언어를 선택해서 사용하는 것이 중요함

  • 파이썬으로 할 수 있는 일
    • 시스템 유틸리티 제작(컴퓨터 사용에 도움을 주는 여러 소프트웨어 ex 압축해제, 디스크관리 등)
    • GUI 프로그래밍
    • C/C++와의 결합
    • 웹프로그래밍
    • 수치 연산 프로그래밍
      • 사실 파이썬은 수치 연산에 적합하지 않지만, NumPy라는 관련 모듈을 통해 수치 연산 프로그래밍을 빠르게 할 수 있음 (NumPy는 C 기반이므로..)
    • 데이터베이스 프로그래밍(데이터 베이스에 접근하기 위한 도구 제공 ex pickle)
    • 데이터 분석, 사물 인터넷
      • pandas 모듈
      • 기존에는 데이터 분석으로 R을 많이 사용했지만 pandas 등장으로 파이썬 사용을 통한 데이터 분석이 많이 사용됨
      • 라즈베리파이(리눅스 기반 작은 OS) - 파이썬은 라즈베리파이 제어 가능
  • 파이썬으로 할 수 없는 일
    • 시스템과 밀접한 프로그래밍 영역 ex) OS
    • 모바일 프로그래밍

01-4 파이썬 설치하기

01-5 파이썬 둘러보기

실행 예제

command line에서 python 실행

내장 idle로 실행

책에 나와있는 여러 예제들 실행해보기

  • 에디터로 작성하기
# hello.py
print("Hello world!")
  • hello.py 실행하기
    • windows + R
    • cmd
    • cd $WORKSPACE
    • python hello.py

01-6 파이썬과 에디터

  • IDLE
  • pycharm
  • vscode
    • 파이썬 전용 에디터가 아니므로 설치 후 파이썬 Extension 설치해야 함
코딩/프로그래밍

컴퓨터에게 원하는 작업을 실행시키기 위해 명령을 하는 것

 

프로그래밍 언어

컴퓨터가 알아들을 수 있는 언어는 0,1로 된 기계어

컴퓨터에게 명령하기 위해 0,1로 된 기계어를 사람이 작성하는 것은 매우 힘듦

따라서 컴퓨터에게 명령하는 것을 사람이 쓰기 좋은 형태로 가공하여 만든 것이 프로그래밍 언어이다.

사람과 기계 소통을 위해 번역해주는 것..

인간도 다양한 언어를 사용하듯 컴퓨터와 대화하는 프로그래밍 언어의 종류도 굉장히 많다.

저급언어(low level language) - 언어가 기계어에 가까움 ex) 어셈블리

고급언어(high level language) - 언어가 사람 언어에 가까움 ex) java, python..

(c언어 경우 고급언어에 가깝지만 그 안에서도 기계어에 가까우므로 middle language라고 함)

 

굳이 저급 언어 사용하는 이유?

복잡하고 사용하기 어렵지만 컴퓨터 내부적으로 조작 가능하므로 실행 속도가 매우 빠름

-> 따라서 고급 언어는 사람이 사용하기 쉽지만 세부적인 조작 불가능하고 실행속도도 느린 편임

 

용도나 영역에 맞춰 언어를 선택해 사용할 수 있음

ex) 통계 - R, 웹 마크업 - HTML, 데이터 - SQL

 

프레임워크

자주쓰고 공통으로 쓰는 코드가 있다면? 사용할때마다 반복해서 코딩하는것은 불편함. -> 이러한 것들은 프레임워크로 제공

프레임워크?

쉽게 활용할 수 있는 환경을 제공하는 것이 프레임워크

Framework, Library, API(Application Programming Interface), SDK(Software Development Kit) 등..

만들어진 것을 가져다가 쓴다는 개념

C언어로 시작해야 하는 이유

C언어는 사실 입문하기 어렵기때문에 진입 장벽이 낮은 python이나 java로 프로그래밍을 시작하는 경우가 있다. 하지만 이는 장기적으로는 좋지 않다.

C는 사람보다 컴퓨터 언어에 가까운 언어이기때문에 C를 하기 위해서 프로그래밍 구성 요소에 대한 이해가 필요하다. 사람 언어에 가까운 쉬운 언어들은 그런것이 C보다 덜 필요로 하지만 장기적으로 봤을 때는 프로그램을 제대로 이해할 수 없게 되므로 실력있는 프로그래머로 성장하기 위해서는 C로 입문해야한다.

모든 프로그래밍 언어는 비슷한 요소를 갖고 있으므로 하나를 제대로 배우면 다른 프로그래밍 언어는 쉽게 배울 수 있다.

 

컴퓨터 프로그램과 프로그래밍 언어?

프로그램 - 컴퓨터에게 작업할 일을 순서대로 알려주기 위해 만든 파일

프로그래밍 언어 - 사람에게 친숙한 표현법을 사용해 프로그래밍 할 수 있도록 만든 언어

컴퓨터 프로그램은 기계가 알아들을 수 있는 기계어로 작성해야 함

프로그램을 하는 주체는 사람인데 0과 1 이진수로 작성된 기계어로 프로그래밍 작업하는게 어려움

사람이 이해하기 쉬운 프로그래밍 언어로 프로그램을 만들고 컴파일 과정을 통해 기계가 해석 가능한 기계어로 변경하면 됨

컴파일러 - 프로그래밍 언어로 작성한 프로그램을 기계어로 번역하는 아이

 

C언어의 특징

- 구조화된 언어 : 유지보수의 용이

- 높은 이식성 : 하드웨어 변경되어도 C언어 문법이 영향받지 않고 프로그램 동작함

- 높은 확장성 및 자율성

- 높은 생산성

 

프로그래밍의 개념을 계산기와 함께 알아보자

입력버튼

LCD 출력

상수

연산자

변수

조건문

반복문

 

프로그램 실행 파일

소스파일 -> (컴파일) 목적파일 ->(링크) -> 실행파일

컴파일 + 링크 = 빌드

C언어 개발환경 구축

비주얼스튜디오 2019 커뮤니티 다운로드

next 후 'c++를 사용한 데스크톱 개발' 로 선택

+ Recent posts