python 비교연산자

비교 연산자

    <   작다
    >   크다
    ==  같다
    !=  같지 않다
    >=  크거나 같다
    <=  작거나 같다

비교 연산 결과는 반드시 bool(참 or 거짓)이 되야한다.

    x or y     둘 중 하나만 참이면 된다.
    x and y    둘 모두 참일 경우
    not x      x가 거짓이면 참이다
1
2
# ex
1>3 and 2<4 ## false and ture
False
1
True and False or True or False and True   ## 연산은 왼쪽부터 수행한다.
True
1
not False
True
1
not False or not True
True
1
1 or 0 or -1       ## 0 : 거짓(0) , 0 이외 : 참(1 혹은 다른 수)
1
1
bool(5)         ## bool 값으로 변경
True

x in s , x not in s

x in list,튜플,문자열 / x not in list,튜플,문자열
: list,튜플,문자열 안에 x가 있는가?

1
1 in [1,2,3]      ## 존재하면 ture 하지 않으면 false
True
1
'a' not in ['a','b']
False
1
't' in 'pythone'    ## 문자열 같은 경우 해당 문자가 존재하는가로 결정
True
1
2
3
4
5
6
pocket = ['phone','money','card']

if ('money' in pocket) or ('card' in pocket): ## 괄호 설정으로 확실히하기
print("택시")
else:
print("보도")
택시
1
2
3
4
5
6
pocket = ['phone','money','card']

if not ('money' in pocket) or not ('card' in pocket):
print("보도")
else:
print("택시")
택시
1
2
3
4
5
6
7
# elif (else if)   elif 문 사용 수에 제한은 없다.

pocket = ['phone','card']

if 'money' in pocket: print("택시 by money") ## 수행문이 1줄일 경우 줄이기 가능
elif 'card' in pocket: print("택시 by card")
else: print("보도")
택시 by card

python 제어문

제어문

파이썬 프로그래밍의 첫번째 단계 : 변수(variable)를 선언해서 객체(object)를 메모리에 담는 것
파이썬 프로그래밍의 두번째 단계 : 객체로 뭔가 컴퓨터가 일을 하게 만든다.
컴퓨터가 할 수 있는 일은 크게 나누어 판단과 반복 밖에 없음을 기억한다.
1) 판단 : 컴퓨터가 객체들을 비교하여 판단하게 만들기 : if 문
2) 반복 : 사람보다 수만배 빠른 두뇌회전 속도를 이용하여 반복계산 시키기 : for 문
3) 판단 + 반복 : 두 과정을 결합하여 조건이 맞는 동안만 반복하기 : while 문

if 문

1
2
3
4
5
6
# ex1
money = True ## 불(bool) 타입: True or False ; 판단에 쓰이는 자료이기에 매우 중요하다.
if money: ## if 다음 불(bool)이 나온다.
print("택시를 타고 가라") ## 실행문에는 반드시 들여쓰기를 해줘야 한다.
else:
print("걸어 가라") ## **동일한 수행 동작은 줄을 맞춰야한다.** ## Tab 이용
택시를 타고 가라

money에 True를 입력했으므로 money는 참이다. 따라서 if문 다음 문장이 수행되어 ‘택시를 타고 가라’가 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
# if 문 기본구조
'''

if 조건문:
수행할 문장1 ## 조건문 = ture 일 경우 수행 문장
수행할 문장2
...
else:
수행할 문장A ## 조건문 = false 일 경우 수행 문장
수행할 문장B
...
'''

'\n\nif 조건문:\n    수행할 문장1    ## 조건문 = ture 일 경우 수행 문장\n    수행할 문장2\n    ...\nelse:\n    수행할 문장A    ## 조건문 = false 일 경우 수행 문장\n    수행할 문장B\n    ...\n'

python 변수

변수(Variable), 객체(Object), 자료(Data), 자료형(Data type)

자료는 우리가 컴퓨터 메모리에 입력할 컴퓨터 외부에 존재하는 수, 문자 등을 의미
자료를 컴퓨터에 입력하기 위해서 일정한 규칙이 필요하고 그 규칙은 자료형으로 규정된다.
컴퓨터 외부에 존재하는 자료를 컴퓨터 머리에 입력하는 독특한 방식은 ‘=’ 기호를 쓰고 주로 ‘변수 = 자료’ 형태를 취한다
일단 컴퓨터 메모리에 자료를 입력하면 그 자료는 ‘자료’라 부르지 않고 파이썬에선 ‘객체(Object)’라 칭한다.
변수란 컴퓨터 메모리 어딘가에 존재하는 객체가 어디에 있는지를 알려주는 주소 개념이다.
타 프로그래밍 언어인 C나 Java에선 자료형(Data type)이 무엇인지 친절히 알려줘야한다.
반면, 파이썬은 자료를 스스로 살펴보고 자료형이 무엇인지 판단한다. 따라사 그 과정이 필요 없다.
변수를 만들 때는 반드시 ‘=’(assignment) 기호를 사용한다.
예 : a = [1,2,3] 이면, [1,2,3] 값을 가지는 리스트 자료형(객체)은 메모리에 자동생성되고 변수 a는 리스트가 저장된 메모리 주소를 가리킨다.

1
2
a = [1,2,3]
id(a) # id() : 변수가 가리키고 있는 객체의 주고 값을 돌려주는 함수
2456107858688
1
2
3
4
# 여러 변수 한번에 만들기
a, b = 1, 2
print(a)
print(b)
1
2
1
2
3
4
# null 변수 만들기
a = None
print(a)
type(a)
None





NoneType
1
2
3
4
5
6
# 변수에 변수를 할당할 경우
b = a ## 주소값 공유
print(a)
print(b)
print(id(a))
print(id(b))
None
None
140715255699584
140715255699584
1
2
# a와 b가 가리키는 객체가 동일한지 묻는 방법 (is)
a is b
True
1
2
3
4
5
# * 주의 *
a[1] = 4
print(a)
print(b)
## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-72-a5aa4d30ec01> in <module>
      1 # * 주의 *
----> 2 a[1] = 4
      3 print(a)
      4 print(b)
      5 ## 주소값 공유란, 자료를 복사하는 것이 아니라 메모리 주소를 서로 공유한다는 것.


TypeError: 'NoneType' object does not support item assignment
1
2
3
4
5
6
7
8
9
# [:] 사용

a = [1,2,3]
b = a[:]
a[1] = 4
print(a)
print(b)
## [:]는 리스트 전체를 가리키는 방법이기에 자료를 복사하는 경우다.
a is b
[1, 4, 3]
[1, 2, 3]





False
1
2
3
4
#1 자연수 a 홀수 짝수 판별
a = 13
b = a%2
print(b) # print 값이 0일 경우 짝수, 1일 경우 홀수
1
1
2
3
#2 주민등록번호 13자리를 생년월일(YYMMDD)과 그 외 숫자로 분류
a = "0101011234567"
print(a[:6],"-",a[6:]) ## a[:6] : 0 =< print < 6 , a[6:] : 6 =< print
010101 - 1234567
1
2
3
4
5
#3 [1,3,5,4,2] 리스트를 [5,4,3,2,1]로 변경 ## 오름차순 내림차순
a = [1,3,5,4,2]
a.sort()
a.reverse()
print(a)
[5, 4, 3, 2, 1]

python 불

불 자료형 (bool)

참(Ture), 거짓(False) 2가지 값만 가진다.

1
2
3
# 따옴표로 감싸지 않아도 변수 지정이 된다.
a = True #참
b = False #거짓
1
type(a)
bool
1
type(b)
bool
1
2
a = 1 == 1  # '=' : 할당 , '==' : equal , '!=' : 같지 않다.
print(a)
True

자료형의 참과 거짓

문자형이나 리스트, 튜플 등은 비어 있으면 거짓(False)가 되고, 비어 있지 않으면 참(True)이 된다. 숫자에서는 그 값이 0이 될 때 거짓이 된다.

[문자열]

"python" = Ture
"" = False

[리스트]

[1,2,3] = Ture
[] = False

[튜플]

(1,2,3) = Ture 
() = False

[딕셔너리]

{1,2,3} = Ture 
{} = False

[숫자형]

0이 아닌 수 = Ture 
0 = False
1
2
3
4
5
6
7
# bool 자료형 활용 예시
# while 조건문:
# 수행할 문장

a=[1,2,3,4]
while a: # a가 참이 동안
print(a.pop()) # 리스트 마지막 요소를 하나씩 꺼낸다
4
3
2
1
1
2
3
4
5
6
7
8
9
10
11
# 예시 2

if []: #만약 [ ] 가 참이면,
print("Ture") # '참' 문자열 출력
else: # 만약 [ ] 가 거짓이면,
print("False") # '거짓' 문자열 출력

if [1,2,3]:
print("Ture")
else:
print("False")
False
Ture

python 딕셔너리

딕셔너리 (Dictionary)

‘이름’=’홍길동, ‘생일’=’n월n일’과 같이 대응 관계를 나타낼 수 있는 자료형 (연관배열, 해시)

{key1:Value1, key2:Value2, key3:Value3} —> {} 로 둘러싸여 있고, 쉼표로 구분

열쇠(key)가 있어야 값(value)을 얻는다.

1
reset -f
1
dict = {'name':'pei','birth':'1118'}
1
whos
Variable   Type    Data/Info
----------------------------
dict       dict    n=2
1
a = {'a':[1,2,3]} # Value에 리스트도 넣을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
# 딕셔너리 추가
a = {1:'a'}
print(a)

a[2] = 'b' # a[ 2 ]에서 2는 몇번째 요소의 의미가 아니라 key 값을 의미한다.
print(a)

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

a['name'] = 'pay'
print(a)
{1: 'a'}
{1: 'a', 2: 'b'}
{1: 'a', 2: 'b', 3: [1, 2, 3]}
{1: 'a', 2: 'b', 3: [1, 2, 3], 'name': 'pay'}
1
2
3
# 삭제 del
del a['name']
print(a)
{1: 'a', 2: 'b', 3: [1, 2, 3]}
1
2
3
# 딕셔너리 주의사항 : key 값이 중복될 경우 기존 값을 대체한다.
a={1:'a',1:'b'}
print(a)
{1: 'b'}
1
2
3
4
5
6
# 딕셔너리 관련 함수

# key 리스트 생성
a = {'name':'pey','phone':'01012345678','birth':'1118'}
print(a.keys()) #딕셔너리의 key 만을 모아 딕셔너리(dict_keys)로 만듦
print(list(a.keys()))
dict_keys(['name', 'phone', 'birth'])
['name', 'phone', 'birth']
1
2
3
4
5
6
# Value 리스트 만들기 (values)
print(a.values())
# key, value 쌍 얻기 (items)
print(a.items())
# key, value 쌍 모두 지우기 (clear)
print(a.clear())
dict_values(['pey', '01012345678', '1118'])
dict_items([('name', 'pey'), ('phone', '01012345678'), ('birth', '1118')])
None
1
2
3
4
# key로 value 얻기 (get)
a = {'name':'pey','phone':'01012345678','birth':'1118'}
print(a.get('name'))
a['name'] ## get 대체로 index를 이용 가능
pey





'pey'

pythone 튜플

튜플(tuple)

튜플은 리스트와 달리 수정이 불가능하다.

리스트는 []로 둘러싸지만 튜플은 ()로 둘러싼다.

리스트는 값의 생성, 삭제, 수정이 가능하지만 튜플은 불가능하다.

프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바를 때 사용한다.

1
reset -f
1
2
3
4
5
t1 = ()
t2 = (1,) # 요소가 1개일 경우 반드시 콤마(,)를 넣어야한다.
t3 = (1,2,3)
t4 = 1,2,3 # 괄호 생략 가능
t5 = ('a','b',('ab','cd')) # 튜플 내부에 튜플 삽입 가능. 단, 리스트는 변경 가능 변수이므로 삽입할 수 없다.
1
whos
Variable   Type     Data/Info
-----------------------------
t1         tuple    n=0
t2         tuple    n=1
t3         tuple    n=3
t4         tuple    n=3
t5         tuple    n=3
1
2
3
4
5
6
7
8
9
10
11
# 인덱싱
t1 =(1,2,'a','b')
print(t1[0])
print(t1[3])
# 슬라이싱
print(t1[1:])
# 덧셈
t2 =(3,4)
print(t1+t2)
# 곱셈
print(t2*3)
1
b
(2, 'a', 'b')
(1, 2, 'a', 'b', 3, 4)
(3, 4, 3, 4, 3, 4)

python 리스트

리스트(list)

여러개의 자료를 하나의 변수에 담기 위한 자료형. 순서가 존재한다.

c 언어 배열과 동일하게 첫번째 자료의 할당 번호는 ‘0’번이다.
반면 list의 자료형의 형태는 자유롭다. (실수 정수 문자형 동일한 리스트에서 사용 가능)
1
a = [1,3,5,7,9]
1
2
print(a)
print(a[0],a[3]) #변수_이름[요소_번호]
[1, 3, 5, 7, 9]
1 7
1
b= a[2]
1
whos
Variable   Type    Data/Info
----------------------------
a          list    n=5
b          int     5
c          str     my_note
1
a
[1, 3, 5, 7, 9]
1
2
#리스트에서 자료를 뽑아내는 방식 1: 인덱싱  /  2: 슬라이싱
a[0:2] # #:#의 의미는 0 <= x < 2
[1, 3]
1
2
b=a[0:2]
print(b)
[1, 3]
1
2
a=[1, 3.5 , "n o t e", [1,2,3]]
a
[1, 3.5, 'n o t e', [1, 2, 3]]
1
whos
Variable   Type    Data/Info
----------------------------
a          list    n=4
b          list    n=2
c          str     my_note
1
2
3
4
# 덧셈
a = [1,2,3]
b = [4,5,6]
print(a+b)
[1, 2, 3, 4, 5, 6]
1
2
# 곱셈 (반복)
print(a*3)
[1, 2, 3, 1, 2, 3, 1, 2, 3]
1
2
# 리스트 길이 구하기
len(a)
3
1
2
3
4
# 리스트 요소 수정 <-> 튜플 (Tuple) : 수정될 수 없다.
a = [1,2,3]
a[2] = 4
print(a)
[1, 2, 4]
1

1
2
## -->>  ### str(   ) 문자로 변경
str(a[2])+"hi"
'4hi'
1
int(3.6)
3
1
2
3
4
5
6
7
# 리스트 내의 리스트
a = [['apple','banana','cherry']]

print(a[0])
print(a[0][0]) # 0번 리스트 안의 0번 속성
print(a[0][1][3]) # 0번 리스트 안의 1번 속성의 3번 word
print(a[0][1])
['apple', 'banana', 'cherry']
apple
a
banana
1
2
3
4
5
6
7
8
9
# 리스트 요소 삭제 1
a = [1,2,3,4,5]
del a[2:] ##슬라이싱에서 끝 값을 비웠을 경우 리스트의 끝 값까지 선택된다.
print(a)

# 리스트 요소 삭제 2
a = [1,2,4,3,5]
a.remove(3) ## '.' 이후 Tab 키를 누르면 해당 변수에 사용 할 수 있는 명령어 list를 알려준다.
print(a)
[1, 2]
[1, 2, 4, 5]

a=[1,2,3,4,5] 라고 쓰면, a 변수는 번지수(이름표) / 실제 a 번지에 들어가 있는 내용물 : 객체(Object)

리스트 명령어

URL: List method

1
2
3
4
5
6
7
8
9
# 리스트 요소 추가 1 (append)
a =[1,2,3]
a.append(4)
print(a)

# 리스트 요소 추가 2 (insert)
a =[1,2,3]
a.insert(0,4) ## insert(A,B) A번 항목에 B 삽입
print(a)
[1, 2, 3, 4]
[4, 1, 2, 3]
1
2
3
4
5
6
7
8
# 리스트 오름차순 정렬 (sort)
a=[1,4,3,2]
a.sort()
print(a)

a=['a','c','b']
a.sort()
print(a)
[1, 2, 3, 4]
['a', 'b', 'c']
1
2
3
4
# 리스트 뒤집기 (reverse)
a=['a','c','b']
a.reverse()
print(a)
['b', 'c', 'a']
1
2
3
4
5
# 해당자료는 리스트에서 몇번째 자료인가? (index)
a=[1,2,3]
print(a.index(3))
z=[1,2,3,'haha']
(z.index('haha'))
2





3
1
2
3
4
5
6
# 리스트에서 끄집어내자: 팝: (pop) --- 구조적으로 변화시킨다
a=[1,2,3,4]
a.pop()
print(a)
print(a.pop())
print(a)
[1, 2, 3]
3
[1, 2]
1
2
a=[1,2,3,4]
a.pop(2)
3
1
2
3
# 지정된 값이 몇개인지 (count)
a=[1,2,3,1]
a.count(1)
2
1
2
3
4
# 확장 (extend)
a=[1,2,3]
a.extend([4,5,3])
print(a)
[1, 2, 3, 4, 5, 3]

python 자료형

파이썬의 자료형

1
int_data = 3 #정수형 자료(integer data)

float = 실수

1
float_data = 3.14 #실수형 자료(floating point data)
1
float_data2 = 3
1
float_data2 = 3.

string = 문자형

1
complex_data = 1+5j
1
str_data1 ='hello world'

list [ ] 변경 가능 / tuple ( ) 변경 불가 / dict {}

1
list_data = [1,2,3,4,5,6,7,8,9,10] #list data type
1
tuple_data = (1,2,3,4,5,6,7,8,9,10) #tuple data type
1
dict_data = {0:'toy',1:'book'} #dictionary data
1
whos
Variable       Type       Data/Info
-----------------------------------
complex_data   complex    (1+5j)
dict_data      dict       n=2
float_data     float      3.14
float_data2    float      3.0
int_data       int        3
list_data      list       n=10
str_data1      str        hello world
tuple_data     tuple      n=10
1
2
3
4
5
6
7
8
9
#정수형
a=123
a=-1123
a=0
#실수형
a=1.2
a=4.24E10 #4.12*10^10
a=4.24e10 #4.12*10^10
b=4.24e-10 #4.12*10^(-10)
1
whos
Variable       Type       Data/Info
-----------------------------------
a              float      42400000000.0
b              float      4.24e-10
complex_data   complex    (1+5j)
dict_data      dict       n=2
float_data     float      3.14
float_data2    float      3.0
int_data       int        3
list_data      list       n=10
str_data1      str        hello world
tuple_data     tuple      n=10
1
reset
Once deleted, variables cannot be recovered. Proceed (y/[n])? y
1
whos
Interactive namespace is empty.
1
2
3
4
a=3
b=4
print(a+b) #사칙연산 : +, -, *, /
print(7%3) # 제곱(^) : ** # 나머지 : %
7
1

문자열

1
2
a= "hello 'my' world"
b= 'hello "my" world' #동일한 따음표가 내부에 있으면 오류가 발생한다.
1
whos
Variable   Type    Data/Info
----------------------------
a          str     hello 'my' world
b          str     hello "my" world
1
2
3
4
5
6
7
a= """
P
""
'O'
""
"""
print(a)
P
""
'O'
""
1
2
3
4
a="my"
b="note"
c=a+"_"+b
print(c)
my_note
1
print((c+"/")*5)
my_note/my_note/my_note/my_note/my_note/
1
print(len(a)) # len = Lenth(길이)
2

파이썬 및 파이썬 개발 환경 다운로드(Anaconda, Pycharm)

아나콘다 설치

파이썬과 파이썬을 브라우저에서 사용할 수 있는 개발환경인 Jupyter Nootbook을 다운로드 할 수 있는 아나콘다를 우선 설치한다

아나콘다 path

아나콘다를 설치할 때 주의할 점은 각종 설치 파일과 연동을 위해 Path 설정 체크박스를 반드시 눌러주자.

아나콘다 finish

아나콘다 튜토리얼과 부팅 시 자동 실행은 반드시 필요한 요소는 아니므로 체크 해제를 권장한다.

파이참 설치

파이참은 파이썬 확장자 외에도 html 등 다양한 확장자를 관리할 수 있는 개발환경이다.

파이참 page
우선 오픈 소스 버전인 Community 버전으로 다운받도록 하자.

파이참 path
Pycharm 경로 등을 한 다음에 반드시 체크해야할 값이 파이참 패스 설정과 파이썬 확장자 연동 등을 진행해야 이상적인 개발환경이 될 것이다.

메모: https://github.com/hangack/Codding-base/blob/main/Python/20211027.md