[4조 불사조] Python Study
팀원: 김승혁, 류건희, 박지현, 이예주, 임은진, 조준혁
01장 파이썬이란 무엇인가?
01-1 파이썬이란?
1990년 암스테르담의 귀도반로섬이 개발한 인터프리터언어
*인터프리터언어: 소스코드를 한 줄씩 해석한 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어
01-2 파이썬의 특징
- 사람의 사고체계와 매우 유사한 언어
- 쉬운 문법과 빠른 학습 속도
- 오픈소스이자, 무료소프트웨어
- *오픈소스: 저작권자가 소스코드를 공개하여 누구나 별다른 제한없이 자유롭게 사용·복제·배포·
- 수정할수있는소프트웨어
- 간결성과 가독성
- 다른 사람이 작업한 소스코드를 이해하기 쉽고 공동작업, 유지보수가 매우 편리함들여쓰기 등 가독성을 높일 수 있는 요소들이 문법에 포함됨
- 빠른 개발속도
01-3 파이썬으로 무엇을 할 수 있을까?
(1) 파이썬으로 할 수 있는 것
- 웹프로그래밍
- 머신러닝 : scikit‑learn, TensorFlow 등을 지원해 자연어처리, 음성인식등 인공지능 기술 구현가능
- 수치연산프로그래밍 : Numpy 라는수치연산모듈을 통해 빠른 연산 가능
- 데이터 분석 : pandas등의 라이브러리를 통해 데이터처리,통계분석,시각화 가능
- 데이터베이스프로그래밍 : oracle 등의 데이터 베이스에 접근하기 위한 도구로 파이썬을 사용
- 시스템유틸리티제작 : 운영체제(윈도우,리눅스등)의 시스템명령어도구를 통해 시스템 *유틸리티제작 가능
- *유틸리티: 컴퓨터를사용하는데도움을주는여러가지소프트웨어
- GUI프로그래밍 * GUI(graphic user interface) 프로그래밍: 사용자가 컴퓨터와 정보를 교환할 때, 그래픽을 통해 작업할 수 있는 환경을 개발하는 것
- C/C++와결합 *c언어 이외의 다른 언어들과도 결합이 가능하다.
- 사물인터넷
(2) 파이썬으로 할 수 없는 것
- 시스템과 밀접한 프로그래밍영역 : 운영체제/ 엄청난횟수의반복과연산이필요한프로그램을 만들기 어렵다
- (수치연산프로그래밍이 가능한 것도 파이썬만의 역량이 아니라 c에서 빌려온 프로그램을 이용한 것이다.)
- 모바일프로그래밍
01-4 파이썬 설치하기
- 파이썬홈페이지(www.python.org)의 [download]클릭
01-5 파이썬 둘러보기
(1)파이썬 기초실습 준비하기
- ‘파이썬셸(pythonshell)’이라고도 부른다.
- '>>>'은 입력하는부분이며 프롬프트 라고 부른다.
- 대화형 인터프리터는 사용자의 입력과 커퓨터의 출력이 번갈아 가며 이루어지는 인터프리터이다.
- ‘…’은 아직 입력중인 문장이 끝나지 않았다는 것을 의미한다.
- 대화형인터프리터 종료방법
1. [Ctrl+Z]를누른후[Enter]를누르기 (유닉스계열에서는[Ctrl+ D])
2. 내장함수 quit() 이나 exit() 입력
3. sys 모듈 사용
>>> import sys
>>> sys.exit()
(2)파이썬 기초문법 따라해보기
1.사칙연산: 더하기(+), 빼기(-), 곱하기(*), 나누기(/)
>>> 2+3
5
>>> 6/5
1.2
>>> 3*7
21
2. 변수에 숫자 대입하고 계산하기
>>> a=2
>>> b=7
>>> a+b
9
3. 변수에 문자 대입하고 출력하기
>>> x = "apple"
>>> print(x)
apple
4. 조건문 if
>>> a = 8
>>> if 7 < a < 10
... print(a) #print 앞은 들여쓰기 된 상태
a
5-1. 반목문 for
>>> for a in [4, 5, 37]:
... print(a) #print 앞은 들여쓰기 된 상태
...
4
5
37
5-2. 반복문 while
a= 5
while a > 0 :
... a = a-1
... print(a) #print 앞은 들여쓰기 된 상태
...
4
3
2
1
0 #a가 0이하이므로 while문 내의 명령어가 실행되지 않는다.
6. 함수
- def: 파이썬에서 함수를 정의할 때 사용하는 예약어
- return: 함수에서 값을 반환할 때 사용
*예약어: 프로그래밍언어에서 이미 문법적인 용도로 사용하고 있는 단어
>>> def minus(x,y,z):
... return x-y-z #예약어 def를 통해 새로운 함수 minus를 생성
...
>>> minus(10,2,1) #함수 minus를 사용
7
※ if,for,while 문을 작성할 때 뒤에 오는 코드는 [Tab] 또는 [Spacebarx4]로 들여쓰기를 한 후, 작성해줘야한다. 들여쓰기를 하지 않으면 오류가 발생한다.
※ 명령어 쓸 때 주의할 점) 파이썬은 대/소문자를 구별한다.
ex) PRINT(X), print (O)
01-6 파이썬과 에디터
1) 파이썬 대화형 인터프리터의 단점
-여러줄의 복잡한 코드를 가진 프로그램을 만들 때 불편함
-인터프리터를 종료하면 프로그램(작성한 코드내용)이 사라져 다시 사용할 수 없음
2) 에디터란?
-소스코드를 편집할 수 있는 프로그래밍 도구
3) 파이썬 에디터의 종류
- python IDLE
- 비주얼스튜디오코드 (Visualstudiocode) (파이썬 extension 설치필요 O)
- 파이참(Pycharm) (파이썬 extension 설치필요 X)
📢02장 파이썬 프로그래밍의 기초, 자료형
📣02-1 숫자형
1) 숫자형이란 숫자 형태로 이루어진 자료형이다.
ex) 1, 2(정수형) 1.99(실수형) 0o34(8진수) 0x00(16진수)
8진수 , 16진수
2) 사칙연산은 수학을 하면서 기본적으로 알고 있을 것이다.
+는 덧셈, -는 뺄셈, *는 곱셈, /는 나눗셈이다.
3) a의 b제곱을 나타내는 **연산자
a의 b제곱을 나타내고 싶다면 **를 통해 a**b로 나타낸다.
4) %연산자는 나눗셈의 나머지를 리턴하는 연산자이다,
//는 나눗셈 후에 몫을 리턴라는 연산자이다.
5) 복합연산자
+, -와 같은 산술 연산자와 대입 연산자(=)를 합쳐 놓은 것이다.
위 사진은 a를 2를 증가시켜 출력시키는 것이다. 이는 a+=2표현 가능하다.
같은 원리로 뺼셈도 a=a-2와 a-=2이다.
📣02-2 문자열 자료형
1) 문자열이란 연속된 문자들의 나열을 말한다.
문자열의 종류: 'tistory', " tistory", '''tistory''', """tistory"""와 같이 4가지가 있으며 작은/큰따옴표로 나타낸다.
위의 사진처럼 따옴표안에 따옴표를 쓸일이 생기기 때문에 작은/큰 따옴표의 구분이필요하다.
이 때 안에 들어간 따옴표는 문자열을 나타내는 기호로 인식되지 않는다.
만약 큰/작은따옴표의 구분이 없다면 오류가 발생할 것이다.
2) 줄 바꿈을 위한 이스케이프 코드\ n
줄바꿈을 위해서는 \n을 삽입하여 줄바꿈이 가능하다. 하지만 읽기가 불편하고 줄이 길어지는 단점이 있다.
이를 보완하기 위한 다른 방법에는 연속된 큰/작은따옴표 3개(''', """)로 줄 바꿈을 할 수 있다.
둘의 결과는 똑같다. 하지만 이스케이프 코드보다 따옴표를 이용한 것이 더 편할 것이다.
3) 이스케이프 코드
이스케이프 코드란 프로그래밍할 때 사용하도록 미리 만들어둔 문자 조합을 일컫는다.
ex) \n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ \를 그대로 표현할 때 사용
\' 작은따옴표 (’) 를 그대로 표현할 때 사용
\" 큰따옴표 (”) 를 그대로 표현할 때 사용
4) 문자열 연산하기
1] 문자열 더하기
문자열도 숫자형처럼 더하기가 가능하다. 혁신+경영=혁신경영처럼 말이다.
2] 문자열 곱하기
우리가 아는 곱셈이 아닌 똑같은 문자열을 여러번 반복하는 것을 말한다.
문자열 연산은 굉장히 직관적으로 이해 가능할 것이다.
유건희
문자열 포매팅이란?
문자열 안의 특정한 값을 바꿔야 할 경우가 있는데, 이때 사용하는 기능이 문자열 포매팅이다.
쉽게 설명하자면, 문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.
1) 문자열 포매팅 따라 하기
1. 숫자 바로 대입
"I eat %d apples."
'I eat 3 apples.'
위 예제는 문자열 안에 정수 3을 삽입하는 방법을 보여 준다. 문자열 안의 숫자를 넣고 싶은 자리에 %d 문자를 넣어 주고 삽입할 숫자 3은 가장 뒤에 있는 % 문자 다음에 써 넣었다.
여기서 %d는 '문자열 포맷 코드' 라고 부른다.
2. 문자열 바로 대입
"I eat %s apples." % "five"
'I eat five apples.'
이번엔 문자열을 대입해보았다.
1번에서는 문자열 포멧 코드로 %d를 사용했지만, 이번엔 %s를 사용했다.
이 차이를 알기 위해선 문자열 포맷 코드의 종류에 대해 알아야한다.
그림을 보다시피 %d는 정수를 변환할 때 사용하고, %s는 문자열을 변환할 때 사용한다.
"I have %s apples" % 3
'I have 3 apples'
"rate is %s" % 3.234
'rate is 3.234'
3을 문자열에 삽입하려면 %d, 3.234를 삽입하려면 %f를 사용해야하지만, %s를 사용하면 이런 걱정을 하지않아도 된다.
3. 숫자 값을 나타내는 변수로 대입
number = 3
"I eat %d apples." % number
'I eat 3 apples.'
4. 2개 이상의 값 넣기
number = 10
day = "three"
"I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'
2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 쉼표 (,) 구분하여 각각의 값을 넣어 주면 된다.
2)포맷 코드와 숫자 함께 사용하기
1. 정렬과 공백
"%10s" % "hi"
' hi'
%10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨두라는 의미이다.
반대쪽(왼쪽) 정렬은 %-10s가 된다.
2. 소수점 표현하기
"%0.4f" % 3.4213234
'3.4213'
3.4213234를 소수점 네 번째 자리까지만 나타내고 싶은 경우에는 위와 같이 작성한다. %0.4f에서 '.'는 소수점 포인트, 그 뒤의 숫자 4는 소수점 뒤에 나올 숫자의 개수를 말한다. 소수점 포인트 앞의 숫자는 문자열의 전체 길이를 의미하는데, 여기서 숫자 0은 길이에 상관하지 않겠다는 의미이다.
또한 %0.4f는 0을 생략하여 %,4f처럼 사용하기도 한다.
"%10.4f" % 3.4213234
' 3.4213'
위는 숫자 3.42134234 를 소수점 네번째 자리까지만 표시하고 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하는 예를 보여준다.
3)format 함수를 사용한 포매팅
1. 숫자 바로 대입하기
"I eat {0} apples". format(3)
'I eat 3 apples'
"I eat {3} apples" 문자열 중 {0} 부분이 숫자 3으로 바뀐것을 확인할 수 있다.
2. 문자열 바로 대입하기
"I eat {0} apples". format ("five")
'I eat five apples'
문자열의 {0} 항목이 문자열로 바뀌었다
이외에도 number 변수를 사용해서 문자열의 항목을 바꿀 수도 있다.
3. 2개 이상의 값 넣기
number = 10
day = "three"
"I ate {0} apples. so I was sick for {1} days." .format(number, day)
'I ate 10 apples. so I was sick for three days'
2개 이상의 값을 넣을 경우, 문자열의 {0},{1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
4. 왼쪽 정렬
"{0:<10}".format("hi")
' hi'
:<10 표현식을 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞출 수 있다.
오른쪽 정렬은 :>를 사용하면 된다. 또한 :^를 사용하면 가운데 정렬도 가능하다.
5. 공백채우기
"{0:=ˆ10}".format("hi")
'====hi===='
위와 같이 정렬할 때 공백 대신 지정한 문자 값으로 채워 넣을 수도 있다.
6. 소수점 표현하기
y=3.42134234
"{0:0.4f}".format(y)
' 3.4213 '
위는 format 함수를 사용해 소수점을 4자리까지만 표현하는 방법을 보여준다.
또한 위에서 정리한 방법으로 자릿수를 10으로 맞출 수도 있다.
4)f 문자열 포매팅
다음과 같이 문자열 앞에 f 접두사를 붙이면 f문자열 포매팅 기능을 사용할 수 있다.
name = ' 류건희 '
age = 20
f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 류건희입니다. 나이는 20입니다.'
f문자열 포매팅은 위와 같이 name, age 와 같은 변수값을 생성한 후에 그 값을 참조할 수 있다.
또한 f문자열 포매팅은 표현식을 지원하기 때문에 다음과 같은 것도 가능하다.
5) 문자열 관련 함수
1. 문자 개수 세기 - count
a = "hobby"
a.count('b')
2
count 함수로 문자열 중 문자 b의 개수를 리턴했다.
2. 위치 알려주기 - find, index
3.문자열 삽입 - join
",".join('abcd')
'a,b,c,d'
join함수로 abcd 문자열의 각각의 문자 사이에 , 를 삽입했다.
4. 소문자를 대문자로, 대문자를 소문자로 바꾸기
5.공백 지우기 - strip
6. 문자열 바꾸기, 문자열 나누기 - replace, split
02-3 리스트 자료형
담당자: 이예주
리스트란?
- 숫자나 문자열의 모음!
리스트의 생김새&특징
- code = [1, 'khu', 2024] *(), {}과 헷갈리지 않기!
- code는 리스트명/ 1, 'khu', 2024는 요소!
- 리스트 안에 리스트가 들어갈 수 있다!
ex) code = [1, 'khu', [2024, 2023, 2022]]
- 리스트는 공백으로만 이뤄질 수 있다
ex) code = [ ]
리스트의 인덱싱
- 인덱싱은 특정 순서의 요소를 불러오는 것
- 인덱싱 하는 법
ex)
>>> ts= [1989, 'speak now', 'lover'] *첫번째 요소부터 0,1,2,... 순
>>>ts[0]
1989
>>>ts[-1] *-1은 뒤에서 첫번째 요소를 뜻함.
'lover'
- 인덱싱으로 연산이 가능하다(+,-,%,/,//,**)
>>>a=[1,2,3,4,5]
>>>a[4]**a[1]
25
- 리스트 속 리스트 인덱싱 하는 법
>>> ts= [1989, 'speak now', ['lover', 'reputation', 'midnights']]
>>>a[2][2] *2번째 요소(리스트) 중 두번째 요소
'midnights'
리스트의 슬라이싱
- 슬라이싱은 잘라내는 것으로 내가 지정한 부분만 불러오는 것.
- 슬라이싱 기본
>>> ts= [1989, 'speak now', 'lover']
>>> ts[0:2]
1989, 'speak now'
>>>ts[:3] *처음부터 a[2]까지 출력됨
>>>ts[1:] *a[1]부터 끝까지 출력됨
리스트 연산
- 리스트 더하기
>>> ts = [1, 9, 8, 9]
>>> code = [2, 0, 2, 4]
>>> ts + code
[1, 9, 8, 9, 2, 0, 2, 4]
- 리스트 반복하기
>>> ts * 2
[ 1, 9, 8, 9, 1, 9, 8, 9]
- 리스트 길이 구하기
>>> len(ts)
4
*리스트는 정수, 실수와 문자열과 더할 수 없음
리스트 수정
>>> ts[0] = 2
>>> ts
[2, 9, 8, 9]
리스트 삭제
- del 함수 사용하기
>>> del ts[2]
>>>ts
[1,9,9]
리스트 관련 다양한 함수
- append: 마지막에 덧붙이기
>>>a = [1,2,3]
>>>a.append(4)
>>>a
[1,2,3,4]
- sort: 오름차순, abc, 가나다 순으로 정렬
>>>a = [4,2,3,1]
>>>a.sort()
>>>a
[1,2,3,4]
- reverse: 현재의 리스트를 역순으로 돌리기
>>>a = [4,2,3,1]
>>>a.reverse()
>>>a
[1,3,2,4]
- index: 요소 찾기
>>>a = [1,2,3]
>>>a.index(3)
2
- insert: 요소 삽입
>>>a = [1,2,3,4]
>>>a.insert(4,5) *(들어갈 위치, 삽입될 요소)
>>>a
[1,3,2,4,5]
- remove: 요소 제거
>>>a = [1,4,3,4]
>>>a.remove(4) *첫번째로 나오는 4 제거
>>>a
[1,3,4]
- pop: 요소 끄집어 내서 삭제하기
>>> a = [1,2,3]
>>>a.pop() *공백이면 맨 마지막 요소 제거/ a.pop(2)이면 a[2]삭제 끄집어내고 삭제
3
>>>a
[1,2]
- count: 특정 요소 개수 세기
>>> a = [1,2,1,1,3]
>>> a.count(1)
3
- extend: 확장
>>> a = [1,2,3]
>>> a.extend([5,6])
>>> a
[1,2,3,5,6]
02-4 튜플 자료형
담당자: 박지현
튜플은 리스트와 매우 유사!
튜플의 특징
1.요솟값의 삭제,수정 불가능(요솟값의 변화 X)
2. ()로 둘러쌈
3-1. 위의 사진에서 볼 수 있듯이 t2 = (2,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표를 꼭 붙이기
3-2. 위의 사진에서 볼 수 있듯이 t4 = 1,2,3,4,5처럼 소괄호 생략 가능
튜플 다루기
- 인덱싱하기
- 슬라이싱하기
- 튜플 더하기
- 튜플 곱하기
- 튜플 길이 구하기
02-5 딕셔너리 자료형
담당자: 조준혁
딕셔너리란??
- 사전이라는 의미로, key에 대응되는 value를 한쌍으로 세트로 가지게 하는 자료형이다.
key는 이름이라고 생각하고, value 대응되는 값이라고 생각해보았다.
딕셔너리의 기본 모습
{key1 : Value1, key2: Value2}
쌍 여러개가 {}로 둘러싸여 있다. 각각의 요소는 쉼표(,)로 구분된다.
예시를 살펴보자.
dic={ 'name':'joonhyeok' , 'phone': '010 2620 6544'}
name 에 대응하는 value 는'joonhyeok' 이고 phone 에 대응하는 value는 010 2620 6544 다.
예시2)
문자열, 리스트도 넣을 수 있다.
a = { 1: 'hi'}
b = { 'c': [1,2,3]}
딕셔너리 쌍 추가, 삭제하기
a={1:'a'}
a[2] = 'b'
key 인 2를 value b랑 쌍으로 순서대로 넣는다.
del a[1]
a정리형 자료에 key가 1인 쌍을 삭제한다.
key를 사용해 vaiue 얻기.
grade = {'pey' : 10, 'jully' : 90}
grade['pey']
10
딕셔너리는 요솟값을 얻고자 할때 단 한가지 방법 key를 사용해서 Value를 구하는 방법이다.
딕셔너리 만들때 key는 고유한 값이므로 중복되는 key의 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시되니 조심하자!
key 리스트 만들기!
dic={'a' = 'add' ,'b'= 'bear' , 'c' = 'clear'}
dic.keys()
>>>dict_keys(['a','b','c'])
dic.keys()는 딕셔너리 dic 의 key만을 모아 객체를 리턴한다
리스트를 사용하는 것과 별 차이는 없지만, 리스트 고유의 append insert 함수는 수행할 수 없다.
value 리스트 만들기 - values
dic.values()
key를 얻는 것과 마찬가지로 value만 얻고 싶다면 values 함수를 사용하면 된다.
key, value 쌍 얻기, 모두 지우기 -items clear
items 함수는 key value의 상을 투플로 묶은 값을 리턴한다.
Key로 value 얻기 - get
get(x) 함수는 x라는 key에 대응하는 value를 리턴한다.
해당 key가 딕셔너리 안에 있는지 조사하기 -in
'a' in dic
>>>True
2주차
2-06장
담당자 : 유건희
집합 자료형
집합 (set) 은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
1) 집합 자료형은 어떻게 만들까?
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
2) 집합 자료형의 특징
집합 자료형의 특징은 크게 두가지가 있다.
- 중복을 허용하지 않는다.
- 순서가 없다.
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 요솟값을 얻을 수 있지만, set 자료형은 순서가 없기 때문에 인덱싱을 통해 요솟값을 얻을 수 없다. 마치 딕셔너리와 비슷하다.
그렇기에 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한 후에 해야 한다.
3)교집합, 합집합, 차집합 구하기
set 자료형을 정말 유용하게 사용하는 방법은 바로 교집합, 차집합, 합집합을 사용하는 방법이다.
1. 교집합 구하기
교집합은 '&'을 통해 구할 수 있다. 또한 intersection 함수를 사용해서도 교집합을 구할 수 있다.
2. 합집합 구하기
합집합은 '|'를 사용하여 구할 수 있다. 그리고 union 함수를 사용해도 구할 수 있다.
3. 차집합 구하기
'-'와 difference 함수를 사용해 차집합을 구할 수 있다.
4) 집합 자료형 관련 함수
1. 값 1개 추가하기 - add
이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가할 때는 아래와 같이 하면된다.
2. 값 여러 개 추가하기 - update
여러개의 값을 한꺼번에 추가할 때는 아래와 같이 하면 된다.
3. 특정 값 제거하기 - remove
특정 값을 제거하고 싶을 때는 아래와 같이 하면 된다.
2-07장 불 자료형
불자료형이란
참(True)과거짓(False)을나타내는자료형으로, True(참)과 False(거짓)의 2가지 값만을 가질 수 있다.
이때 True 나False는파이썬의예약어로, true,false와 같이 작성하면 안되고 첫 문자를 항상 대문자로 작성해야한다.
>>> t = True
>>> f = False
>>> type(a) #변수의 자료형을 확인하는 함수
<class 'bool'>
>>> type(b)
<class 'bool'>
위와 같이 변수들을 각각 True와 False로 저장했을 때 True와 False는 예약어이기 때문에 파이썬은 이를 문자열로 인식하지 않고 불 자료형으로 인식하여 오류가 나지 않는다.
불 자료형의 이용
1. 조건문의 리턴값(판단결과)으로 이용
>>> 1 < 2
True
>>> 3 > 4
False
>>>1==1 #두 값이 같은지 아닌지를 판단하는 조건연산자는 = 이 아니라 == 이다!
True
참과 거짓의 판단기준은 아래와 같다.
1)거짓인 경우
- 문자열,리스트,튜플,딕셔너리등의값이비어있음 (””,[],(),{})
- 숫자에서 그 값이 0인 경우
- None
2)참인 경우
-문자열,리스트,튜플,딕셔너리 등의 값이 채워져 있음 (””,[],(),{})
※자료형의 참,거짓을 판단하기 어려울때는 bool(판단하고 싶은 값) 의형식으로 bool함수를 작성하면 된다.
>>>bool(0)
False
>>>bool([])
False
>>>bool("CODE")
True
2.반복문과 조건문의 조건역할
>>>if ():
print("a") #참인 경우
>>>if: [1,2,3]:
print("b") #거짓인 경우
2-08 자료형의 값을 저장하는 공간, 변수
변수란?
객체를 가리키는 것!
*변수 는 값을 저장하는 역할을 수행한다.
>> a=1
>>> c=34
에서 a와c는 변수이다.
변수 만드는 법
- 변수이름=변수에 저장할 값
*c언어나 java에서는 변수를 만들 때 자료형을 지정해주어야 한다. 그러나 파이썬에서는 스스로 판단하여 저장한다.
변수에 저장된 값은 자동으로 메모리(데이터를 기억하는 공간)에 생성된다.
메모리 주소 확인하는 법
- id(변수이름) 을 입력하면 메모리주소가 출력된다.
리스트를 복사할 때
>>>a=[1,2,3]
>>>b=a
을 입력하면 [1,2,3]를 참조하는 변수에 b가 추가된다.
즉, a와 b는 가리키는 대상이 같게 되는 것이다.
하지만 다음과 같이 [:] 전체 슬라이싱을 이용하면 a의 변수값을 가져오되 a와 다른 주소를 가리키도록 만들 수 있다.
두번째로는 copy모듈을 이용하는 것이다.
copy함수를 사용할 수도 있다.
변수를 만드는 여러가지 방법
두 개의 변수를 서로 바꾸는 방법
📣3-01장
3-1 if 문
(1) if문은 왜 필요할까?
주어진 조건을 판단한 후 상황에 맞게 처리할 일이 생기기 때문이다.
조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if 문이다.
if문의 기본 구조
조건문을 테스트해서 참이면 if문 다음 문장들을 수행하고, else문 다음 문장들을 수행하게 된다. \
else 문은 if 문 없이 독립적으로 사용할 수 없다.
(2) 들여쓰기
if조건문을 작성할 때, if문에 속하는 모든 문장에서 들여쓰기를 해야한다. 파이썬은 자동적으로 들여쓰기가 되지만 반대로 자동으로 들여쓰기하는 것에 주의해야 한다!!!
들여쓰기는 언제나 같은 깊이로!!
(3) 조건문이란 무엇인가?
if 조건문에서 ‘조건문’ 이란 참과 거짓을 판단하는 문장을 말한다.
(4) 비교 연산자의 종류
x<y: x가y보다 작다.
x>y: x가 y 보다 크다.
x==y: x와 y가같다.
x!=y: x와y가같지 않다.
x>=y: x가y 보다 크거나 같다.
x<=y: x 가y 보다 작거나 같다.
(5) and or not
조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not이 있다
x or y: x와 y 둘 중 하나만 참이어도 참이다.
x and y: x와 y모두 참이어야 참이다.
notx: x가 거짓이면 참이다.
(6) in, not in
파이썬은 이러한 재밌는 조건문도 존재한다.
X가 리스트에 존재하면 true, 존재하지 않으면 false가 리턴된다. not in은 반대이다.
(7) 다양한 조건을 판단하는 elif
if와 else 두 가지로 조건을 판다는 하는 데 어려움이 있다. 그때 사용하는 것이 elif이다.
※elif의 개수는 제한이 없다.
ex)
※기본 구조
조건문에서 elif를 사용할 때 if는 앞, elif는 중간, else는 항상 마지막에 존재한다.
(8) 조건부 표현식
아래의 코드처럼 여러줄을 간ㄷ간히 표현하는 것
위 코드를 다음과 같이 변환 할 수 있다.
message = "success" if score >= 45 else "failure"
담당자 : 김승혁
3-02장
담당자 : 박지현
-while문이란?
'반복문'이라고도 일컫는데, 문장을 반복해서 수행해야 할 경우 사용함!
따라서 조건문이 참인 동안에 while 문에 속한 문장들은 반복해서 수행함
-while문의 기본구조
위의 사진을 보면, while문의 조건문은 houseHit < 7이다.
만약 houseHit의 값이 계속 1만큼 증가하다가 7이 되면 "집 넘어갑니다."라는 문장을 출력하게 된다.
- while문 만들기
문자열을 만든 뒤 while문을 보면 while number ! = 4: 는 숫자 4를 넣지 않을 때까지 반복하라는 뜻이다.
따라서 위의 두 사진을 비교해보다면 enter number에 4를 입력하지 않는다면 계속해서 prompt를 출력하는 걸 알 수 있다.
고로 여기서도 while 문은 조건문이 참인 동안에는 계속 반복적으로 수행하는 걸 볼 수 있다. 그치만 만약 강제로 while문을 빠져나가고 싶다면 ??
Break 문을 사용하자 !
조건문 while money: 에서 money는 0이 아니므로 항상 참이다.
그러므로 coffee의 개수가 1개씩 줄어들면서 coffee가 0이 되면 break문이 호출되어 while문을 빠져나가게 되는 걸 알 수 있다.
-while 문의 맨 처음으로 돌아가기
while 문을 빠져나가지 않고 while 문의 맨 처음으로 다시 돌아가게 만들고 싶다면 continue 문을 사용 !
continue 문은 while 문의 맨 처음인 조건문으로 돌아가게 하는 명령어이다.
-무한루프
while 문의 조건문이 true일 떄 항상 참이므로 while 문 안에 있는 문장들은 무한히 수행된다.
위의 사진은 무한 루프의 예다..(엄청나다) 꼭 ctrl + C를 누르자!
3-03장
담당자 : 조준혁
for 문
for 문의 기본 구조
for 변수 in 리스트(또는 튜플,문자열):
수행할 문장 1....
리스트나 튜플,문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 수행할 문장 1... 수행 할 문장 2... 등이 수행된다.
List = ['a','b','c']
for k in List:
print(k)
a
b
c
예로 위를 들 수 있다.
리스트 안에 튜플자체를 변수로 사용할 수 있다.
a=[(2,4),(5,6),(3,1)]
for (b,c) in a:
print(b+c)
6
11
4
For 문과 range 함수
range 함수는 숫자 리스트를 자동으로 만들어주는 함수이다.
Ex)
a= range(0,10)
a
>>> 0,1,2,3,4,5,6,7,8,9
0 부터 10 미만 숫자를 포함하는 range 객체를 만들어준다.
for i in range(2,10):
for j in range(1,10):
print(i*j,end=" ")
print('')
for 문과 range 함수를 사용하여 숫자를 차례로 더하는 것을 편하게 표현할 수 있다.
a=0
for i in range(11):
a = a + i
print(a)
>>>55
리스트 컴프리헨션 사용하기
a = [1,2,3,4]
result = [num*3 for num in a]
print(result)
>>>[3,6,9,12]