반응형

if 자바는 {} 로 구분해주지만 파이썬에서는  : 로 구분해주고 들여쓰기를 이용함 이때 들여쓰기는 동일하게 들여써야함

형식은 다음과 같습니다

# if 조건이 1개의 경우
if 조건식:
	소스코드
    
    
# 2개 이상의 조건 처리시 
if 조건식:
	소스코드1
elif 조건식2:
	소스코드2
else:
	소스코드3

 

Ex 1)

 

1
2
3
4
5
6
7
8
9
10
    var = 10
    if var >=3:
        print('크다')
        print('참')
        if var >= 5:
            print('5보다도 크다')
    else:
        print('거짓')
    
    print('if문 밖')

 

 

변수 var에 값 10을 주고, 10이 3보다 크면 '크다' 와 '참' 을 출력해줍니다.

그리고 10이 5보다도 크다면 '5보다도 크다' 가 출력 됩니다.

이후 3보다 크다를 만족하지 않으면 바로 '거짓' 을 출력해줍니다.

 

출력 결과

 

 

Ex 2)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
jumsu = 80
if jumsu >= 90:
    print('우수')
elif jumsu >=70:
    print('보통')
else:
    print('미달')
    
if 90 <= jumsu <= 100:
    res ='a'
elif 70 <= jumsu < 90:
    res = 'b'
else:
    res = 'c'
    
    
print(res)

 

jumsu 변수에 80이라는 데이터 값을 주고 90점보다 크면 '우수' , 70점보다 크면 '보통' 그것도 아니라면 '미달을 출력합니다.

 

line 9 에서는 90 ~ 100 사이라면 'a' 를 70 ~ 90 사이라면 'b' 를 아니라면 'c' 를 출력해줍니다.

 

출력 결과

 

 

Ex 3)

 

1
2
3
4
5
6
names = ['일일일''이이이''삼삼삼']
if '일일일' in names:
    print('일일일 존재')
else:
    print('존재하지 않습니다.')
    
 
 

 

# names 안에 홍길동이 존재한다면 참 아니면 거짓 

 

출력 결과

 

 

Ex 4)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
= 'abc'
= 9 if a == 'def' else 11
print(b)
 
= 11
= 'abc' if a == 9 else 'def'
print(b)
 
print()
= 6
re = a * 2 if a > 5 else a + 2
print(re)
 
= 3
print((a + 2, a * 2)[a > 5])

 

출력 결과

 

 

반응형

'python' 카테고리의 다른 글

python - 반복문 (for)  (0) 2020.05.07
python - 반복문 (while)  (0) 2020.05.07
python - 정규 표현식  (0) 2020.05.07
python - 집합형 자료 ( Tuple , Set , Dict )  (0) 2020.05.07
python - 집합형 자료 ( String , List)  (0) 2020.05.07
반응형

정규표현식 설명에 앞서

예제들에 r' 과 re가 계속 나올 것이라 선정리 하겠습니다.

 

raw string 이란 ?

문자열 앞에 r' 을 사용하여 해당 문자열을 그대로 반환 시킵니다.

 

re 모듈이란 ?

정규 표현식을 지원하기 위한 모듈로써 import 해서 사용합니다.

 

 

바로 예제에서 주석과 함께 설명하겠습니다.

 

www.colorscripter.com/info#e"

반응형
반응형

# Tuple ( 리스트와 유사, 읽기 전용, 중복을 허용 )

# 빠른 속도를 요구할 때 사용하면 좋다.

 

Ex 1)

1
2
3
4
5
6
= ('a''b''c''a')
 
print(t)
 
print(t, ' ' , t.count('a'),'개 ' , t.index('b'))
print(t[0])

 

출력 결과

 

 

Tuple은 읽기 전용이라 수정하면 에러가 발생합니다 ! 수정을 하고 싶다면 리스트 형태로 주어야 합니다.

 

예시. t[0] = m을 하였을 경우

리스트로 담아서 넘길 경우

 

1
2
3
4
= list(t)
q[0= 'm'
= tuple(q) # q를 tuple로 지정하여 t 에 저장
print(t)

출력결과

 

 

Ex 2)

- 변수에 요소 값이 1개를 tuple로 받아주고 싶을 경우 요소 뒤에 , 를 찍어주어야 한다.

- 그렇지 않으면 int 로 받아들여 tuple이 아니게 된다.

 

1
2
3
4
5
kk = (1)
print(kk, type(kk)) 
 
kk2 = (1,)
print(kk, type(kk), kk2, type(kk2))

 

출력 결과

 

 

집합 자료형 SET ( 순서 없고 중복도 불가능하다. 중복되는 값을 스스로 스킵한다. )

 

Ex 1)

 

1
2
3
4
5
6
7
8
9
= {1,2,3,1}
print(a)
 
= {3,4}
print(a.union(b)) # 합집합
print(a.intersection(b)) # 교집합
print(a - b, a | b,  a & b) # 차집합 / 합집합 / 교집합
 
# print(a[0]) # 순서가 없기떄문에 인덱싱 불가능

 

출력 결과

 

 

Ex 2) update remove 기능 

- SET 함수는 순서가 없기 때문에 인덱싱은 불가능하다.

- SET 함수는 순서가 없기 때문에 전부 값에 의한 삭제로 이루어진다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
b.add(5)
print(b)
b.update({6,7})
b.update({8,9})
b.update({10,11}) 
print(b)
 
 
b.discard(7
b.remove(6)
b.discard(7)
 
print(b)

 

- update의 경우 차례대로 마지막에 삽입이 된다.

- discard와 remove는 삭제의 개념에서는 같으나, discard의 경우 제거 할 때 해당 값이 없으면 스킵되지만,

- remove의 경우는 오류를 출력한다.

 

출력 결과

 

 

 추가 - 변수명.clear() 를 할 경우 해당 변수의 데이터 값을 초기화 시켜준다.

 

Dict ( {key:value} 의 형태를 갖고 인덱싱은 불가능합니다, key에 의해 값을 찾기 때문에 위치는 중요하지 않다. )

 

Ex 1) dict 는 다음과 같이 출력가능합니다.

 

1
2
3
4
5
mydic = dict(k1=1, k2='abc', k3=1.2)
print(mydic) 
dic = {'파이썬':'공부''자바':'열심히''스프링':'웹'}
print(dic, ' ' )
print(dic['자바'])

 

출력 결과

 

 

Ex 2) insert / delete / update 기능

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# insert 기능
dic['오라클'= '예언자'
print(dic)
 
# delete 기능
del dic['오라클']
print(dic)
 
# update 기능
dic['자바'= 'programing lan'
print(dic)
 
print(dic['자바'])
print(dic.keys()) # key 값만 출력
print(dic.values()) # values 값만 출력
 
print(dic.get('자바'))

 

출력 결과

 

반응형

'python' 카테고리의 다른 글

python - 제어문 ( if )  (0) 2020.05.07
python - 정규 표현식  (0) 2020.05.07
python - 집합형 자료 ( String , List)  (0) 2020.05.07
python - 이클립스에서 사용 & 기본 문법  (0) 2020.05.06
python - 특징 & 설치  (0) 2020.05.06
반응형

# String, List 에 대하여

 

# String : 문자열 취급 ( 순서형 )

 

1
2
3
4
5
6
7
8
9
10
11
12
13
= 'sequence'
 
# s문자열의 길이는?
print(len(s))
 
# e의 개수는?
print(s.count('e')) 
 
# 처음 e는 어디에? 3번째 이후 e는 어디에? 뒤에서부터 e는 어디에?
print(s.find('e'), ' ' , s.find('e'3), s.rfind('e')) 
 
# s 문자열에 s로 시작하면 TRUE 아니면 False
print(s.startswith('s')) 
 

변수.count('값') : 변수에서 원하는 데이터의 개수를 출력

변수.find('값') : 해당 변수에서 원하는 값이 저장된 첫 위치 출력

변수.find('값','위치') : '위치' 이후에 원하는 값이 저장된 장소 출력

변수.rfind('값') : 변수의 뒤에서부터 처음 출력되는 장소 출력

변수.startswith('값') : '값'으로 시작하면 TRUE 아니면 FALSE

 

출력 결과

 

 

Ex 2) 파이썬도 자바처럼 가비지 컬렉터가 존재하므로, 변수에 '기존 값'에서 '새로운 값'을 넣으면 덮어쓰기가 됩니다.

1
2
3
4
5
ss = 'abc'
print('abc', id(ss))
 
ss = 'def'
print('def', id(ss))

id(변수명) : '변수명'의 메모리 주소를 출력합니다.

 

출력 결과

 

 

Ex 3) # 슬라이싱 기법을 이용하면 데이터 값을 부분적으로 잘라서 볼 수 있다.

 

 
1
2
3
= 'sequence'
print(s[0], ' ' , s[2:4], ' ' , s[:3], ' ', s[3:])
print(s[-1], ' ' , s[-4:-1], ' ' , s[-4:], ' ' , s[::2])

 

변수['위치'] : '위치'번째 값 출력

변수['위치1':'위치2'] : '위치1'에서 '위치2'번째 출력

변수[ : '위치1'] : '위치1' 전까지 출력

변수[ '위치1' : ] : '위치1' 부터 전부 출력

변수[ ::'숫자' ] : 2개씩 끊어서 출력한다.

 

 - 가 붙는 경우는 반대로 생각해주면 된다 !

 

출력 결과

 

 

Ex4 ) # 문자열 데이터는 수정이 불가능합니다.

 

1
s[0= 'k'

 

Ex 5)

- split 함수는 공백 또는 특정 기준으로 나눌때 사용합니다.

- 문자열 타입의 list가 있으면 각 요소들을 하나의 문자열로 만들때 사용합니다.

1
2
3
4
ss = 'abc def'
ss2 = ss.split(sep=' ' )
print(ss2)
print(','.join(ss2))

 

출력 결과

 

 

# List 배열과 유사, 순서가 존재, 변경 가능, 여러 종류의 자료를 허용

 

Ex 1) 여러 종류의 자료를 허용합니다.

 

1
2
3
4
5
= [1,2,3]
=[10, a, 12.3, True, 'abc' ]
 
print(a, ' ', id(a))
print(b, ' ' , id(b))

 

출력 결과

 

Ex 2) 검색 , 업데이트 , 삭제하는 방법

1
2
3
4
5
6
7
8
9
10
= [1,2,3]
=[10, a, 12.3, True, 'abc' ]
 
print(b[0], ' ' , b[1], ' ' , b[1][:2]) 
b[0= 'def'
print(b[0]) 
b.remove('abc')
print(b)
del b[3]
print(b)
 

변수['숫자'] : 해당 위치의 자료 출력 

변수명.remove : 변수 안에 있는 데이터를 삭제

del 변수명 : 위와 동일하나 차이점이 있다면 del은 위치에 의한 삭제를 진행한다.

 

출력 결과

 

 

Ex 3) family 변수 사용

 

1
2
3
4
5
6
7
family = ['엄마''아빠''나']
family.append('동생'# 마지막 순서에 추가
family.remove('나'# 제거
family.insert(0'할아버지'# 원하는 순서에 맞춰서 삽입 가능
family.extend(['삼촌','고모','이모'])
family += ['아주머니''아저씨']
print(family, len(family), family[0]) # famly 변수 데이터 출력 / 길이 출력 / 0번째 출력

 

출력 결과 

 

 

Ex 4)

- 주소를 참조하기 때문에 값들을 서로 공유

- copy 함수를 import 후 deepcopy 사용하여 객체를 새로 생성 후 새로운 주소를 기억시키면 다른 값 출력

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
num = ['일','이','삼']
num2 = num
print(num)
print(num2)
 
num[0= '사'
num2[1= '오'
print(num, '  ', num2)
 
import copy
num3 = copy.deepcopy(num) # 새로운 객체 생성 후 새로운 주소를 기억
print(num, ' ',num3)
num[0= '십'
print(num, ' ' , num3)

 

출력 결과

 

 

Ex 5) stack과 queue

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= [1,2,3]
a.append(4# 맨뒤에 4를 추가
print(a)
a.pop() # 맨 마지막에 삽입된 값은 뺌 stack과 유사
print(a)
a.pop()
print(a)
 
 
 
= [1,2,3]
b.append(4# 맨뒤에 4를 추가
print(b)
b.pop(0# 맨 마지막에 삽입된 값은 뺌 stack과 유사
print(b) # FIFO 동작과 동일함
b.pop(0)
print(b)

 

출력 결과

 

 

반응형

'python' 카테고리의 다른 글

python - 제어문 ( if )  (0) 2020.05.07
python - 정규 표현식  (0) 2020.05.07
python - 집합형 자료 ( Tuple , Set , Dict )  (0) 2020.05.07
python - 이클립스에서 사용 & 기본 문법  (0) 2020.05.06
python - 특징 & 설치  (0) 2020.05.06
반응형

파이썬에서 주석처리하는 방법 ?

 

한 줄의 경우 ' # ' 으로 처리해줍니다.

여러줄의 주석 처리가 필요한 경우 시작 위치에 ''' 을 찍어주고 끝맺음을 하려는 위치에 '''으로 처리해줍니다.

 

1
2
3
4
5
'''
여러줄 주석 처리 방 법
'''
 
# 한 줄 주 석

 

이클립스에서 파이썬 사용 특징

 

# 자바는 클래스명과 파일명이 같아야하는 반면 파이썬으로 사용할땐 .py 로 확장자를 주면 된다.

 

# 하지만 주피터 소스를 이클립스에서는 실행 불가능함 왜냐하면 주피터는 웹 안에서 돌기 때문이다.

 

# 파이썬은 자바와 다르게 참조형만 존재하기 떄문에 들어오는 타입에 의해 결정 되고,

 

# 자바처럼 변수를 별도로 선언하지 않습니다.

 

ex 1)

 

1
2
3
4
5
6
7
var1 = '안녕'
print(var1)
var1 = 5
print(var1);
 
var1 = '변수 선언시 type은 저장되는 자료에 의해 결정된다.'
print(var1)

 

출력 결과

 

 

ex 2) # a와 10의 주소 동일하고 b와 20.1의 주소가 같고 c는 b를 치환받아서 주소가 같다.

1
2
3
4
5
6
= 10
= 20.1
= b
print(a, b, c)
 
print('주소 출력 : ', id(a), id(10), id(b), id(20.1), id(c))

 

출력 결과

 

 

ex 3) # is 는 주소를 비교하고 == 는 들어있는 데이터를 비교한다.

1
2
print(a is b, a == b) 
print(b is c, b == c) 

 

출력 결과

 

 

ex 4)  # 변수 사용시 대소문자 구분함

1
2
= 1; a = 2
print(A, ' ', a)

 

출력 결과

 

 

ex 5)

# 기본모듈 외에는 keyword 해주어야함
# keyword의 목록 출력 해당 예약어는 변수명으로 사용이 불가능함

 

ㅇㅇ1
2
import keyword
print('예약어 : 'keyword.kwlist)

 

출력 결과

 

ex 6) # 10진법을 -> 8 , 16 , 2 진법으로 변환해보고 그것을 다시 반대로

 

1
2
print(10, oct(10), hex(10), bin(10)) 
print(100o120xa0b1010)

 

출력 결과

 

 

ex 7) # 해당 하는 데이터 값의 타입을 출력

 

1
2
3
4
5
6
7
8
9
10
11
12
print('자료형')
print(7, type(7))
print(7.1, type(7.1))
print(7 + 3j, type(7))
print(7 + 3j, type(7 + 3j))
print(True, type(True)) print('kbs', type('kbs'))
 
print((1,) , type((1,))
print([1], type([1]))
print({1}, type({1}))
print({'k':1}, type({'k':1}))

 

출력 결과

 

 

ex 8) # int형이 맞으면 TRUE 아니면 FALSE

 

1
2
3
a=1
print(isinstance(a, int))
print(isinstance(a, float))

 

출력 결과

 

 

ex 9) # 연산자

 

1
2
3
4
5
6
7
8
9
10
11
v1 = 2
v1 = v2 = v3 = 5 # 5로 덮어 써서 5, 5, 5가 출력된다.
print(v1, v2, v3)
v1 = 1,2,3
print(v1) # v1이 tuple 타입으로 1,2,3이 들어가므로 집합형 자료가 된다.
v2, v3 = 1020
print(v2, v3)
 
v1, v2 = 1020
v2, v1 = v1, v2
print(v1, v2)
 

 

출력 결과

 

 

ex 10) # packing

# 2번째 라인 1,2,3,4,5를 v1 과 v2에 주려고 한다. 이때 여기서 v2에 5가 주어지고 나머지는 v1에 1,2,3,4가 주어진다.

# 6번째 라인 1,2,3,4,5는 v1에 1,2,3이 주어지고 v2에는 4 v3에는 5가 주어진다.

1
2
3
4
5
6
7
8
9
#v1, *v2 = [1,2,3,4,5] # v1는 1만 갖고 v2가 집합형으로 나머지를 가짐
*v1, v2 = [1,2,3,4,5# 위와 반대로 실행
print(v1)
print(v2)
 
*v1, v2, v3 = 1,2,3,4,5
print(v1)
print(v2)
print(v3)
 

 

출력 결과

 

 

ex 11) # 각각의 연산자 처리

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
print(5 + 35 - 35 * 3)
print(5 / 35 // 35 % 35 ** 3# 나눈값, 몫, 나머지, 5의 3승
print(divmod(5,3)) # 몫, 나머지 순으로 출력
print()
print(3 + 4 * 5, (3 + 4* 5)
 
print('관계연산', end=' ')
 
print5 > 3 , 5== 35 != 3# 5가 3보다 커서 true, 5랑 3은 다르므로 fasle, 5랑 3은 다르므로 true
 
print('논리 연산 ', end='===>')
print(5 > 3 and 4 <= 3# 맞지 않으므로 false
 
print('문자열 더하기 : ', end=' ' )
print('한' + '국' + '만세')
print('한국' * 10) # 한국을 10번 출력
 
print('누적')
= 10
= a + 1 # ++ -- X 증감연산자에서 불가능
print(a)
print( a*-1,-a,--a)
 

 

출력 결과

 

 

ex 12) 

 

1
2
3
4
5
6
7
8
print('bool 처리 : ',bool(0), bool(1), bool(True), bool(False)) # 0이면 false 1이면 true
print('bool 처리  :', bool(100), bool(-10), bool(None),bool(''), bool([]), bool({}))
 
print()
print('kbs\tbs')
print(r'kbs\nbc')
print(r'kbs\tbc')
print(r'kbs\mbc')
 

 

출력 결과

 

반응형

'python' 카테고리의 다른 글

python - 제어문 ( if )  (0) 2020.05.07
python - 정규 표현식  (0) 2020.05.07
python - 집합형 자료 ( Tuple , Set , Dict )  (0) 2020.05.07
python - 집합형 자료 ( String , List)  (0) 2020.05.07
python - 특징 & 설치  (0) 2020.05.06
반응형

파이썬을 어디에 사용하면 좋을까 ?

 

- 시스템 유틸리티

  시스템 명령어를 사용할 수 있는 각종 도구를 갖추고 있기 때문에 이를 바탕으로 갖가지 시스템 유틸리티를 만들 수 있다.

 

- GUI 

  화면에 또 다른 윈도우 창을 만들고 그 창에 프로그램을 동작시킬 수 있는 메뉴나 버튼, 그림 등을 추가하는 것

 

- Network & internet

 

  

- Database 연동

  사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근하기 위한 도구를 제공

 

- 텍스트 처리

 

  

- 빅데이터 처리

 

* 파이썬으로 모바일 프로그래밍에는 아직 적용하지 못함 *

 

 

파이썬 설치

https://www.python.org/downloads/

 

 

Download Python

The official home of the Python Programming Language

www.python.org

에 접속해줍니다.

 

 

다운로드에 가서 자신이 사용할 버전을 다운로드해줍니다.

 

 

 

 

아나콘다 설치

 

anaconda 설치 후 가상환경을 만든 다음 jupyter lab 실행 

가상환경파이썬 사용자와 응용 프로그램이 같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않으면서, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하도록하는 실행 환경을 말한다.

 

 

conda 명령으로 가상환경을 위한 test 폴더를 만들기 

참고 : 경우에 따라 window10 버전에서는 Anaconda prompt 에서 진행하도록 한다.

C:\~~> conda create --name test                   <= python 만 있는 최소한의 환경을 만들 때

C:\~~> conda create --name test python=3.7     <= python 버전을 지정하고 환경을 만들 때

C:\~~conda create --name test anaconda      <= anaconda 환경으로 만들 때

C:\~~> conda create --name test python=3.7 anaconda    <= 파이썬 버전을 지정하고 아나콘다 환경을 만들고 싶을

 

가상환경 실행

C:\~~> activate test

리눅스에서는  $ source activate test

 

(test) C:\~~> conda list     # 가상환경 목록 확인

 

jupyter lab 실행하기

(test) C:\~~> jupyter lab

 

가상환경 빠져나오기

(test) C:\~~> conda deactivate

리눅스에서는  source deactivate

 

source file을 저장할 폴더는 적당한 곳?에 만들어 둔다.

 

가상환경 삭제 : root 계정으로 삭제 권장

((test) C:\~~> activate root

(base) C:\~~> conda remove --name test --all

 

참고 : jupyter notebook 실행하기

(test) C:\~~> jupyter notebook

 

 

이클립스에서 파이썬 환경 실행하기

 

이클립스를 실행해서 파이썬 프로젝트를 작업할 폴더로 설정해주고 HTML과 CSS 등 관련 된 것들을 UTF-8로 설정해줍니다.

 

 

 

 

참조한 사이트 :

 

https://cafe.daum.net/flowlife 

 

https://wikidocs.net/7

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

반응형

+ Recent posts