본문 바로가기
공부기록/Python

6월 9일 (2) python - 제어문2

by project100 2023. 6. 9.

2. while

기본형식)  

while 조건문:

      수행문장1

      수행문장2

      .....

 

조건문이 참(True)인 경우에 블록에 속한 수행문장들 반복하여 실행

함께 사용하는 기타 제어문 : break, continue

 

횟수로 반복을 해야하는 경우(시퀀스) : for

횟수가 아닌 조건에 따라 반복하는 경우 : while

 

while문으로 무한루프 만들기

형식) while True:

                   수행문장....

                   if 종료조건문:

                          break

# 파이썬은 증감연산자(++, --)가 없다!
cnt = 0
while cnt < 10:
    print(cnt)
    cnt += 1
    
# 메뉴
menu = '''
1. 입력
2. 출력
3. 수정
4. 삭제
0. 종료
-----------'''

menu_num = -1
# while menu_num != 0:
#     print(menu)
#     menu_num = int(input('선택> '))
#     if menu_num == 0:
#         print('종료합니다.') 
    
while True:
    print(menu)
    menu_num = int(input('선택> '))
    if menu_num == 0:
        print('종료합니다.') 
        break
    elif menu_num < 0 or menu_num >= 4:
        print('0 ~ 4까지만 입력하세요.')
        continue
    
    if menu_num == 1:
        print('입력하세요')
    elif menu_num == 2:
        print('출력합니다.')
    elif menu_num == 3:
        print('수정합니다.')
    elif menu_num == 4:
        print('삭제합니다.')

* 구구단 짜기

# 구구단을 출력하는 프로그램 - while 버전
# 단 수를 입력 받아서 출력하는 프로그램을 작성하시오.

# n = int(input('숫자 입력 : '))
# cnt = 1
# print(n, '단')
# while cnt < 10:
#     print( n, '*', cnt, '=', n * cnt )
#     cnt += 1
    
d = int(input('단 입력 : '))
i = 0

while i < 9:
    i += 1
    print('{} * {} = {:2}'.format(d, i, d * i))

 

3. for

기본형식)

for 변수 in 시퀀스:

      수행문장.....

 

시퀀스 유형의 개수만큼 수행문장을 반복

단순히 횟수를 반복시킬 경우 range(수치)를 활용

for i in range(10): -> 0부터 9까지 10번 반복

=> for(int i = 0; i <10; i++)과 동일

 

연구문제) 모든 구구단을 출력하시요. (가로로)

 

4. match, case - switch, case와 동일한 제어문

파이썬 3.10 버전부터 추가됨.

형식) match 수식:

               case 값1: 

                      수행문장1

               case 값2:

                      수행문장2

               case _ :

                      수행문장3

 

'case_: ' 그 외 나머지 경우의 처리(default)

 

수식에 튜플을 사용하는 형식)

 match (식1, 식2):

      case (값1-1, 값2-1): 

              수행문장

      case (값1-2, 값2-1):

              수행문장

      case (값1-1, 값2-2 ): 

              수행문장

      case (값1-2, 값2-2):

              수행문장

      case (값1-1, _): 식1의 결과만으로 선택

              수행문장

      case(_, 값2): 식 2의 결과만으로 선택

               수행문장

# for i in range(10):
#     print(i, end=" ")
# print("")  # 줄바꿈 

# scores = [80, 75, 98, 88, 100]
# sum = 0
# for s in scores:
#     sum += s

#print('총점 : ' + str(sum))    
#print('총점 :', sum) 한 문장이 아니라 결합
#print('총점 : %d' %(sum))
print('총점 : {}'.format(sum))

# ss = 0
# for i in range(5, 20):
#     ss += i
# print(ss)


# n = int(input('단 입력 : '))
# print(n,"단")
# for x in range(1, 10):
#     print('{} * {} = {:2}'.format(n, x, n * x))
    
# 연구문제) 모든 구구단을 출력하시오. (가로로)    

for n2 in range(1, 10):
    for n1 in range(2, 10):
        print('{} * {} = {:2}'.format(n1,n2,n1*n2), end="\t")
    print()

ValueError: invalid literal for int() with base 10