- python 기초 문법
1. 튜플
리스트와 매우 비슷 하지만 List = [가변형] / Tuple = (불변형)
2. 집합
리스트 or 튜플 등 집합으로 선언 👉 set(변수명)
set_a = set(student_a)
set_b = set(student_b)
선언 후 교집합 / 차집합 / 합집합 값 print
print(set_a & set_b)
print(set_a - set_b)
print(set_a | set_b)
3. f-string
출력시 문장을 하나의 형태로 표현 할 수 있다.
print(f'{변수명}는 첫번째 변수이고, {변수명}는 두번째 변수 출력 형태이다')
👉 결과값 : 000는 첫번째 변수이고, 000는 두번째 변수 출력 형태이다
4. 예외처리
try - except 로 구성
조건문 반복문 등 특정 알고리즘 진행시 예외발생으로 프로그램 중단이 아닌, 예외처리에 해당되는 행동을 시켜 멈추지 않고 이후 정상적인 구문에서는 계속해서 실행되는 구문
for i in people :
try :
if i['age'] > 20 :
print(i['name'])
except:
print(i['name'] + ' : 에러입니다.')
age값이 없는 예외 값에선 "name 에러입니다." 출력 후 계속해서 if 문 실행
5. 파일분리
function / test(동작) 으로 파일을 분리해 복잡한 함수 구문은 function에 몰고, 내가 해야 할 동작은 test에서 실행한다.
[function]
def say_hi():
print('안녕?')
[test]
from function import * 👉 파일 분리를 위한 필수 import 값
say_hi()
6. map / lambda / filter
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person) :
if person['age'] > 20 :
return '성인'
else :
return '청소년'
# map
result = map(check_adult, people)
print(list(result))
# filter
result_filter = filter(check_adult, people) 👉 if/else 모두 True 값이기 때문에 모든 딕셔너리가 출력된다
print(list(result_filter)) 👉 '성인'도 '청소년'도 모두 유효한 값
------------------------------------------------------------------------------------
👉 정의된 def 함수가 아닌 lambda를 이용해 조건 처리
# lambda
result_lambda = map(lambda person : ('성인' if person['age']>20 else '청소년'), people)
print(list(result_lambda))
result_lambda_x = map(lambda x : x['age']>20 , people) 👉 통상적으로 x 가 쓰인다.
print(list(result_lambda_x))
# filter
result_filter = filter(lambda person : person['age']>20 , people)
print(list(result_filter))
map : 인자를 받아와 해당 함수에 인자를 넣어 실행 (for문 과 비슷)
👉 변수명 = map(함수 , 인자)
filter : 인자를 받아와 해당 함수에 인자를 넣어 False / True 값 중 True값 만 반환
👉 변수명 = filter(함수명 or lambda로 정의 , 인자)
lambda : 간단한 함수는 따로 def로 정의하지 않고 lambda로 간결하게 표현
👉 변수명 = map(lambda x : x 조건 , 인자) : 인자가 조건에 해당하면 그 값을 가져와라 'x'는 인자명 과 같으면 안됨
7. class
하나의 틀 안에 다양한 속성들이 있을때 def는 그저 하나의 특성을 묶어 표현한다면 class는 그 특성들을 묶어 하나의 틀로 만드는 행위
class Monster() :
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0 :
self.alive = False
def status_check(self):
if self.alive :
print('살았다')
else :
print('죽었다')
👉 예) 게임 속 몬스터의 데미지가 100부터 시작해서 0으로 줄어들게 되면 죽는 게임이라면, Monster가 가지고 있는 특성들 즉, hp와 현재의 상태 들을
class Monster() :
👉 class로 묶어서 표현 한 후,
m1 = Monster()
m1.damage(150)
m1.status_check()
m2 = Monster()
m2.damage(80)
m2.status_check()
👉 다음으로 몬스터를 정의하면
m1, m2 = Monster 로 정의되고, 그 안에 있는 특성인 damage, status_check 를 나타낼 수 있다.
+ 정의되지 않은 다른 변수 예) m3 는 m3.damage or m3.status.check를 나타낼 수 없다.
+ 한줄처리
간단한 조건 / 반복문은 한 줄로 정리 할 수 있다.
[if 한줄처리]
num = 3
if num % 2 == 0 :
result = '짝수'
else:
result = '홀수'
short = ('짝수' if num % 2 == 0 else '홀수') 👉 '참 결과값' if 참 조건식 else '거짓 결과값'
print(f'{num}은 {result} 입니다')
print(f'{num}은 {short} 입니다')
👉 결과값 동일
[for 한줄처리]
a = [1,2,3,4,5,6]
a_list = [1,2,3,4,5,6]
b = []
c = []
for i in a :
b.append(i*2)
c = [i*2 for i in a_list] 👉 인자가 해야 할 동작 for 인자 in 어디서?
print(b)
print(c)
👉 결과값 동일'woncoding > TIL' 카테고리의 다른 글
| TIL | 9.6.화 [Python 활용] (0) | 2022.09.06 |
|---|---|
| TIL | 9.5.월 [Python 언어의 이해 / Python 기초] (1) | 2022.09.05 |
| TIL | 9.1.목 [변수 / 리스트 / 딕셔너리 / 조건,반복문 / 함수] (0) | 2022.09.01 |
| TIL | 8.31.수 [1_mini_project] (0) | 2022.08.31 |
| TIL | 8.30.화 [pymongo / Flask] (0) | 2022.08.30 |