제어문(3)
● 기타 제어문
- break, continue : C, Java도 있으며, 같은 역할을 한다.
1. break
- 반복문(while, for)를 강제로 빠져나가기 위한 문장
(ex) 1부터 9까지 출력하고 while 무한루프를 탈출
![](https://blog.kakaocdn.net/dn/bvAlWK/btrlTZy5ahG/a2A5kSA3UtuAwpaKEHTl2K/img.png)
2. continue
- 반복문(while, for) 수행 중에 무조건 맨 위로 올라가는 문장
● 리스트(list)
- 유사한 속성의 그룹을 만드는 가장 일반적인 방법
- cf) 튜플(tuple) - (), 세트(set) - {}, 딕셔너리(dict) - {A:B}
- 3차원 리스트는 사용 자제 : 왜? → 한 번 써보면 안쓰게 됨
(ex)
1. student = ['A학생', 'B학생', 'C학생']에서
(1) A학생을 꺼내오려면?
정답 : student[0]
(2) B학생, C학생을 꺼내오려면?
정답 : student[1:3]
2. class_student = [['A', 'B', 'C'], ['D', 'E', 'F']] → 2차원 리스트
(1) D학생을 꺼내오려면?
정답 : class_student[1][0]
실습(break)
1. n = 1 일 때 1씩 증가하여 출력(단, n이 10이면 종료)
n = 1
while True:
if n == 10:
break
print(n)
n += 1
![](https://blog.kakaocdn.net/dn/dnaMjj/btrlOWKq1CZ/UoxrBDpoEjsL4PI5Ye60Zk/img.png)
2. 이름, 최대 숫자를 입력받아 임의의수를 만들어 입력한 값과 같은지 맞추는 게임
(1) '이름을 입력하세요 :'를 출력하고 입력을 받는다.
name = input('이름을 입력하세요 : ')
(2) 숫자 입력을 받아 변수에 저장한다.
num = input('최대 숫자를 입력하세요 : ')
(3) 숫자인지 파악하고 숫자가 아니면 계속 입력을 받는다.(str.isdecimal() 이용)
while True:
if num.isdigit() == True:
break
num = input('최대 숫자를 입력하세요 : ')
(4) 임의의 수를 만든다.(임의의 수 : 1부터 입력한 최대 숫자 사이의 값)
import random
rand_num = random.randint(1, int(num))
print(rand_num)
(5) '정답은 몇일까요?'를 출력하고 입력한 수와 같은지 맞추는 반복문을 실행한다.
count = 1
iscorrect = False
while True:
(단, 임의의 수와 입력한 수가 같거나 5번까지 맞추지 못하면 종료한다.)
- 정답을 입력받고 비교하는 로직
ans = input('정답은 몇일까요? ')
if ans.isdigit():
if rand_num == int(ans): # 정답
print('정답입니다.')
iscorrect = True
break
else:
print('오답입니다.')
if count == 5:
break
count = count + 1
- 정답을 맞춘 순서에 따른 결과값
if iscorrect:
if count == 1:
print('{}님 대단하십니다.'.format(name))
elif count <= 3:
print('{}님 우수한 성적이십니다.'.format(name))
else:
print('{}님 좀 심하십니다.'.format(name))
else:
print('{}님, 정답은 {} 입니다.'.format(name, rand_num))
(6) 결과
![](https://blog.kakaocdn.net/dn/dZwNOd/btrlLvNi1D0/ivVqr1cAb4kPS6k62Kqvak/img.png)
![](https://blog.kakaocdn.net/dn/upYfs/btrlPozPR9l/4kK5oEWuFQ4B6kIwwUCpxk/img.png)
![](https://blog.kakaocdn.net/dn/b4VnDq/btrlLv0PeRU/ZEG5TOrcbknQQjCbjW4PG0/img.png)
![](https://blog.kakaocdn.net/dn/eLgBjh/btrlS0L229B/eD8I33mfwAmYRHJqLMwOF1/img.png)
※ 전체코드
# 1
name = input('이름을 입력하세요 : ')
# 2. 숫자 입력을 받아 변수에 저장한다.
num = input('최대 숫자를 입력하세요 : ')
# 3. 숫자인지 파악하고 숫자가 아니면 계속 입력을 받는다.(str.isdecimal() 이용)
while True:
if num.isdigit() == True:
break
num = input('최대 숫자를 입력하세요 : ')
# 4. 임의의 수를 만든다.
import random
rand_num = random.randint(1, int(num))
print(rand_num)
# 5. '정답은 몇일까요?'로 다섯 번 맞추는 반복문을 실행한다.
count = 1
iscorrect = False
while True:
# 정답을 입력받고 비교하는 로직
ans = input('정답은 몇일까요? ')
if ans.isdigit():
if rand_num == int(ans): # 정답
print('정답입니다.')
iscorrect = True
break
else:
print('오답입니다.')
if count == 5:
break
count = count + 1
# 6. '정답은 몇일까요?'를 출력하고 입력한 수와 같은지 맞추는 반복문을 실행한다.
if iscorrect:
if count == 1:
print('{}님 대단하십니다.'.format(name))
elif count <= 3:
print('{}님 우수한 성적이십니다.'.format(name))
else:
print('{}님 좀 심하십니다.'.format(name))
else:
print('{}님, 정답은 {} 입니다.'.format(name, rand_num))
실습(continue)
1. 1부터 9중에 3의 배수만 빼고 출력
n = 1
while True:
if n == 10:
break
elif n % 3 == 0:
n += 1
continue
print(n)
n += 1
![](https://blog.kakaocdn.net/dn/bczJuf/btrlSjSy1Zn/nHyF72qnFnEVVM2KtTYHOK/img.png)
실습(list)
1. 1차원 리스트, 2차원 리스트, 3차원 리스트
list_simple = [1, 2, 3]
list_bokjap = [[1, 2, 3], [4, 5, 6]]
list_thebokjap = [[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]]
print(list_simple)
print(list_simple[0]) # 첫 번째 것
print(list_bokjap[1]) # 두 번째 것
print(list_bokjap[1][1]) # 두 번째 것 중 두 번째
print(list_thebokjap)
print(list_thebokjap[0][1][2]) # 첫 번째 것 중 두 번째 것의 세 번째
print(list_simple[1:3]) # [1:3] : 두 번째[1]부터 세 번째[2]까지 출력([시작 순서:제외 순서])
print(list_simple[0:3])
![](https://blog.kakaocdn.net/dn/JF9aQ/btrlGb2HgI2/MmKo8glxRvDRsYM9ygKWS0/img.png)
'Python' 카테고리의 다른 글
[Python] 09 (0) | 2021.11.24 |
---|---|
[Python] 08 (0) | 2021.11.23 |
[Python] 06 (0) | 2021.11.20 |
[Python] 05 (0) | 2021.11.18 |
[Python] 04 (0) | 2021.11.17 |