제어문

김상윤·2022년 1월 19일
0

python

목록 보기
6/13

if문

기본구조

if <조건문>:
    <수행문>
    <수행문>
    ...
elif <조건문>:
    <수행문>
    <수행문>
    ...
elif <조건문>:
    <수행문>
    <수행문>
    ...
...
else:
    <수행문>
    <수행문>
   ... 
if <조건문>: <수행문>
else: <수행문>
  • 들여쓰기 : 요즘 공백 4개 권장.
  • {}로 수행문을 묶지 않고 들여쓰기로 수행문 블록을 구분한다.

조건부 표현식

  • 기본구조
if score >= 60: 
    message = "success"
else:
    message = "failure"
  • <조건문이 참인 경우 수행문> if <조건문> else <조건문이 거짓인 경우 수행문>
message = "success" if score >= 60 else "failure"

파이썬의 조건문

True==1 //True
True==2 //Flase
False==0 //True

논리 연산자

(a<b and x==y)
(a<=b or x!=y)
(not a<b)

멤버 연산자

  • in
s = "Hello"
"el" in s
#True

7 not in [1,2,3]
#True

class_c = ["tom", "david", "steve"]
if "tom" in class_c:
	print("tom's class")
#tom's class

bool( ) 형변환

  • 숫자
    : 0 이외 -> True, 0 -> False
  • 문자
    : 값이 있으면-> True, 값이 없으면 -> False
  • None
bool(2) //True
bool(0) //False
bool(' ') //True
bool('') //False
bool(None) //False
  • if a:
    // if문의 조건문에 변수만 넣으면 bool()과 같은 역할
  • None != ""
  • None != []

is : 객체 비교 연산자

a = [2, 3]
b = [2, 3]
a == b //True
a is b //False

파이썬의 수행문

  • pass
    : 수행 할 동작이 없을 때 pass문 쓴다. 빈 코드와 같다.
    : loop문에서 쓰여도 해당 loop의 뒤 코드를 끝까지 수행한다.
if x < 80:
	pass
else:
	print("great")
  • continue
    : loop문에서 다음 순번의 loop로 강제 이동

one-line

# 기본
수행문 if 조건문
if 조건문 : 수행문
#else
변수 =1 if 조건문 else2
a = 1 if k > 0 else 5
#elif
변수 =1 if 조건문1 else2 if 조건문2 else3
a = 1 if a1 ==1 else 2 if a1 == 2 else 0

while문

기본구조

  • 들여쓰기로 수행문 블록 구분
while <조건문>:
    <수행할 문장1>
    <수행할 문장2>
    <수행할 문장3>
    ...

for문

기본구조

  • 들여쓰기로 수행문 블록 구분
  • 리스트의 element value를 차례로 변수로 가져온다.
for 변수 in 리스트(또는 튜플, 문자열):
    <수행할 문장1>
    <수행할 문장2>
    ...

element의 형태에 따른 활용

  • list의 element가 튜플인 a의 경우 받아 올 때 다음과 같은 형태로 각 tuple의 element를 각각 변수로 받아 올 수 있다.
a = [(1,2), (3,4), (5,6)]
for (first, second) in a:
	print(first + second)

range함수 활용

range 함수

  • range(n)
    : 0 ~ n-1 범위의 정수로 구성 된 range객체 리턴
  • range(m,n)
    : m ~ n-1 범위의 정수로 구성 된 range객체 리턴
  • range(m,n,k)
    : k간격의 m ~ n-1 범위의 정수로 구성 된 range객체 리턴
  • 활용
for i in range(1, 7 ,2):
	print(i) 
#1 
#3 
#5 

list comprehension

one-line

: for문, if문을 이용해 list를 생성하는 방법

  • one-line(한 줄로) for 문 사용 가능
[추가할element for _ in range(n)]
[추가할element for a in 반복가능객체_iterable_object]
  • for문, if문 동시에
[추가할element for 항목 in 반복가능객체 if 조건문]
  • for문, if문 동시에2
    : 입력 ) ...O...
    map[0] ) [0, 0, 0, 3, 0, 0, 0]
s = input()
map[0] = [0 if a=="." else 3 for a in s]
  • 예시
words = ['apple', 'banana', 'cat']
l = [a[0] for a in words]
# ['a', 'b', 'c']
  • 제어문 여러번 이용 - 2중 for문
result = [x*y for x in range(2,10) for y in range(1,10)]
print(result)
# [2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42 , 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
a1 = ['a', 'b']
a2 = ['x', 'y', 'z']
l = [(i,j) for i in a1 for j in a2]
# [('a','x'), ('a','y'), ('a','z'), ('b','x'), ('b','y'), ('b','z')]

참고

0개의 댓글