dev/Python

[Python]제어문 - if / while / for

mingracle 2022. 1. 21. 23:39

1. if문

  : 주어진 조건을 판단하여 조건에 맞는 상황을 수행하는데 사용.

   (else문은 if문 없이 단독으로 사용할 수 없음)

    ※ 수행문 들여쓰기는 언제나 같은 너비로 해야한다.

  if 조건문:
    수행문1
    수행문2

  elif 조건문n:
    수행문1
    수행문2

  else:
    수행문1
    수행문2

 

 - 조건문

  : 참과 거짓을 판단하는 문장을 말한다.

  ※ pass: 아무런 일도 하지 않도록 설정하고 싶을 때 사용

비교연산자 설명 예) x=3, y=2일 경우 출력 결과
x < y  x가 y보다 작다. False
x > y  x가 y보다 크다. True
x == y  x와 y가 같다. False
x != y  x와 y가 같지 않다. True
x >= y  x가 y보다 크거나 같다. True
x <= y  x가 y보다 작거나 같다. False
연산자 설명 예)
x or y  x와 y 둘 중 하나만 참이어도 참 money = 2000
card =True
if money >= 3000 or card:  #참
    print("택시타기")
else:
    print("걸어가기")
x and y  x와 y가 모두 참이어야 참
not x  x가 거짓이면 참
in 설명   not in 설명
x in 리스트  x가 리스트 안에 있T/없F   x not in 리스트  x가 리스트 안에 있F/없T
x in 튜플  x가 튜플 안에 있T/없F   x not in 튜플  x가 튜플 안에 있F/없T
x in 문자열  x가 문자열 안에 있T/없F   x not in 문자열  x가 문자열 안에 있F/없T

- 조건부 표현식

  : 조건문이 참인경우 if 조건문 else 조건문이 거짓인경우

if score >= 60:
    message = "success"
else:
    message = "failire"
message = "success" if score >= 60 else "failure"

 

2. while문

  : 반복해서 문장을 수행해야 할 경우 사용.

   조건문이 참인동안 while문 아래의 문장이 반복수행, 조건문이 False가 되면 while문을 빠져나간다.

  ※ break: 반복문 탈출. 아무런 일도 하지 않도록 설정하고 싶을 때 사용

  ※ continue: 반복문 다시 실행. 맨 처음으로 돌아가기

while 조건문:
    수행문1
    수행문2
    수행문3
    ...
coffee = 10
while True:
    money = int(input("돈을 넣어주세요: "))
    if money == 300:
        print("커피를 줍니다.")
        coffee = coffee-1
    elif money > 300:
        print("거스름돈 %d을 주고 커피를 줍니다." %(money-300))
        coffee = coffee-1
    else:
        print("돈을 다시 돌려주고 커피를 주지 않습니다.")
        print("남은 커피 양은 %d입니다." %coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break

 

 

3. for문

  : 문장 구조가 한눈에 잘 들어오고 매우 유용하여 자주 사용된다.

  ※ continue문 사용 가능. for문의 처음으로 돌아간다.

for 변수 in 리스트(또는 튜플, 문자열):
    수행문1
    수행문2
    ...
  test _list = ['one', 'two', 'three']
for i in test_list:
    print(i)
# one
# two
# three
a = [(1,2), (3,4), (5,6)] #튜플리스트
for (first, last) in a:
    print(first + last)
# 3
# 7
# 11

 

- range함수

  : 숫자 리스트를 자동으로 만들어준다. range(시작숫자, 끝숫자, [n]) "시작~끝 미만 [n씩증가]"

   range(10) :  0부터 10미만의 숫자를 포함하는 range객체를 만들어준다. 끝 숫자는 포함되지 않는다.

marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
    if marks[number] < 60: continue
print("%d번 학생 합격입니다." %(number+1))
#구구단
for i in range(2, 10):
    for j in range (1, 10):
        print(i*j, end=" ")
    print('')

  end = " ": 결과값을 출력할 때 다음 줄로 넘기지 않고 그 줄에 계속해서 출력하기 위해서 사용

 

- 리스트 내포

 [표현식 for 항목 in 반복가능객체 if 조건]

a = [1, 2, 3, 4]

result = []  # list()와 동일 
for num in a:
    result.append(num*3)
print(result) #[3, 6, 9, 12] 출력

#리스트 내포를 사용
result = [num*3 for num in a]
print(result) #[3, 6, 9, 12] 출력

+) 리스트 내포 안의 if문

a = [1, 2, 3, 4]
result = [num*3 for num in a if num%2 == 0] #짝수만 출력
print(result)
  # [6, 12] 출력

+) 리스트 내포 안의 if, else문

  : else문 사용하려면 for문 앞에 작성해야한다.

number = [1, 2, 3, 4, 5]
result = [i*2 if i % 2 != 0 else i for i in number]
print(result)