조건문
파이썬에서는 빈 문자열, 리스트, 튜플, 딕셔너리를 False로 취급 ( 자바스크립트랑 다르군. )
tt = list()
if tt :
print('여기 안옴')
else :
print('여기는 오겠지..')
파이썬에서 사용하는 관계연산자는 >, >=, <, <=, ==, != 가 있다.
파이썬에서 사용하는 논리연산자는 and, or, not 이 있다.
a = 30
b = 20
c = 10
print('and', a > b and b > c) # True
print('or', a < b or b > c) # True
print('not' not a < b) # True
우선순위 : 산술 > 관계 > 논리
print(5 + 3 > 10 and 6*2<=30 ) # False
num = 90
if num >= 90 :
print('A')
elif num >= 80 :
print('B')
else :
print('C')
q = [10, 20, 30] # list
w = {70, 80, 90, 100} # sets
e = {"name":"Hong", "city":"Seoul","grade":"A"} # dict
r = (10, 12, 14) # tuple
print(15 in q) # False
print(90 in w) # True
print(12 not in r) # False
print("name" in e) # True, 딕셔너리에서는 key를 줘야함
print("Seoul" in e.values()) # True, e.values() 는 list
반복문 ( for )
fo in <collection>:
<loop body>
for v1 in range(10):
<loop body>
for v2 in range(1, 11):
<loop body>
for v3 in range(1, 11, 2): # 1, 3, 5, 7, 9
<loop body>
# 예제) 1부터 1000까지 합
sum = 0
for v in range(1, 1001):
sum += v
print('result', sum)
위 예제의 더 간단한 코드 ( 내부함수 sum을 이용 )
print('sum', sum(range(1, 1001)))
# 예제) 4의 배수 합
print('4의 배수', sum(range(4, 1001, 4)))
# 예제 ) 딕셔너리 반복
test = {
"a" : 1,
"b" : 2,
"c" : 3
}
for key in test:
print(key) # 'a' 'b' 'c'
for value in test.values():
print(value) # 1 2 3
for key in test:
print(test[key]) # 1 2 3
for key in test:
print(test.get(key)) # 1 2 3
# 예제 ) 문자열 대문자로 출력하기
name = 'hONGdOngUk'
for a in name:
if a.isupper(): # 대문자 구별 함수
print(a)
else:
print(a.upper())
isUpper()
: 대문자면 true, 소문자면 false# 예제 ) 구구단
for i in range(2, 10):
for j in range(1, 10):
print('{:4d}'.format(i*j), end='') # 4자리 정수형으로 줄바꿈 없이 출력
print()
# 예제) 변환예제
name = 'hongdonguk'
print(reversed(name)) # reversed 함수는 이터러블을 리턴
iter = reversed(name)
print(list(iter))
print(tuple(iter))
print(set(iter)) # 순서 없음
for a in reversed(name): # 형 변환 하지 않고 반복문 순회 가능
print(a) # 'k' ~ 'h'
numbers = [1,2,3,4,5,10,11,15]
for num in numbers:
if num == 34:
print('found', num)
break
else:
print('not found', num)
array = ['1', 2, 5, True, 4.3, complex(4)]
for a in array:
if a is bool:
continue
print(a) # '1' 2 5 4.3 (4+0j)
print(a * 3) # 111 6 15 12.9 (12+0j)
is
구문 사용numbers = [1,2,3,4,5,10,11,15]
for number in numbers:
if number == 10:
print('Found 10')
break
else:
print('pass here?')
위 코드에서는 else문이 실행되지 않는다. 그럼 언제 실행 될까?
numbers = [1,2,3,4,5,10,11,15]
for number in numbers:
if number == 909:
print('Found 909')
break
else:
print('pass here?') # 출력
위와 같은 경우에서는 ‘pass here’ 구문이 출력된다.
for else문에서 else 구문은 for 구문이 순회하는 이터러블을 모두 순회 했을 때 즉, 중간에 break문이나 return 문에 의해 for문이 강제 종료가 되지 않는다면 else구문을 수행한다.
반복문 ( while )
while <expression>:
<statement(s)>
# 예제1) 기본
a = [1,2,3,4,5]
while a:
print(a.pop(-1)) # 5 4 3 2 1
# 예제2) while else
n = 10
while n > 0:
n -= 1
print(n)
else:
print('else out')
while 문 역시 전체 순회가 이루어진다면 ( break, return 없이 ) else 문 수행