[컴퓨터 공학 기본과 파이썬] Problem Solving
2022. 5. 31. 21:18ㆍAI/Codestates
728x90
반응형
컴프리헨션 ( Comprehension )
- 한 줄로 파이썬 기능을 구현할 수 있는 기능
- 코드 간소화를 위해서 사용되고 직관적이면 속도도 빠름
- 컴프리헨션 내에서 여러 조건이 중첩되는 경우 가독성이 떨어짐
- 조건문에 따라 컴퓨터에 사용되는 메모리에 영향을 줄 수 있음
# 기본 반복문 사용
numbers = [1, 2, 3, 4]
squares = []
for n in numbers:
squares.append(n**2)
# 컴프리헨션 사용
numbers = [1, 2, 3, 4]
squares = [n**2 for n in numbers]
# 기본 반복문과 조건문 사용
list_a = [1, 2, 3, 4]
list_b = [2, 3, 4, 5]
common_num = []
for a in list_a:
for b in list_b:
if a == b:
common_num.append(a)
# 컴프리헨션 사용
list_a = [1, 2, 3, 4]
list_b = [2, 3, 4, 5]
common_num = [a for a in list_a for b in list_b if a == b]
# 딕셔너리 컴프리헨션
test = {'A': 5, 'B': 7, 'C': 9, 'D': 6, 'E': 10}
test = {na:test for na,test in test.items() if na != 'E'}
지역변수와 전역변수란?
▶ 지역변수
- 해당 변수가 포함된 함수 안에서만 수정하고, 읽을 수 있음
- 지역변수는 이름이 같더라도, 소속된 함수가 다르면 다른 변수로 취급함
▶ 일반적인 전역변수
하나의 파이썬 파일 전체에서 값을 읽을 수 있음 되도록이면 함수 안에서 사이트이펙트 및 가독성을 위해 값을 수정하지 않도록 하는게 유리
■ global 전역변수
일반 전역변수와 다른 점은 변수가 생성되는 시점만 다름
구문 및 예외처리
▶ for ~ else 문
# for ~ else 문
# else문의 역할: 반복(for)문에서 break가 발생하지 않았을 경우의 동작을 else문에 적어준다.
for i in range(3):
print('loop : ', i) # 1) 루프반복수행
else :
print('break가 실행되지 않았습니다.') # 2) else 구문 추가수행
▶ try ~ except 문
def my_divide():
try:
# 문제가 없을 경우 실행할 코드
x = input('분자의 숫자를 입력하세요 ~ ')
y = input('분모의 숫자를 입력하세요 ~ ')
return int(x)/int(y)
except:
# 문제가 생겼을 경우 실행할 코드
return '나누기를 할 수 없습니다'
▶ try ~ except ~ else 문
# except문이 실행되지 않았을 경우 else 문이 실행
def disneyland():
try:
age = int(input("나이를 입력해주세요: "))
except:
print("숫자로 나이를 입력해주세요.")
else:
# 3세 미만은 공짜
if age < 3:
fee = 0
# 3세~9세: 50,000
elif age >= 3 and age < 10:
fee = 50000
else:
fee = 100000
return fee
▶ try ~ except ~ finally 문
# 오류 발생 유무와 관계없이 특정 코드를 무조건 실행 시킴
def disneyland():
try:
age = int(input("나이를 입력해주세요: "))
except ValueError as e:
print("숫자로 나이를 입력해주세요.")
print(e)
else:
# 3세 미만은 공짜
if age < 3:
fee = 0
# 3세~9세: 50,000
elif age >= 3 and age < 10:
fee = 50000
else:
fee = 100000
return fee
finally:
print("디즈니 랜드에 오신 것을 환영합니다~!")
▶ raise 구문
raise Exception(’안내 문구')
a = '1'
if type(a) != 'int':
raise Exception('a must be int type') # raise Exception
▶ assert 구문
assert 조건식, 조건식이 False인 경우 출력되는 메시지
728x90
반응형
'AI > Codestates' 카테고리의 다른 글
[컴퓨터 공학 기본과 파이썬] DataStructure Essential (0) | 2022.06.03 |
---|---|
[컴퓨터 공학 기본과 파이썬] Python with OOP (0) | 2022.06.03 |
[컴퓨터 공학 기본과 파이썬] Python Programming (0) | 2022.05.30 |
[Deep Learning - CV] Generative Adversarial Network ( GAN ) (0) | 2022.05.17 |
[Deep Learning - CV] AutoEncoder ( AE ) (0) | 2022.05.16 |