1. 변수
2. 연산자
3. 집합형 자료
4. 정규 표현식
5. 조건 판단문 if문
6. 반복문 while
7. 반복문 for
1. 변수 : 기본형 X, 참조형 O
id(a) : 주소확인 함수
is : 주소 비교, == : 값 비교
a=1
b=1.2
c=b
print(a,b,c)
print(id(a), id(1), id(b), id(c)) # id(a) : 주소확인 함수,
# 140710866855712 140710866855712 2553731934640 2553731934640
print(a is b, a==b) # is : 주소 비교, == : 값 비교
#False False
print(b is c, b==c)
#True True
- 주석
#한줄 주석
"""
여러줄 주석
"""
'''
여러줄 주석
'''
- 출력
print('hello')
var1 = 'hi'
var1 = 10
print(var1)
대소문자 구분
A = 1;
a = 2;
print(A, a, A==a) # 1 2 False
변수명으로 키워드 사용 불가
for = 5 # error
import : 외부모듈 읽기 - 설치된 모듈 로딩
import keyword
# keyword.kwlist : 키워드 리스트 출력
print(keyword.kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue',
#'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import',
#'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
oct(a) : 8진수, hex(a) : 16진수, bin(a) : 2진수
print(10, oct(10), hex(10), bin(10)) # 10 0o12 0xa 0b1010
print(10,0o12, 0xa, 0b1010) # 10 10 10 10
type(a) : type 확인
print(3, type(3)) # int
print(3.4, type(3.4)) # float
print(3+4j, type(3+4j)) # complex
print(True, type(True)) # bool
print('aa', type('aa')) # str
print("abc", type("abc")) # str
isinstance(a, b) : 객체 type 확인 함수
print(isinstance(1, int)) # True
print(isinstance(1.2, int)) # False
집합형 자료형
print((1), type((1))) # int. 집합형 자료형X
print((1,), type((1,))) # tuple
print([1], type([1])) # list
print({1}, type({1})) # set
print({'k':1}, type({'k':1})) # dict
2. 연산자
print(a, end=' ')
v1 = 123
v3 = v2 = v1 # 치환
print(v1, v2, v3) # 123 123 123
print('입니다') # 자동 줄바꿈
print(v1, v2, v3, end='---') # 자동 줄바꿈X
print('입니다') # 123 123 123---입니다
v4 = 1,2,3
print(v4, type(v4)) # (1, 2, 3) <class 'tuple'>
print(v4, \
type(v4)) # \ : 명령이 이어짐.
swap
v1, v2 = 100, 200
print(v1, v2) # 100 200
v2, v1 = v1, v2
print(v1, v2) # 200 100
packing - 값할당 연산
v1, v2 = [1, 2, 3, 4, 5] # 불가
v1, *v2 = [1, 2, 3, 4, 5]
print(v1, v2)
*v1, v2 = [1, 2, 3, 4, 5]
print(v1, v2)
*v1, v2, v3 = [1, 2, 3, 4, 5]
*v1, *v2, v3 = [1, 2, 3, 4, 5] # 불가
print(v1, v2, v3)
산술, 관계, 논리
print(5 + 3, 5 - 3, 5 * 3, 5 / 3)
// : 몫 , % : 나머지, divmod() : 몫/나머지
print(5 / 3, 5 // 3, 5 % 3, divmod(5, 3)) # 1.6666666666666667 1 2 (1, 2)
( ) > 산술(*,/ > +,-) > 관계 > 논리> 치환
print(3 + 4 * 5, (3 + 4) * 5) # 23 35.
관계 연산자
print(5 > 3, 5 == 3, 5 != 3, 5 <= 5)
논리 연산자 and, or, not(a)
print(5 > 3 and 4 <=3, 5 > 3 or 4 < 3 , not(5 >= 3))
print('강남' + '거리' + 2021) # TypeError
str(a) : 문자로 형변환, int(a) : 숫자로 현변환
print('강남' + '거리' + str(2021) + ' ' + '2000' + '21' + str(int('2000') + int('21')))
문자열 연산
print('답' * 10)
print('----------' * 10)
a = 5
a = a + 1
a += 1 # a++, ++a, a--, --a 증감연산자 사용 불가.
print('a : ' + str(a))
부호 변경
print(a, a * -1, -a, --a, +a, ++a) # 7 -7 -7 7 7 7
False
print('boolean : ', bool(False), bool(0), bool(0.0), bool(''), bool(None), bool([]), bool({}), bool(set()))
True
print('boolean : ', bool(True), bool(1), bool(-12), bool(1.5), bool('aa')) # True True True True True
이스케이프 문자 : \n, \b, \t ...
print('aa\tbb')
print('aa\nbb')
print('c:\aa\nbc\cc.txt')
print(r'c:\aa\nbc\cc.txt') # r'' : 이스케이프 문자로 해석하지않음.
format()
print(format(1.5678, '10.3f'))
print('나는 나이가 %d 이다.'%23)
print('나는 나이가 %s 이다.'%'스물셋')
print('나는 나이가 %d 이고 이름은 %s이다.'%(23, '홍길동'))
print('나는 나이가 %s 이고 이름은 %s이다.'%(23, '홍길동'))
print('나는 키가 %f이고, 에너지가 %d%%.'%(177.7, 100))
print('이름은 {0}, 나이는 {1}'.format('한국인', 33))
print('이름은 {}, 나이는 {}'.format('신선해', 33))
print('이름은 {1}, 나이는 {0}'.format(34, '강나루'))
3. 집합형 자료
- 문자열 자료형 - 순서 존재, 수정 불가X
len(a) : a의 길이
s1.count('a') : s1에서 a 개수
s = 'sequence' # "sequence" 동일. """sequence""""
print(s)
print(len(s), s.count('e')) # 8 3
- 문자열 관련 함수
s1.find('a') : s1에서 앞에서 부터 가장 앞의 a의 index
s1.find('a', 3) : s1에서 앞에서 부터 3번째 a의 index
s1.rfind('a') : s1에서 뒤에서 부터 a의 index
print(s.find('e'), s.find('e', 3), s.rfind('e')) # 1 4 7
ss = 'kbs'
print(ss, id(ss)) # 1847323654896
ss = 'sbs' # 변수의 값이 변경되는 것이 아닌, 새로운 객체 생성.
print(ss, id(ss)) # 1847326686384
- 슬라이싱 : 집합형 자료의 일부 요소만 참조
s[1:6:2] : 1번부터 5번까지 2간격 문자
print(s, s[0], s[2:4], s[3:]) # sequence s qu uence
print(s[-1], s[-4:-1], s[1:6:2]) # e enc eun
s[0] = 'k' # TypeError: 'str' object does not support item assignment
s.split(sep=' ') : 구분자를 기준으로 나눠 리스트로 리턴
ss2 = 'kbs mbc'
ss3 = ss2.split(sep=' ') # ['kbs', 'mbc']
s1.join(s2) : s2의 리스트 사이에 s1을 넣어 결합하여 리턴
print(":".join(ss3)) # kbs:mbc
s1.replace(s2, s3) : s1에서 s2를 s3로 변경하여 리턴
a = 'life is too short'
b = a.replace("life", "java") # java is too short
- list 타입 : 순서 O, 변경O, 여러종류의 값을 기억, [요소1, 요소2, ...], 배열과 유사
family = ['mother', 'father', 'me', 123, 12.345]
print(type(family)) # list
str1.append(str2) : str1에 str2 추가
str1.insert(a, str2) : str1의 a번째에 str2 삽입
str1.remove(str2) : str1에서 str2 제거
str1.index(str2) : str1에 str2 index
str1[0] = str2 : str1의 0번째 index값 str2로 변경
family.append(['삼촌', '고모']) # ['mother', 'father', 'me', 123, 12.345, ['삼촌', '고모']]
family.append('이모') # ['mother', 'father', 'me', 123, 12.345, ['삼촌', '고모'], '이모']
family.insert(0, '할머니') # ['할머니', 'mother', 'father', 'me', 123, 12.345, ['삼촌', '고모'], '이모']
family += ['아저씨']
# ['할머니', 'mother', 'father', 'me', 123, 12.345, ['삼촌', '고모'], '이모', '아저씨']
family.remove('이모')
print(family, len(family), family.index('father'))
# ['할머니', 'mother', 'father', 'me', 123, 12.345, ['삼촌', '고모'], '아저씨'] 8 2
print(family[0], family[1:4]) # 할머니 ['mother', 'father', 'me']
print(family[6], family[6][1]) # ['삼촌', '고모'] 고모
family[0] = '할아버지' # ['할아버지', 'mother', 'father', 'me', 123, 12.345, ['삼촌', '고모'], '아저씨']
- Tuple 타입 : 순서 O, 변경X, 읽기 전용, (요소1, 요소2, ...), 속도가 빠름, 리스트와 유사
t =('a', 'b', 'c', 'd', 'a')
t ='a', 'b', 'c', 'd', 'a'
print(t, type(t), len(t), t.count('a'))
# ('a', 'b', 'c', 'd', 'a') <class 'tuple'> 5 2
print(t[1], t[2:5])
# b ('c', 'd', 'a')
t[1] = 'k' # TypeError: 'tuple' object does not support item assignment
list(a) : list타입으로 변경
tuple(a) : tuple타입으로 변경
temp = list(t) # 형변환 후 값 변경 가능.
print(temp)
temp[1] = 'k'
t = tuple(temp)
print(t, type(t))
# ('a', 'k', 'c', 'd', 'a') <class 'tuple'>
swap
t1 = (10,)
t1 = (10,20)
a, b = t1
b, a = a, b
t2 = a, b
print(t2)
# (20, 10)
- Set 타입 : 순서X, 변경 X, 중복X, {요소1, 요소2, ...}
a.union(b) : 합집합( | )
a.intersection(b) : 교집합( & )
a.update({6, 7}) : a에 합집합하여 a에 반영
a.discard(b) : a에서 b 제거(없어도 정상진행)
a.remove(b) : a에서 b 제거(a에서 b 없으면 error)
a.clear() : a 집합 비움
a = {1, 2, 3, 1}
print(a, type(a), len(a))
#print(a[0]) # TypeError: 'set' object is not subscriptable
b = {3, 4}
print(a.union(b), a.intersection(b)) # {1, 2, 3, 4} {3}
print(a | b, a & b, a - b) # {1, 2, 3, 4} {3} {1, 2}
b.update({6, 7})
# {3, 4, 6, 7}
b.update([8, 9])
# {3, 4, 6, 7, 8, 9}
b.discard(b)
b.remove(7) # 없으면 Error
b.clear() # set()
중복제거
set(a) : set타입으로 변경
li =[1,2,3,3,4,5,5,5,3,2,1]
print(li)
temp = set(li)
li = list(temp) # [1, 2, 3, 4, 5]
- Dict 타입 : 순서X, {key1 : value1, key2 : value2, ... }
dic['key'] = 'value'
del dic['key']
dic.keys()
dic.get('key)
mydic = dict(k1=1, k2='kbs', k3=1.23)
print(mydic, type(mydic)) # {'k1': 1, 'k2': 'kbs', 'k3': 1.23} <class 'dict'>
dic = {'파이썬':'뱀', '자바':'커피', '스프링':'봄'}
print(dic, type(dic)) # {'k1': 1, 'k2': 'kbs', 'k3': 1.23} <class 'dict'>
print(dic['자바']) # 키로 값을 참조
print(dic['커피']) # 값으로 참조 불가
dic['겨울'] = '눈' # 값 추가
# {'파이썬': '뱀', '자바': '커피', '스프링': '봄', '겨울': '눈'}
del dic['겨울'] # 값 제거
# {'파이썬': '뱀', '자바': '커피', '스프링': '봄'}
dic.clear()
# {}
dic = {'파이썬':'뱀', '자바':'커피', '스프링':'봄'}
print(dic.keys()) # dict_keys(['파이썬', '자바', '스프링'])
print(dic['자바']) # 커피
print(dic.get('자바')) # 커피
4. 정규 표현식
: 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어
* test4
import re
from re import IGNORECASE
ss = '1234 abc가나다ABC_555_6_789_555kbs가나 다라 가나 정규 표현식 특정한 규칙'
print(ss)
print(re.findall(r'123', ss)) # ['123']
print(re.findall(r'가나', ss)) # ['가나', '가나', '가나']
print(re.findall(r'[0,1,3]', ss)) # ['1', '3']
print(re.findall(r'[0,1,5]', ss)) # ['1', '5', '5', '5', '5', '5', '5']
print(re.findall(r'[0-9]', ss)) # ['1', '2', '3', '4', '5', '5', '5', '6', '7', '8', '9', '5', '5', '5']
print(re.findall(r'[0-9]+', ss)) # ['1234', '555', '6', '789', '555']
print(re.findall(r'[0-9]?', ss)) # ['1', '2', '3', '4', '', '', '', '', '', '', '', '', '', '', '', '5', '5', '5', '', '6', '', '7', '8', '9', '', '5', '5', '5', '', '', '', '', '', '', '', '', '', '', '', '']
print(re.findall(r'[a-z, A-Z]+', ss)) # [' abc', 'ABC', 'kbs', ' ', ' ', ' ', ' ']
print(re.findall(r'[가-힣]+', ss)) # ['가나다', '가나', '다라', '가나', '정규', '표현식']
print(re.findall(r'[가-힣]{2}', ss)) # ['가나', '가나', '다라', '가나', '정규', '표현']
print(re.findall(r'[가-힣]{2,3}', ss)) # ['가나다', '가나', '다라', '가나', '정규', '표현식', '특정한', '규칙']
print(re.findall(r'[^0-9]+', ss))
print(re.findall(r'^1', ss)) # 첫글자가 1
print(re.findall(r'^2', ss))
print(re.findall(r'칙$', ss)) # 마지막 글자가 칙
print(re.findall(r'\d', ss)) # 숫자
print(re.findall(r'\d{2}', ss))
print(re.findall(r'\d{2,3}', ss))
5. 조건 판단문 if문
* test5_if
- if
var = 4
if var >=3:
print('큼')
- if else
if var >=3:
print('큼')
else:
print('거짓')
- 다중 if
money = 1000
age = 22
if money >= 500:
item = '사과'
if age <= 30:
msg = 'yong'
else:
msg = 'old'
else:
item = '한라봉'
if age <= 20:
msg = 'YB 한라봉'
else:
msg = 'OB 한라봉'
print(item, msg)
- elif
score = 85
if score >= 90:
print('우수')
else:
if score >= 70:
print('일반')
else:
print('노력')
if score >= 90:
print('우수')
elif score >= 70:
print('일반')
else:
print('노력')
- input
score = int(input('점수입력:'))
if 90 <= score <= 100:
print('우수')
elif 70 <= score <90:
print('일반')
else:
print('노력')
- if in
if a in str:
str에 a가 있을경우 실행
name = ['홍길동', '김길동', '이길동']
if '홍길동2' in name:
print('freind')
else:
print('dont know')
- 한줄 if else
(참일때 출력문) if (조건) else (거짓일때 출력문)
a = 'kbs'
b = 9 if a == 'kbs' else 11
print(b)
a = 11
b = 'mbc' if a == 9 else 'kbs'
print(b)
(참일때 출력문, 거짓일때 출력문) [조건]
a = 3
result = 0
if a > 5:
result = a * 2
else :
result = a + 2
print(result) # 5
result = a * 2 if a > 5 else a + 2
print(result) # 5
print((a + 2, a* 2)[a > 5]) # 5
print(int(True), int(False)) # 1 0
6. 반복문 while
* test5_while
a = 1
while a <= 5:
print(a, end = ' ')
a += 1
# 1 2 3 4 5
print('\na: ', a) # a: 6
i = 1
while i <= 3:
j = 1
while j <= 4:
print('i:'+str(i)+'/j:'+ str(j))
j = j + 1
print('-----')
i += 1
# i:1/j:1
# i:1/j:2
# i:1/j:3
# i:1/j:4
# -----
# i:2/j:1
# i:2/j:2
# i:2/j:3
# i:2/j:4
# -----
# i:3/j:1
# i:3/j:2
# i:3/j:3
# i:3/j:4
- 1 ~100 사이의 3의 배수의 합
i = 1; sum = 0;
while i <= 100:
if i % 3 == 0:
sum += i
i += 1
print('합은 '+str(sum)) # 합은 1683
str1.pop() : str1에서 가장 마지막 값 방출
colors = ['r', 'g', 'b']
print(colors)
print(colors[1])
a = 0
while a < len(colors):
print(colors[a], end = ' ') # r g b
a += 1
while colors:
print(colors.pop(), end = ' ') # b g r. LIFO
- 별찍기
i = 0
while i <= 10:
j = 1
re = ' '
while j <= i:
re = re + '*'
j = j + 1
print(re)
i = i + 1
# *
# **
# ***
# ****
# *****
# ******
# *******
# ********
# *********
# **********
i = 0
while i <= 10:
j = 1
re = ' '
while j <= i:
re = re + ' '
j = j + 1
k = 1
while k <= 11 - j:
re = re + '*'
k = k + 1
print(re)
i = i + 1
# **********
# *********
# ********
# *******
# ******
# *****
# ****
# ***
# **
# *
- if 블럭 내에 while 블럭 사용
import time
time.sleep(1) : sleep
import time
sw = input('폭탄 스위치를 누를까요?[y/n]')
if sw == 'Y' or sw == 'y':
count = 5
while 1 <= count:
print('%d 초 남음'%count)
time.sleep(1)
count -= 1
print('boom!')
elif sw == 'N' or sw == 'n':
print('작업취소')
else:
print('y 또는 n을 누르시오')
* test5_while2
- continue, break
a = 0
while a < 10:
a += 1
if a == 5:continue
if a == 7:break
print(a, end=' ')
else: # phython만 존재
print('while 정상 수행') # while문 정상 완료 후 1회 수행. break 실행시 출력되지않음
# 1 2 3 4 6
print('while 수행 후 %d'%a) # while 수행 후 7
- 홀수, 짝수 확인
while True:
a = int(input('숫자입력:'))
if a == 0:
print('while문을 빠져나갑니다.')
break
elif a % 2 == 0: # 짝수
print('%d는 짝수'%a)
elif a % 2 == 1: # 홀수
print('%d는 홀수'%a)
7. 반복문 for
* test6_for
for i in [1, 2, 3, 4, 5]: # list :
print(i, end = ' ')
# 1 2 3 4 5
print()
for i in (1, 2, 3, 4, 5): # tuple
print(i, end = ' ')
# 1 2 3 4 5
print()
for i in {1, 2, 3, 4, 5, 5, 5}: # set
print(i, end = ' ')
# 1 2 3 4 5
str.items() : tuple로 key, value 리턴
sort = {'java':'웹용', 'python':'만능언어','java script':'컨텐츠 제작용'}
for i in sort.items(): # str.items() : tuple로 리턴
print(i)
print(i[0] + '- '+i[1])
# ('java', '웹용')
# java- 웹용
# ...
for k, v in sort.items():
print(k)
print(v)
# java
# 웹용
# python
# 만능언어
# java script
# 컨텐츠 제작용
- str.values() : value값 리턴
for k in sort.values():
print(k, end = ' ')
# 웹용 만능언어 컨텐츠 제작용
- 2, 3단 출력
for n in [2 ,3]:
print('--{}단--'.format(n))
for su in [1,2,3,4,5,6,7,8,9]:
print('{0} * {1} = {2}'.format(n, su, n*su), end = '\t')
print()
enumerate(a) : index와 요소값 리턴
li = ['a', 'b', 'c']
li = ('a', 'b', 'c')
li = {'a', 'b', 'c'} # 순서 없음. 무작위
for ind, data in enumerate(li):
print(ind, data)
# 0 a
# 1 b
# 2 c
- continue, break
datas = [1,2,3,4,5]
for i in datas:
if i == 3:
continue
if i == 5:
break
print(i, end = ' ')
else:
print('정상 처리') # break 실행시 출력되지않음
- for문 내부에 if문 사용
score = [95,70,60,50,100]
num = 0
for j in score:
num += 1
if j < 70: continue
print('%d번째 점수는 합격'%num)
# 1번째 점수는 합격
# 2번째 점수는 합격
# 5번째 점수는 합격
- 이중 for문
li1 = [3,4,5]
li2 = [0.5,1,2]
for a in li1:
for b in li2:
print(a + b, end = ' ') # 3.5 4 5 4.5 5 6 5.5 6 7
[실행문 for 변수1 in list1 for 변수2 in list2] : list1의 첫번째 요소와 list2의 첫번째 요소 실행문 실행 -> list1의 두번째 요소와 list2의 첫번째 요소 실행문 실행 -> ...
print([a + b for a in li1 for b in li2])
datas = [a + b for a in li1 for b in li2]
for d in datas:
print(d, end = ' ') # 3.5 4 5 4.5 5 6 5.5 6 7
- 정규 표현식
re.sub(r"[^가-힣\s]", "", ss) : ss에서 패턴과 일치는 값을 ""로 대체
import re
ss = '''
이재명 경기도지사는 8일 일각에서 제기되는 탈당설에 대해 “민주당 지지자들이 압도적으로 응원하는데 왜 나가느냐”고 강력 부인했다.
이 지사는 이날 OBS 방송에 출연해 ‘일부에서 탈당설이 제기되고 있다’는 질문에 “2005년부터 16년간 민주당 당원인데 왜 탈당하느냐”면서 이같이 반문했다.
이 지사는 이날 OBS 방송에 출연해 ‘일부에서 탈당설이 제기되고 있다’는 질문에 “2005년부터 16년간 민주당 당원인데 왜 탈당하느냐”면서 이같이 반문했다.
이 지사는 이날 OBS 방송에 출연해 ‘일부에서 탈당설이 제기되고 있다’는 질문에 “2005년부터 16년간 민주당 당원인데 왜 탈당하느냐”면서 이같이 반문했다.
아울러 이 지사는 ‘정세균 총리 이외에도 당내 제3후보론이 나오는데 섭섭하지 않으냐’는 질문에는 “저는 안 섭섭하다. 섭섭할 사람은 (대선주자 선호도) 2등 하시는 분일 것”이라며
이 지사는 이날 OBS 방송에 출연해 ‘일부에서 탈당설이 제기되고 있다’는 질문에 “2005년부터 16년간 민주당 당원인데 왜 탈당하느냐”면서 이같이 반문했다.
이 지사는 이날 OBS 방송에 출연해 ‘일부에서 탈당설이 제기되고 있다’는 질문에 “2005년부터 16년간 민주당 당원인데 왜 탈당하느냐”면서 이같이 반문했다.
“저는 누군가는 상대해야 하는데, 저보다는 대체 당할 수 있는 분이 억울할 것”이라고 했다.
'''
ss2 = re.sub(r"[^가-힣\s]", "", ss) # 한글만 parsing
print(ss2)
ss3 = ss2.split(' ') # 공백 기준 단어를 나눔
print(ss3)
cnt = {} # 단어의 발생횟수를 dict로 저장
for n in ss3:
if n in cnt: # count있을 경우 ++
cnt[n] += 1
else:# 없을 경우 1
cnt[n] = 1
print(cnt)
# {'\n이재명': 1, '경기도지사는': 1, '일': 1, '일각에서': 1, '제기되는': 1, '탈당설에': 1, '대해': 1, '민주당': 6, '지지자들이': 1, '압도적으로': 1, '응원하는데': 1, '왜': 6, '나가느냐고': 1, '강력': 1, '부인했다\n이': 1, '지사는': 6, '이날': 5, '': 5, '방송에': 5, '출연해': 5, '일부에서': 5, '탈당설이': 5, '제기되고': 5, '있다는': 5, '질문에': 5, '년부터': 5, '년간': 5, '당원인데': 5, '탈당하느냐면서': 5, '이같이': 5, '반문했다\n이': 3, '반문했다\n아울러': 1, '이': 1, '정세균': 1, '총리': 1, '이외에도': 1, '당내': 1, '제후보론이': 1, '나오는데': 1, '섭섭하지': 1, '않으냐는': 1, '질문에는': 1, '저는': 1, '안': 1, '섭섭하다': 1, '섭섭할': 1, '사람은': 1, '대선주자': 1, '선호도': 1, '등': 1, '하시는': 1, '분일': 1, '것이라며\n이': 1, '반문했다': 1, '\n저는': 1, '누군가는': 1, '상대해야': 1, '하는데': 1, '저보다는': 1, '대체': 1, '당할': 1, '수': 1, '있는': 1, '분이': 1, '억울할': 1, '것이라고': 1, '했다\n': 1}
re.match(r'^\d{3}-\d{4}$', str1) : str1에서 패턴과 일치하면 true
for ss in ['111-1234', '일이삼-사오육칠', '123-1234']:
if re.match(r'^\d{3}-\d{4}$', ss):
print(ss, '전화번호 일치')
else:
print(ss, '전화번호 불일치')
str1 = sorted(str2) : 정렬값 리턴
str1.sort() : 정렬하여 str1에 반영
from time import localtime
print(localtime())
# time.struct_time(tm_year=2021, tm_mon=2, tm_mday=9, tm_hour=11, tm_min=12, tm_sec=1, tm_wday=1, tm_yday=40, tm_isdst=0)
act = {6:'잠', 9:'준비', 18:'공부', 24:'휴식'}
print(act)
hour = localtime().tm_hour
for act_time in sorted(act.keys()):
if hour < act_time:
print(act[act_time])
break
#else:
#print('알수없음')
- 과일값 계산하기
price = {'사과':3000, '감':500, '한라봉':1000}
guest = {'사과':2, '감':3}
bill = sum(price[f]* guest[f] for f in guest)
print('손님이 구매한 과일의 총액은 {}원'.format(bill)) # 손님이 구매한 과일의 총액은 7500원
datas = [1, 2, 'kbs', True, 3]
li = [i * i for i in datas if type(i) == int]
print(li) # [1, 4, 9]
datas = {1,1,2,2,3}
se = {i * i for i in datas}
print(se) # {1, 4, 9}
- key-value swap
id_name = {1:'tom', 2:'jonh'}
name_id = {val:key for key, val in id_name.items()}
print(name_id) # {'tom': 1, 'jonh': 2}
aa = [(1,2), (3,4), (5,6)]
for a, b in aa:
print(a + b, end = ' ') # 3 7 11
temp = [1,2,3]
temp2 = [i + 10 for i in temp]
print(temp2) # [11, 12, 13]
- range() : 수열 생성
print(list(range(1,6))) # [1, 2, 3, 4, 5]
print(set(range(1,6))) # {1, 2, 3, 4, 5}
print(tuple(range(1,6))) # (1, 2, 3, 4, 5)
print(list(range(1,11,3))) # [1, 4, 7, 10]
print(list(range(-10,-200,-30))) # [-10, -40, -70, -100, -130, -160, -190]
for i in range(6):
print(i, end = ' ') # 0 1 2 3 4 5
print()
tot = 0
for i in range(1, 50, 2):
print(i, end = ' ') # 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
tot += i
print()
print('결과는 ' + str(tot))
print('결과는 ' + str(sum(range(1, 50, 2))))
- 구구단 2~5단
for i in range(2, 5):
for j in range(1, 9):
print('{0} * {1} = {2}'.format(i,j,i*j), end = '\t')
print()
- 1 ~ 100 사이의 숫자 중 3의 배수이면서 5의 배수인 수들의 합 출력
tot = 0
for i in range(1, 101):
#print(i, end = ' ')
if i % 3 == 0 and i % 5 == 0:
tot = tot + i
print('합은', tot) # 합은 315
- N - gram : 문자열에서 n개의 연속된 요소를 추출하는 방법
- 글자별 n-gram : 2- gram
ss = 'hello'
for i in range(len(ss) -1):
print(ss[i], ss[i+ 1], sep = ' ')
# h e
# e l
# l l
# l o
- 단어별 n-gram : 2- gram
ss2 = 'this is python script'
words = ss2.split()
for i in range(len(words) -1):
print(words[i], words[i+ 1], sep = ' ')
# this is
# is python
# python script
'Programming 언어 > Python' 카테고리의 다른 글
[Python] 파이썬 정리 링크 (0) | 2021.02.17 |
---|---|
[Python] 파이썬 정리 5 - 다중상속, 추상클래스, 예외처리, file, wxPython, SQLite, DB , socket, thread, 멀티 쓰레드 채팅 프로그램, pool, process, 웹 크롤링, HttpServer, CGI (0) | 2021.02.15 |
[Python] 파이썬 정리 4 - 함수, 변수의 생존 범위, 클로저, 일급함수, 모듈, 사용자 정의 모듈, turtle, 외부 모듈 사용, 클래스, 포함, 상속, 오버라이딩 (0) | 2021.02.09 |
[Python] 파이썬 정리 2 - 기초 (0) | 2021.02.08 |
[Python] 파이썬 정리 1 - 환경구축(이클립스) (0) | 2021.02.08 |