이 글은 24.01.04에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
반복문 제어(continue)
- 1) 반복문 실행 중 continue를 만나면 실행 생략, 다음 반복문으로 넘어간다.
# 예시
for i in range(20):
if i%3 !=0:
continue # if문의 조건을 만족하면 continue에 의해 아래 print문 실행하지 않고 통과.
print(f"{i}은(는) 3의 배수다")
==================================
0은(는) 3의 배수다
3은(는) 3의 배수다
6은(는) 3의 배수다
9은(는) 3의 배수다
12은(는) 3의 배수다
15은(는) 3의 배수다
18은(는) 3의 배수다
- 2) else문은 반복문 실행이 모두 끝난 후 실행된다.
count=0
for i in range(20):
if i%3 !=0:
continue # if문의 조건을 만족하면 continue에 의해 아래 print문 실행하지 않고 통과.
print(f"{i}은(는) 3의 배수다")
count+=1
else:
print(f"20까지의 정수 중 3의 배수는 {count}개다")
==================================================
0은(는) 3의 배수다
3은(는) 3의 배수다
6은(는) 3의 배수다
9은(는) 3의 배수다
12은(는) 3의 배수다
15은(는) 3의 배수다
18은(는) 3의 배수다
20까지의 정수 중 3의 배수는 7개다
- 최소공배수를 구해보자.
count=0
min_num = 0
for i in range(1, 101):
if i%3 !=0 or i%7 !=0:
continue
print(f"{i}은(는) 3과 7의 공배수다")
count+=1
if min_num == 0:
min_num = i
# min_num이 0일 때, 처음 공배수(=최소공배수)가 min_num에 할당되고,
# 그렇게 할당 된 이후엔 min_num은 더 이상 0이 아니므로 min_num에 최소공배수만이 입력됨.
else:
print(f"100까지의 정수 중 3과 7의 공배수는 {count}개다")
print(f"100까지의 정수 중 3과 7의 최소공배수는 {min_num}이다")
파이썬 기초 문제풀이
[연습문제]
- 데이터와 변수(05)
내 나이가 100살이 되는 해의 연도를 구해보자
방법 (1)
# input
age = input('나이 : ')
year = 2024
count = 0
if age.isdigit():
print(f"현재 나이는 {age}살")
age=int(age)
while age < 100:
age+=1
year += 1
count += 1
print(f"{year}년({count}년 후) 나이는 {age}살")
else:
print('잘못 입력하셨습니다')
==================================================
# output
나이 : 29
현재 나이는 29살
2095년(71년 후) 나이는 100살
방법 (2)
# input(if문만 써서 더 간단하다)
import datetime
today = datetime.datetime.today()
age = input('나이 : ')
if age.isdigit():
after_age = 100 - int(age)
to_the_100 = today.year + after_age
print(f"{to_the_100}년({after_age}년 후)에 100살")
else:
print('잘못 입력했습니다')
=====================================================
# output
나이 : 29
2095년(71년 후)에 100살
- 연산자(01)
물건 가격과 지불 금액을 입력하면 거스름돈을 출력하는 코드를 짜 보자.
# input
price = int(input('가격 : '))
money = int(input('지불 금액 : '))
change = money-price
cnt50000 = 0
cnt10000 = 0
cnt5000 = 0
cnt1000 = 0
cnt500 = 0
cnt100 = 0
cnt10 = 0
if change > 0:
change = (change//10)*10 # 1원 단위는 없애기 위해.
print(f"거스름 돈 : {change}(원 단위 절사)")
if change >= 50000:
cnt50000 = change // 50000
change = change % 50000
if change >= 10000:
cnt10000 = change // 10000
change = change % 10000
if change >= 5000:
cnt5000 = change // 5000
change = change % 5000
if change >= 1000:
cnt1000 = change // 1000
change = change % 1000
if change >= 500:
cnt500 = change // 500
change = change % 500
if change >= 100:
cnt100 = change // 100
change = change % 100
if change >= 10:
cnt10 = change // 10
print('=' * 50)
print(f"50,000 {cnt50000}장")
print(f"10,000 {cnt10000}장")
print(f"5,000 {cnt5000}장")
print(f"1,000 {cnt1000}장")
print(f"500 {cnt500}개")
print(f"100 {cnt100}개")
print(f"10 {cnt10}개")
print('=' * 50)
else:
print('돈 더 내세요')
----------------------------------------------------
# output
(1)
가격 : 100000
지불 금액 : 2500
돈 더 내세요
(2)
가격 : 12345
지불 금액 : 654321
거스름 돈 : 641970(원 단위 절사)
==================================================
50,000 12장
10,000 4장
5,000 0장
1,000 1장
500 1개
100 4개
10 7개
==================================================
- 연산자(02)
국/영/수 점수 입력 후 총점, 평균, 최고점수 과목, 최저점수 과목, 최고점수와 최저점수 차이 출력
방법 (1)
# input
kor = int(input('국어 : '))
eng = int(input('영어 : '))
mat = int(input('수학 : '))
total = kor+eng+mat
top_name = ''
top_score = 0
bot_name = ''
bot_score = 0
print(f"총점 : {total}")
print(f"평균 : {total/3:.2f}")
if kor > eng and kor > mat:
top_name = '국어'
top_score = kor
if eng > mat:
bot_name = '수학'
bot_score = mat
else:
bot_name = '영어'
bot_score = eng
if eng > kor and eng > mat:
top_name = '영어'
top_score = eng
if kor > mat:
bot_name = '수학'
bot_score = mat
else:
bot_name = '국어'
bot_score = kor
if mat > eng and mat > kor:
top_name = '수학'
top_score = mat
if eng > kor:
bot_name = '국어'
bot_score = kor
else:
bot_name = '영어'
bot_score = eng
print('-'*50)
print(f"최고 점수 과목(점수) : {top_name}({top_score})")
print(f"최저 점수 과목(점수) : {bot_name}({bot_score})")
print(f"최고, 최저 점수 차이 : {top_score - bot_score}")
print('-'*50)
======================================================
# output
수학 : 90
총점 : 242
평균 : 80.67
--------------------------------------------------
최고 점수 과목(점수) : 수학(90)
최저 점수 과목(점수) : 국어(67)
최고, 최저 점수 차이 : 23
--------------------------------------------------
방법 (2)
# 최고/최저 점수 과목을 미리 정해놓고 시작하는 방법이다.
# input
kor = int(input('국어 : '))
eng = int(input('영어 : '))
mat = int(input('수학 : '))
total = kor+eng+mat
print(f"총점 : {total}")
print(f"평균 : {total/3:.2f}")
top_name = '국어'
top_score = kor
if eng > top_score:
top_score = eng
top_name = '영어'
if mat > top_score:
top_score = mat
top_name = '수학'
bot_name = '국어'
bot_score = kor
if eng < bot_score:
bot_score = eng
bot_name = '영어'
if mat < bot_score:
bot_score = mat
bot_name = '수학'
print('-'*50)
print(f"최고 점수 과목(점수) : {top_name}({top_score})")
print(f"최저 점수 과목(점수) : {bot_name}({bot_score})")
print(f"최고, 최저 점수 차이 : {top_score - bot_score}")
print('-'*50)
======================================================
# output
수학 : 90
총점 : 242
평균 : 80.67
--------------------------------------------------
최고 점수 과목(점수) : 수학(90)
최저 점수 과목(점수) : 국어(67)
최고, 최저 점수 차이 : 23
--------------------------------------------------
'STUDY > Python' 카테고리의 다른 글
[Python] 패키지 / 객체 지향 프로그래밍 / 클래스 (0) | 2024.03.19 |
---|---|
[Python] 함수 / 중첩함수 / lambda함수 / 실행(main) 파일 (2) | 2024.03.19 |
[Operator] 산술 연산자 / 비교 연산자 / 연산자 모듈 (0) | 2024.03.19 |
[Anaconda] 가상환경 생성/활성화/삭제/패키지 설치/아나콘다 명령어 (0) | 2024.03.08 |
[Anaconda] 아나콘다란? / 아나콘다 설치 (2) | 2024.03.08 |