#파이썬 기초 3일차
가상환경 설정
cd /
mkdir 명령을 통해 작업용 폴더(디렉토리)를 생성함
mkdir workspace
cd .\workspace\
python -m venv [생성하고자 하는 가상환경의 이름]
.\Scripts\activate
프롬프트 앞에 (가상환경이름)이 표시되면 활성화 성공
가상환경 활성화 오류 발생 시 해결 방안
windows powerShell
cd \
cd . \workspace\
ls
python -m venv webserver(생성하고자하는 가상환경 이름)
cd .\webserver\
.\Scripts\activate
(webserver) PS C:\workspace\webserver> (이런식으로 뜨면 성공)
deactivate (하면 가상환경 비활성화)
한방에 activate까지 들어가려면
cd \ (이후에)
cd .\workspace\webserver\Scripts
.\activate
3. 자료형
3.1 리스트
- 리스트는 대부분의 프로그래밍 언어에서 배열, Array라고 표현하는 것과 비슷함
- 배열은 동일한 형태(실수끼리, 문자열끼리... 등)의 데이터 여러 개가 순서대로 모여 있는 것을 말하지만 파이썬의 List는 꼭 동일한 형태가 아니어도 관계없습니다.
- 예를 들면 Java와 같은 언어에서의 Collection 이란 것과 비슷하다고 볼 수 있습니다.
- 리스트의 데이터는 대괄호 [ ]로 둘러싸서 표시하며 내부의 데이터는 콤마( , )로 구분합니다.
[1, 3, 5, 7, 9]
['hello', 'good morning', 'a', 'b', 'c']
[2, 4, 'bye', [6, 8, 10], ['see', 'you', 'later']]
리스트는 인덱스라는 것을 가지고 접근하며, 인덱스는 0부터 시작한다.
따라서 list_1에 0번 인덱스는 1, 4번 인덱스는 9이다.
list_3의 4번 인덱스는 ['see', 'you', 'later'] 이다. (리스트 안 리스트 형태)
3.2 튜플(Tuple)
- 튜플은 리스트와 비슷한데 리스트는 안에 들어있는 값을 바꿀 수 있는 반면에 튜플은 바꿀 수 없다는 차이가 있습니다.
- 튜플의 데이터는 괄호 ( ) 로 둘러싸서 표시하며 안에 있는 데이터는 콤마( , )로 구분합니다.
[1, 2, 3, 4, 5]
[1, 2, 10, 4, 5]
(1, 2, 3, 4, 5)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-673e4377b279> in <cell line: 2>()
1 print(tuple_1)
----> 2 tuple_1[2] = 10
3 print(tuple_1)
TypeError: 'tuple' object does not support item assignment
- 리스트와 달리 튜플에서는 안에 있는 값을 바꾸려고 하면 오류가 발생한다.
3.3 딕셔너리(Dictionary)
- 딕셔너리의 데이터는 중괄호 { } 로 둘러싸서 표시하며 내부의 데이터는 콤마( , )로 구분
- 딕셔너리의 데이터는 "키:값"의 형태를 가진 한 쌍의 요소로 구성되어 있다. (키 콜론 값)
- 리스트, 튜플과 달리 딕셔너리는 데이터에 인덱스가 지정되어있지 않다. (가장 중요한 특징)
- "키:값"으로 구성된 데이터 쌍에서 "키"를 [ ] 안에 입력하여 원하는 데이터를 지정하고 사용한다.
- 딕셔너리의 키와 값에는 어떤 데이터라도 사용할 수 있다.
- 딕셔너리의 값에는 리스트, 튜플, 딕셔너리가 들어갈 수도 있다.
- 그런데 "키"라는 것은 단 하나를 지칭하기 위한 것이니까 여기에는 리스트와 같은 것을 지정하시면 안된다.
- 그리고 리스트와 마찬가지로 딕셔너리도 내부의 값을 바꿀 수 있다.
{0: 'False', 'a': 'small A', 'b': 'small B', 'three': 3, 'four': 4, 1: ['a', 'b']}
- 키: 값 순서로 나온것
['a', 'b']
small A
4
alphabet small B
4. 데이터 처리를 위한 구문
4.1 문자열 처리
4.1.1 특정 위치의 문자 얻기
e
리
4.1.2 지정한 구간의 문자열 얻기
- 시작점은 포함이고 끝점은 포함하지 않는다
A tale
- 앞부분이 비워있는 경우
that was not right
h
- -는 뒤로가라는 의미이다.
ight
- -를 이용해서도 구간을 가져올 수 있다.
print(txt2[2:-4])
tale that was not r
0 : p
1 : py
2 : pyt
3 : pyth
4 : pytho
5 : python'
4.1.3 홀수 번째 문자만 추출하기
abcdefg
ABCDEFG
4.1.4 문자열 거꾸로 만들기
gfedcba
- 거꾸로해서 역으로 돌아가라
4.1.5 특정 문자가 있는지 확인하기
문자열에 안이 포함되어 있음
4.1.6 숫자인지 알파벳인지 검사하기
False
False
-주로 가독성이 얼마나 좋은가로 나눔 위 두 코드는 동일함
True
- 문자열이 문자만으로 구성되었는지 확인하기
True
True
False
- 스페이스바 같은 특수문자는 반영안됨
- 문자열이 문자와 숫자만으로 구성되었는지 확인하기
- isalnum()알파벳인지 숫자인지 확인
True
False
True
문자열 조작하는 작업은 데이터 분석, AI 학습을 위한 데이터 조작에 많이 활용되므로 다양하게 익혀두어야 한다.
5. 조건문 (if 구문)
- 말 그대로, 순서대로 쭉 이어서 가다가 이런 경우에는 이렇게 해라~라고 조건을 주고 그 조건에 따른 동작을 지정해 주는 것
- 컴퓨터에게 처리를 위한 조건을 알려주는 구문을 조건문 이라함.
- 가장 기본적인 조건문은 if ~~ else OO 구문이 있습니다.
- 만약~~이면 OO를 해라. 라는 의미입니다.
a가 b보다 크지 않습니다.
if - elif - else 구문
- 조건이 많으면 elif는 여러번 들어갈 수 있다.
a와 b는 같습니다.
5.1.2 중첩 if
a가 b보다 작습니다.
5.2 반복문
- 파이썬에서 사용하는 반복문은 크게 For 문과 While 문의 두 가지로 구분
- 그 중에서 가장 많이 사용되는 것이 For 문이며, For 문은 다양한 활용 형태를 가진다.
5.2.1 While문
- while 문은 for 문과 다르게 반복하기 위한 조건이 주어진다는 점이 특징
- while 문에 따라오는 조건을 만족하는 동안 계속해서 반복 작업을 수행하라는 의미
1
2
3
4
5
6
7
8
9
5.2.2 for 문
- 먼저 가장 기본적인 형태
1
3
5
7
9
- for 구문에는 리스트 외에도 문자열(문자열도 엄밀히 말하면 문자들의 리스트), 딕셔너리, 범위 등이 사용될 수 있다.
튜플로 바꿔서 실행 (리스트와 동일하게 작동함)
1
3
5
7
9
13579
- end쓰면 1열로 이어서 작동됨
Hello
- 문자를 써도 동일하게 작동된다.
a
b
c
d
-딕셔너리에서는 키에 따른 값을 가져옴으로 기본적으로 키를 가져오게 된다.
- "Nice", "to", "meet", "you"를 출력하고 싶은데 이것은 어떻게 해야할까?
- for 구문이 사용하는 것은 딕셔너리에 포함된 값을 순서대로 꺼낸 것이기 때문에 "키:값"의 쌍에서 "키"만을 사용하고 있다.
- 우리는 area_dictionary 변수를 사용해서 출력해 줄 수 있겠죠. 키를 사용할 수 있으니까요.
Nice
to
meet
you
키와 벨류를 같이 보게 하려면
a : Nice
b : to
c : meet
d : you
파이썬에서는 어떤 함수의 결과로 하나의 값만 받는 것이 아니라 두 개 이상의 값을 받을 수 있다.
a : Nice
b : to
c : meet
d : you
- items( ) 라는 것도 딕셔너리 클래스가 가지고 있는 함수 중의 하나
- 딕셔너리 변수가 가지고 있는 각 항목들을 키와 값의 쌍으로 돌려주는 기능을 함.
- 한개의 변수만 가져오게 되면 튜플로 묶어서 가져오게 된다.
range 함수를 사용한 예제
- range( ) 함수는 내부에 지정된 범위 안의 숫자를 돌려주는 함수
- range( ) 함수에서는 범위 안의 숫자 사이의 간격을 지정할 수도 있음
0
1
2
3
4
3
4
5.2.3 for 문의 확장
if ~~ 구문을 이용해서 For 문을 빠져나간다거나
반복 작업 속에서 상황에 따라 다른 작업을 선택하도록 할 수 있다.
파이썬에서는 for ~ continue ~ break구문과 for ~ else 구문을 제공한다.
for ~ break 구문 - for구문을 어떤 조건에 맞춰서 중단시키는 구문
1
3
4
6
1
3
4
- 같은 코드지만 break에 위치에 따라서 동작이 달라지는 것을 확인해볼 수 있다.
1
3
4
- 결국 우리가 원하는 형태를 만들기 위해서 가공하는 것은 차이가 별로 없다
for ~ continue ~ break 구문
- for ~ continue ~ break 구문은 반복문을 수행하던 도중에 어떤 조건을 만나면 반복문을 계속 수행하고, 그 조건을 만족하지 않으면 반복문을 빠져나가도록 하는 구문이다
1
3
4
- continue 구문은 해당 조건을 만족할 경우 반복문을 계속 실행하라는 의미인데, 중요한 것은 continue 구문 이후의 명령들은 생략하라~ 라는 의미라는 것이다.
- 그렇기 때문에 print("continue")는 언제나 생략되어 출력되지 않은 것 이다.
1
3
4
continue
6
continue
7
아래는 continue쓰지 않고 동일한 코드 만든것임
1
3
4
continue
6
continue
7
for ~ else 구문
- for ~ else 구문은 반복문이 break 명령에 의해서 중단되지 않은 경우에만 else 안의 명령을 수행하라는 구문
- 어떤 처리를 할때 전부 다 마무리 됐다 하는것을 넣어주기 위해 사용
- 처리가 다 마무리 되면 출력
1
3
4
6
7
finish
- else는 final이라는 것과 비슷하게 사용됨
- final은 어떤 조건을 만족해도 만족하지 않아도 출력함.
1
3
4
6
7
finish
- x가 7보다 큰 경우에 break를 걸어줌
- 리스트 area의 마지막 값인 7이 x > 7을 만족하지 않았기 때문에 if문을 만족하기 전에 for문이 끝나버림
- break 명령에 걸리지 않게 되었으므로 "Finish"가 출력됨 (break를 만났느냐 만나지 않고 종료했느냐를 구분)
별첨) while에서 continue
5
6
7
8
6. 기본 문법을 가지고 활용
6.1 딕셔너리 처리
7D 건조 망고
값: 7D 건조 망고
6.2 스플릿
- 컴마 기준으로 스플릿하면 리스트로 만들어진다.
['짜장', '짬뽕', '탕슉']
6.3 3가지의 출력방식
- %d 숫자 출력
- %s 스트링 출력
궁금하면 1000원! 너는 500원
궁금하면 1000원! 너는 500원
궁금하면 1000원! 너는 500원
6.3 pass
- 큰 프로그램 만들때 처음부터 세세하게 제작이 어려움으로, 함수같은거 만들때 이름같은거만 만들고 넘어가는 경우가 많은데 이때 사용(개발 할때 팁처럼 사용)
2 단
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 단
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4 단
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5 단
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6 단
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7 단
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8 단
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9 단
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
7. 예외처리
- 프로그램을 만들때 생각하지 못한 일들이 발생시 처리하는 방법
- 에러처럼 오류가 우리의 통제를 벗어나는지 아닌지를 확인
- 가능하면 예외처리는 무저껀 한다 생각해야함
- 파이썬에서는 cotch 대신에 except를 사용함
안녕하세요.
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-84-6d5ed5ef1d00> in <cell line: 2>()
1 print('안녕하세요.')
----> 2 print(param)
NameError: name 'param' is not defined
- except를 사용하여 예외처리
- 우리가 만든 프로그램이 통제를 벗어나지 않았다라는 것을 보여줌
안녕하세요.
예외가 발생했습니다.
안녕하세요.
반갑습니다.
- finally:는 예외가 있건 없건 마지막에 무저껀 출력해주는 코드
- finally 앞단에 예외처리를 이용해서 예외가 어디 발생했는지 확인가능
- 예외처리를 하면서도 동시에 어떤 예외가 발생했는지 확인하는 코드
- Exception 이라는 클래스는 다양한 예외 정보를 다룸
안녕하세요.
name 'param3' is not defined
예외가 발생했습니다.
키보드 인터럽트 예외를
키보드 인터럽트 예외를 발생시키기 위하여 무한루프
1
2
3
4
5
6
7
8
9
사용자에 의해 프로그램이 중단되었습니다.
이러한 예외는 하나만 들어가는게 아니고 여러 개 넣을 수 있다.
잘못된 이름이 사용되었습니다.