All About Python 05

Jacob Kim·2024년 1월 7일
0

Datascience Dictionary

목록 보기
9/14
post-thumbnail

제어문(Control Statement)

조건문(Conditional Statement)

if 문

if 문을 이용한 미세먼지 측정

  • 미세먼지 농도 pm
  • 35 초과는 미세먼지 농도 나쁨
pm = 40
if pm > 35:
  print("미세 먼지 농도 : 나쁨")
 #미세 먼지 농도 : 나쁨

if-else 문

if-else 문을 이용한 미세먼지 측정

  • 미세먼지 농도 pm
  • 36 이상은 미세먼지 농도 나쁨
  • 35 이하는 미세먼지 농도 좋음
pm = 30
if pm >= 36:
  print("미세 먼지 농도 : 나쁨")
else:
  print("미세 먼저 농도 : 좋음")
#미세 먼저 농도 : 좋음

if-elif-else 문

if-elif-else 문을 이용한 미세먼지 측정

  • 미세먼지 농도 pm
  • 미세먼지 농도 0~15: 좋음
  • 미세먼지 농도 16~35: 보통
  • 미세먼지 농도 36~75: 나쁨
  • 미세먼지 농도 76~: 매우나쁨
pm = 40
if pm < 16:
  print("미세 먼지 농도 : 좋음")
elif pm < 36:
  print("미세 먼저 농도 : 보통")
elif pm < 76:
  print("미세 먼지 농도 : 나쁨")
else :
  print("미세 먼지 농도 : 매우나")
#미세 먼지 농도 : 나쁨

중첩 if 문

중첩 if 문을 이용한 미세먼지 측정

  • 미세먼지 농도 pm
  • 미세먼지 농도 0~15: 좋음
  • 미세먼지 농도 16~35: 보통
  • 미세먼지 농도 36~75: 나쁨
  • 미세먼지 농도 76~: 매우나쁨
pm = 80
if pm < 36:
  if pm < 16:
    print("미세 먼지 농도 : 좋음")
  else:
    print("미세 먼지 농도 : 보통")
else:
  if pm < 76:
    print("미세 먼지 농도 : 나쁨")
  else:
    print("미세 먼지 농도 : 매우 나쁨")
#미세 먼지 농도 : 매우 나쁨

if-pass 문

조건문은 있지만 실행할 문장이 없는 경우, 오류가 발생하지 않도록 무시하고 넘어가는 기능

if 10 > 5:
  print(10)
else:
  pass
#10

if 조건 연산자

비교연산자: <, >, ==, !=, >=, <=

if 2 > 1:
  print(2)
if 3 == 3:
  print(3)
if 1 != 2:
  print(1)
#2
#3
#1

논리연산자: and, or, not

rain = True
snow = True
sun = True #False
if rain and snow:
  print("진눈깨비")
if not sun:
  print("흐림")
else:
  print("맑음")
#진눈깨비
#맑음

멤버연산자: in, not in

list = ['One', 'Two', 'Three']
if 'One' in list:
  print('One')
if 'Four' not in list:
  print('no')
#One
#no

식별연산자: is, is not

if 'One' is 'One':
  print('One')
if 'One' is not 'Two':
  print("One is not Two")
#One
#One is not Two

조건부 표현식(Conditional Expression)

한 라인으로 조건식을 사용한 표현

score = 90
msg = "통과" if score >= 70 else "탈락"
print(msg)
#통과

[Lab] 학생 종류

8세 미만 "학생 아님"
14세 미만 "초등학생"
17세 미만 "중학생"
20세 미만 "고등학생"
26세 미만 "대학생"
그 외에 "학생 아님"

age = 26
if age < 8:
  print("학생 아님")
elif age < 14:
  print("초등학생")
elif age < 17:
  print("중학생")
elif age < 20:
  print("고등학생")
elif age < 30:
  print("대학생")
else:
  print("학생 아니다")
#대학생

[Lab] 학점 계산

95점 이상 "A+"
90점 이상 "A"
85점 이상 "B+"
80점 이상 "B"
75점 이상 "C+"
70점 이상 "C"
65점 이상 "D+"
60점 이상 "D"
그 외 "F"

score = 75
if score >= 95:
  print("A+")
elif score >= 90:
  print("A")
elif score >= 85:
  print("B+")
elif score >= 80:
  print("B")
elif score >= 75:
  print("C+")
elif score >= 70:
  print("C")
elif score >= 65:
  print("D+")
elif score > 60:
  print("D")
else:
  print("F")
#C+

반복문(Repetitive Statement)

while 문

while 문 예제: 1부터 10까지 반복

i = 1
while i <= 10:
  print(i)
  i += 1
#1
#1
#1
#1

while 문 예제: 1부터 10까지 더하기

i = 1
sum = 0
while i <= 10:
  sum += i
  i += 1
print(sum)
#55

for문

리스트 요소 반복

list = ['One', 'Two', 'Three']
for i in list:
  print(i)
#One
#Two
#Three  

튜플 요소 반복

tuple = ('One', 'Two', 'Three')
for i in tuple:
  print(i)
#One
#Two
#Three

문자열 요소 반복

string = "MinjunKim"
for i in string:
  print(i)
#M
#i
#n
#j
#u
#n
#K
#i
#m

range()

sum = 0
for i in range(101):
  sum += i
print(sum)
#5050
for i in range(1,10,2):
  print(i)
#1
#3
#5
#7
#9 

범위 반복 range를 이용한 구구단

for i in range(2,10):
  for j in range(1,10):
    print("{0} X {1} = {2}".format(i,j, i*j))
#2 X 1 = 2
#2 X 2 = 4
#2 X 3 = 6
#2 X 4 = 8
#2 X 5 = 10
#2 X 6 = 12
#2 X 7 = 14
#2 X 8 = 16
#2 X 9 = 18
#3 X 1 = 3
#3 X 2 = 6
#3 X 3 = 9
#9 X 4 = 36
#9 X 5 = 45
#9 X 6 = 54
#9 X 7 = 63
#9 X 8 = 72
#9 X 9 = 81

_기능

for i in range(5):
  print("Minjun IronBag")
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag
for _ in range(5):
  print("Minjun IronBag")
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag
#Minjun IronBag

else 문

반복이 종료된 후에 한번 더 실행되는 문장

i = 1
sum = 0
while i <= 10:
  sum += i
  i += 1
else :
  print(sum)
#55
sum = 0
for i in range(11):
  sum += i
else:
  print(sum)
#55

break문

반복문 종료

i = 0
while i < 100:
  print(i)
  if i == 10:
    break
  i += 1
#0
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
for i in range(100):
  print(i)
  if i == 10:
    break
#0
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10

continue 문

반복 조건문으로 이동

i = 0
while i < 10:
  i += 1
  if i % 2 == 0:
    continue
  print(i)
#1
#3
#5
#7
#9
for i in range(10):
  if i % 2 == 0:
    continue
  print(i)
#1
#3
#5
#7
#9

리스트 내포(List Comprehension)

리스트 안에 for 문과 if 문 사용

list = [1,2,3,4,5]
print([i*2 for i in list])
print([i*2 for i in range(10) if i %2 == 0])
#[2, 4, 6, 8, 10]
#[0, 4, 8, 12, 16]

[Lab] 문자열 반전

무자열을 역순으로 만든다.

string = "IronMinjun"
#string.reverse()
reverse = ""
for c in string:
  reverse = c + reverse
print(string)
print(reverse)
#IronMinjun
#nujniMnorI

에러와 예외(Errors and Exceptions)

프로그램에서는 에러가 발생
에러에 대한 예외 처리가 필요

에러 예제

ZeroDivisionError

10 / 0

NameError

noname + 3

TypeError

'1' + 1

ValueError

int("String")

예외 처리(Exception Handling)

try, except 문

  • try 문을 통해 예외 발생 가능한 코드에 정의
  • except 문을 이용해 예외 처리 방법을 정의
try:
  print(2/0) #2/1 -> 정상 출력
except:
  print("Error")
#Error

에러 분류에 따른 except 문
ZeroDivisionError에 대한 except 처리

try:
  print(2/0)
except ZeroDivisionError:
  print("ZeroDivisionError")
#ZeroDivisionError

에러 메시지가 포함된 except문
ZeroDivisionError에 포함된 에러 메시지 e를 출력

try:
  print(2/0)
except ZeroDivisionError as e:
  print(e)
#division by zero

여러 에러 분류가 포함된 except 문

try:
  n = int(input("입력 :"))
  result = 1/n
except ZeroDivisionError as e:
  print(e)
except ValueError as e:
  print(e)
else:
  print("결과 :"+str(result))
#입력 :1
#결과 :1.0

에러 발생

raise
직접적으로 에러를 발생시킬 수 있음
에러의 종류와 에러 상황을 정의하고 발생

raise ZeroDivisionError("숫자를 0으로 나눔")
raise NameError("지역 또는 전역 이름을 찾을 수 없다")
raise TypeError("연산이나 함수가 부적절하 형의 객체에 적용")
raise ValueError("연산이나 함수가 부적절한 값을 인자로 받는다")

assert 문
raise 문과 달리 주로 검증을 위한 목적으로 작성
상태를 검증하는 목적으로 작성되며 검증식이 포함됨
검증식이 False일 경우 AssertionErro 발생

assert True
assert False
assert False, "에러 메시지"
b = 1
assert b != 0, "상태에 따라서 발생"
profile
AI, Information and Communication, Electronics, Computer Science, Bio, Algorithms

0개의 댓글