[python] 제어문

Cjw.dev·2023년 3월 14일
0

Python

목록 보기
5/7

조건문(if)
if, elif, else
파이썬에서의 if문 / switch - case 없음

naver = ["김규동", "김범수", "김지혜", "배철우", "신진영", "길영준", "장재호", "조원재", "장민실"]
passToNaver = input("네이버 합겹자 명단입니다. 성함을 입력해주세요.")
if passToNaver in naver:
    print(passToNaver, "님은 합격자입니다.")
    if passToNaver == "조준모":
        print("불합겨어어어억")
else:
    print(passToNaver, "님은 불합격자입니다.")

예제

사용자로부터 월을 입력받으면 월에 해당하는 계절이 출력되도록 하는 코드를 작성해보세요
12월~3월 : 겨울 / 4월 ~ 5월 : 봄 / 6월 ~ 8월 : 여름 / 9월 ~ 11월 : 가을

winter = ["12월", "1월", "2월", "3월"]
spring = ["4월", "5월"]
summer = ["6월", "7월", "8월"]
autumn = ["9월", "10월", "11월"]

enter = input("계절을 알려드립니다. 계절을 알고 싶은 월을 써보세요")

if enter in winter:
    print("겨울")
elif enter in spring:
    print("봄")
elif enter in summer:
    print("여름")
elif enter in autumn:
    print("가을")
else :
    print("유효한 월이 아닙니다")
    
month = int(input("월 입력 : "))
month = 12
if month >= 1 and month <=3 or month == 12:
    print("{}월은 겨울입니다.".format(month))

반복문 : 특정한 코드의 영역을 반복적으로 수행하는 것을 돕는 제어문
while : 조건이 참일동안 내용을 계속 수행하는 반복문
for : 지정된 범위에서 조건이 참을동안 내용을 계속 수행하는 반복문

test = 0
while test<10000:
    test+=1
    print("미친듯이 달리는 폭주기관차%d km", test)
    if test==50:
        print("멈춰")
        break

while 문 응용하기
퀴즈 10번 찍어 안넘어가는 나무 없다.
나무를 10번 찍기전까지는 도끼로 나무를 n번 찍었습니다. 나오는 메세지 출력

n = 0
while n<=10:
    n+=1
    print("도끼로 나무를 {}번 찍었습니다".format(n))
    if n==10:
        print("나무가 쓰러지고 있습니다")
        break

for 문
for 임시변수 in 변수(리스트, 문자열)

goottList = ["조준모", "김범수", "김규동", "김지혜", "길영준", "배철우", "신진영", "장민실", "장재호", "조원재", "박진배"]
for i in goottList:
    print(i)

for문 예제2

list2 = [1,2,3,4,5,6]
리스트 안의 요소 값이 4라면 4를 출력했습니다. 라는 메세지를 출력
for test in list2:
    if test == 4:
        print("{}를 출력했습니다".format(test))

for문 예제3

해당 리스트에서 35이상의 값들만 출력하고 그 값들의 합계 구하기 
list3 = [20, 50, 30, 40, 10, 60]
result = []
for test in list3:
    if test >= 35:
        result.append(test)
        print(test)
print(sum(result)) 

range

반복의 범위를 지정하는 함수
사용방법 : for 임시변수 in range(시작, 끝, 증감값)

슬라이싱과 비슷하지만 range 함수는 최소 끝값은 무조건 작성

사용예제

range(stop) # stop-1까지 정수 시퀀스를 반환
for i in range(5):
    print(i)
#결과: 0 1 2 3 4

for i in range(2, 10):
    print(i)
#결과 : 2 3 4 5 6 7 8 9
    
#range(start, stop, [step])
for i in range(1, 10, 2):
    print(i)
#결과: 1 3 5 7 9

#range(stop, step)
for i in range(0, 10, 3):
    print(i)
#결과: 0 3 6 9

#감소도 가능
for i in range(20,0,-2):
    print(i)

간단한 연습문제들을 통해 사용방법을 익혀보자

문제
quiz = [27, 19, 35, 43, 12, 21, 41, 39]
위와같은 리스트에서 다음의 조건을 출력해보세요
만약 결과값이 없으면 "결과값 없음" 이라는 문자를 출력해주세요
전제조건 : 반복문을 이용
1. 20보다 큰 9의배수 : 결과값 없음.
2. 40보다 작은 3의배수
단 1번과 2번조건을 동일하게 만족한다면 양쪽다 출력되어야한다.

result1 = [] # 20보다 큰 9의 배수 저장
result2 = [] # 40보다 작은 3의 배수 저장.

for i in quiz:
    if i>20 and i%9==0 :
        result1.append(i)
    elif i<40 and i%3==0:
        result2.append(i)

if len(result1) <1:
    print("20보다 큰 9의 배수 : 결과값 없음")
else:
    print("20보다 큰 9의 배수 : ", result1)
    
if len(result2) <1:
    print("40보다 작은 3의 배수 : 결과값 없음")
else:
    print("40보다 작은 3의 배수 : ", result2)
profile
백엔드 개발 공부 기록 22.11.07 ~ ing

0개의 댓글