본문 바로가기
add 깨알 공부

Python 기초 - 제어문(if, for, while, continue, break)

by mihsyeh 2021. 7. 5.
*나도코딩님 강의를 듣고 복습의 의미로 작성하였습니다. 실제 강의 내용이나 예제와 다를 수 있습니다.

 

제어문

 

1. if문

- if문의 기본 구조

weather = input("오늘 날씨는 어때요?")
if weather == "비":
	print("우산을 챙기세요")
elif weather == "미세먼지":
	print("마스크를 챙기세요")
else:
	print("준비물 필요 없어요")

 

- 비교 연산자

temp = int(input("기온은 어때요? "))
if 30 <= temp:
    print("너무 더워요. 나가지 마세요.")
elif 10 <= temp and temp < 30:
    print("괜찮은 날씨예요.")
elif 0 <= temp < 10:
    print("외투를 챙기세요.")
else:
    print("너무 추워요. 나가지 마세요.")

 

 

2. for문

- for문이 없었다면?

print("대기번호 : 1")
print("대기번호 : 2")
print("대기번호 : 3")
print("대기번호 : 4")

 

- for문 기본구조

for wating_no in [0, 1, 2, 3, 4]"
	print ("대기번호 : {0}".format(wating_no))

 

- range 함수 응용하기

for wating_no in range(5):
	print("대기번호 : {0}".format(wating_no))
for wating_no in  range(1, 6):
     print("대기번호 : {0}".format(wating_no))

 

- for문 응용

starbucks = ["카리나", "윈터", "지젤", "닝닝"]
for customer in starbucks:
     print("{0} 고객님, 커피가 준비되었습니다." .format(customer))

 

 

3. while 문

customer = "지젤"
index = 5
while index >= 1:
    print("{0}, 커피가 준비 되었습니다. {1} 번 남았어요.".format(customer, index))
    index -= 1
    if index == 0:
        print("커피는 폐기처분되었습니다.")

조건문 index -= 1을 통해 실행하면서 문장을 출력하다가 index값이 0이 되면 "커피는 폐기처분되었습니다" 문장을 출력한다. 그러고 나면 index >= 1이 거짓이 되므로 while문을 빠져나간다.

 

customer = "윈터"
person = "Unknown"

while person != customer :
    print("{0}, 커피가 준비 되었습니다.".format(customer))
    person = input("이름이 어떻게 되세요?")

조건문 person != customer를 이용하여 입력값이 "윈터"가 아니면 while문을 반복하고, "윈터"를 입력하면 while문을 빠져나간다

 

 

- 처음으로 돌아가는 continue와 강제로 빠져나가는 break

customer = "카리나"
index = 1
while True:
    print("{0}, 커피가 준비 되었습니다. 호출 {1} 회" .format(customer, index))
    index += 1

 

계속 1씩 증가하는 조건문이 항상  참이기 때문에 무한루프에 빠진다.

 

absent = [2, 5] # 결석한 학생
no_book = [9] # 책을 가져오지 않은 학생

for student in range(1, 11):
    if student in absent:
        continue
    elif student in no_book:
        print("오늘 수업 여기까지. {0}는  교무실로 따라와".format(student))
        break
    print("{0}, 책을 읽어봐".format(student))

continue를 만나면 제어문의 처음으로 돌아가고 break를 만나면 그대로 제어문을 강제로 종료한다.

 

 

4. 한 줄 for

- 출석번호 students 앞에 100을 붙이기

students = [1,2,3,4,5]
print(students)
students = [i+100 for i in students]
print(students)

 

- 학생 이름을 길이로 변환

students = ["karina", "ningning", "winter", "gigle"]
students = [len(i) for i in students]
print(students)

 

- 학생 이름을 대문자로 변환

대문자로 변환
students = ["karina", "ningning", "winter", "gigle"]
students = [i.upper() for i in students]
print(students)

 

 

Quiz. 50명의 택시 승객과 매칭 기회가 있을 때, 총 탑승 승객 수를 구하는 프로그램을 작성하시오


조건 1. 승객별 운행 소요 시간은 5분 ~ 50분 사이의 난수로 정해짐

조건 2. 소요 시간 5분 ~ 15분 사이의 승객만 매칭하기


<출력문 예>

[O] 1번째 손님 (소요시간 : 15분)
[ ] 2번째 손님 (소요시간 : 50분)
[O] 3번째 손님 (소요시간 : 5분)
. . .
[ ] 50번째 손님 (소요시간 : 16분)

총 탑승 승객 : 2 분

더보기
for random import *
cnt = 0

for i in range(1, 51): 
	time = randrange(5, 51)
	if 5 <= time < 16:
    	print("[O] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
    	cnt += 1
    else:
    print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i, time))

print("총 탑승 승객 : {0}분".format(cnt))

 

 

 

댓글