=1 a
02wk-1: 파이썬의 자료형 (2)
강의영상
https://youtube.com/playlist?list=PLQqh36zP38-xyfFAJpOK00B4fIn6UQggd
강의노트의 저장 및 정리
1
. website에 들어가서 강의노트를 pdf 혹은 html 파일로 변환한다.
- 강의노트를 출력, 책으로 만들거나..
- 아이패드등에 저장하고 필기하면서 공부한다..
2
. 코랩이용
- https://guebin.github.io/PP2023 에서 원하는 강의노트 선택 \(\to\) collab 버튼을 누른뒤에 강의노트 파일을 연다 \(\to\) 다운로드 or 본인의 구글 드라이브에 저장
- 코랩을 연다 \(\to\) 파일열기 \(\to\) github / guebin / PP2023 / 파일찾기 \(\to\) 강의노트 파일 열기 \(\to\) 다운로드 or 본인의 구글 드라이브에 저장
3
. 깃헙에서 저장
- 파일하나씩 저장
- 레포지토리 전체 저장
참고도서 소개
-
전자교재
- https://docs.python.org/3.9/tutorial/index.html
- https://wikidocs.net/book/1
- https://jakevdp.github.io/PythonDataScienceHandbook/
-
종이책
- 효율적 개발로 이끄는 파이썬 실천 기술
- Learning python: powerful object-oriented programming
- 전문가를 위한 파이썬 : 파이썬3 버전 기준 | 간단하고, 명료하고, 효율적인 파이썬 프로그래밍
주피터랩
-
파일탐색기, 저장된 변수값 확인 등의 기능이 있음
-
interactive notebook이 아니다.
print(a)
1
=3 a
주석
=3
a#a=4
print(a)
3
str 기본내용
선언
-
예시1
='guebin' a
a
'guebin'
-
예시2
="guebin" a
a
'guebin'
연산
-
더하기(+)연산
='X'
a='2' b
=a+b
c c
'X2'
-
빼기(-)연산
='X2'
a='2'
b-b a
TypeError: unsupported operand type(s) for -: 'str' and 'str'
- 이런건 없다.
-
곱하기(*)연산
='X' a
+a+a a
'XXX'
*3 # a*3 = a+a+a = 'X'+'X+'X' a
'XXX'
아래도 가능하다.
3*a
'XXX'
그리고 아래도 가능하다.
='X'
a=3
b*b a
'XXX'
대신에 의미상 맞지 않는 것은 수행되지 않고 에러가 난다.
='X'
a='Y'
b+b a
'XY'
*b a
TypeError: can't multiply sequence by non-int of type 'str'
-
나눗셈(/)연산
='XX' a
/2 a
TypeError: unsupported operand type(s) for /: 'str' and 'int'
- 이런건 없다..
인덱싱
-
str은 하나의 벡터 문자가 여러개 있는 형태라고 생각하면 된다.
='guebin' a
a
'guebin'
- 6개의 칸에 글씨가 하나씩 들어가 있음.
-
대괄호 []
안에 숫자를 넣는 방식으로 벡터의 원소를 호출할 수 있다. (주의: 인덱스가 0부터 시작함)
0] #첫번째원소 a[
'g'
1] #두번째원소 a[
'u'
마지막원소는 -1로 호출할 수도 있다.
-1] a[
'n'
마지막에서 2번째 원소는 -2로 호출가능하다.
-2] a[
'i'
-
요약하면 아래와 같은 방식으로 호출가능함.
g | u | e | b | i | n |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
0 | -5 | -4 | -3 | -2 | -1 |
4] a[
'i'
-2] a[
'i'
-4] a[
'e'
-
:
을 이용하여 여러개의 원소를 호출할 수 있음.
='guebin' a
0:3] # a[0],a[1],a[2],a[3]이 아니라 a[0],a[1],a[2]까지만 뽑힌다. 즉 마지막의 3은 호출되지 않는다. a[
'gue'
1:3] # a[1], a[2] 만 호출 // start=1, stop=3 a[
'ue'
index=1부터 시작해서 마지막원소까지 호출하려면?
='guebin' a
5] # guebin의 마지막원소 'n'이 출려 a[
'n'
1:5] # 5는 포함되지 않으므로 틀림 a[
'uebi'
1:6] # 정답 a[
'uebin'
안 헷갈리는 방법은 없을까? 생략한다.
1:] a[
'uebin'
-
생략의 응용1
='k-pop'
a a
'k-pop'
2:5] a[
'pop'
2:] a[
'pop'
-
생략의 응용2
='k-pop'
a a
'k-pop'
0:2] # a[0],a[1] a[
'k-'
2] # a[0],a[1] a[:
'k-'
-
생략의 응용3
='k-pop'
a a
'k-pop'
0:5] # a[0],...,a[4] a[
'k-pop'
a[:]
'k-pop'
str 특수기능
-
파이썬의 변수는 단순히 정보를 담는 그릇이 아니다. 유용한 기능을 제공하는 경우가 있다.
='ABCD' # a라는 변수는 'ABCD'라는 정보를 담는 그릇의 역할만 하지 않고, 특화된 어떠한 기능도 제공한다.
a a
'ABCD'
# a.lower()를 쓰면 a의 모든 문자를 소문자로 바꾸는 기능을 제공, lower(a)라고 읽자! a.lower()
'abcd'
여기에서 lower()는 문자열에 특화된 기능임. 따라서 당연히 아래는 불가능
=3.14
a# lower(a) a.lower()
AttributeError: 'float' object has no attribute 'lower'
-
자료형에 특화된 기능(=함수)을 확인하는 방법? a.
+ tab
으로 목록 확인 가능
='guebin' a
a.upper?
Signature: a.upper() Docstring: Return a copy of the string converted to uppercase. Type: builtin_function_or_method
# upper(a) a.upper()
'GUEBIN'
# capitalize(a) a.capitalize()
'Guebin'
='asdf' a
-
문자열에 대한 다른 내용들은 추후에 다루겠음.
-
마음의눈: a.f()
형태를 읽는 팁
a.f()
는f(a)
로 생각하면 편리함.a.f(2)
는f(a,2)
로 생각하면 편리함.- 이런점에서 R
%>%
연산자와 비슷하다고 생각할 수 있다. (약간 다르긴함)
-
사실 .
은 좀 더 다양한 상황에서 쓰일 수 있다. 변수이름.함수이름()
의 형태가 아니라
패지키이름.함수이름()
패키지이름.변수이름
패키지이름.패키지이름.함수이름()
- …
와 같이 다양한 형태가 가능하다. 근본적인 공통점은 .
을 기준으로 상위개념.하위개념
으로 이해하는 것이 좋다.
len
-
len
함수 소개: 원소의 갯수를 알려주는 함수.
='ABCD'
alen(a)
4
-
참고: len은 0차원 변수형에서는 동작하지 않고 1차원 변수형에서만 동작한다.
(0차원) len
함수가 동작하지 않음.
=3.14 a
len(a)
TypeError: object of type 'float' has no len()
=True b
len(b)
TypeError: object of type 'bool' has no len()
(1차원) len
함수가 잘 동작함.
='3.14'
alen(a)
4
=[1,2,3] b
len(b)
3
HW: 0315
아래와 같은 문자열이 있다고 하자.
='Jeonbuk National University' a
1
. 적당한 인덱싱을 통하여 출력결과가 아래와 같도록 하라.
# 적당한 인덱싱
'University'
hint: University는 10글자이다.
2
. 출력결과가 아래와 같도록 하는 코드를 작성하라. (lower 함수를 이용할 것)
# 적당한 코드
'jeonbuk national university'
3
. 아래의 코드를 관찰하고 isupper()의 기능이 무엇인지 스스로 정리해보라.
'A'.isupper()
True
'AA'.isupper()
True
'Aa'.isupper()
False
'aa'.isupper()
False
'aA'.isupper()
False
유추한 기능이 맞는지 ChatGPT를 통하여 확인하라.
4
. 다음중 실행 불가능한 코드를 모두 골라라.
'a'*2
(a)
'a'*'2'
(b)
'a'+2
(c)
'a'+'2' (d)