while 조건:
실행 코드
잘못된 while 문
1) 조건 만족X
cnt = 0
while cnt > 3:
print('test')
2)조건식의 True로 인한 무한 루프
cnt = 0
while cnt < 0
print('test')
3) True 또는 1을 이용한 무한 루프
cnt = 0
while True: # while 1:도 같은 뜻임
print('test')
cnt = 0
```
cnt = 0
while True:
print('test')
cnt += 1
if(cnt == 3):
break
``` cnt, tot = 0, 0
while cnt < 10:
cnt += 1
if(cnt == 5):
continue
print(cnt, end = ' ')
tot += cnt
print(f'합계={tot}') # 5를 제외한 1~10까지의 총합이 나옴
# 구구단
for i in range(2, 10):
for j in range(1, 10):
mul = i * j
print(f'{i} * {j} = {mul}', end= ' | ')
print('\n')
name = input('이름 입력: ')
age = int(input('나이 입력: '))
split을 이용하여 동시에 입력 받기
num1, num2 = map(int, input('두 개의 정수를 입력하세요: ').split())
- split()은 문자열을 특정 구분자를 기주으로 나누어 리스트로 반환하는 메소드
- map()은 반복 가능한 객체의 각 요소에 특정 함수를 적용하여 새로운 값을 생성하는 Python내장 함수
- split과 map은 추후 자세하게 다룰 예정
num1, num2, tot, mok = 0, 0, 0, 0
try:
num1, num2 = map(int, input('두 개의 정수를 입력하세요: ').split())
tot = num1 + num2
mok = round(num1 / num2, 2)
except Exception as ex:
print(f'{ex}\n처리 오류입니다.\n확인 부탁드립니다\n')
print(f'{tot} = {num1} + {num2} ')
print(f'{mok} = {num1} / {num2}')
>>> try 절에서 오류 발생시 except 절 코드 실행 됨
조건: while사용, % 와 // 연산 사용
while 반복문 탈출 break가 있어야함
sort등 내장 함수 사용 금지 -> while을 이용해서 풀기
num = 5942
re_num = 0 #역순으로 들어갈 변수
print(f'원본 = {num}')
while True:
if(num > 1000):
re_num = num // 1000
num = num % 1000
elif(num > 100):
re_num += (num // 100 ) * 10
num = num % 100
elif(num > 10):
re_num += (num // 10 ) * 100
num = num % 10
elif(num > 0):
re_num += num * 1000
num = num % 1
elif(num == 0 ):
break
print(f'역순 = {re_num}')
문제점:
num = 5942
re_num = 0 # 역순으로 저장할 변수
print(f'원본 = {num}')
while num > 0:
re_num = re_num * 10 + num % 10 # 마지막 자릿수를 추가
num //= 10 # 마지막 자릿수를 제거
print(f'역순 = {re_num}')