파이썬 반복문 while 예제 연습
파이썬 반복문 while 개념
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Python 파이썬 제어문 : 조건문, 반복문
제어문 : 코드의 흐름을 제어하는 문장 특정 상황에 따라 코드를 선택하여 실행하거나 또는 코드의 일정부분을 반복하여 실행하는 문장 제어문의 종류 : 조건문(if ~ else), 반복문(while, for) 조건문
developernew.tistory.com
ex1.
1부터 100의 정수를 출력하시오
i=1
while i<=100:
print(i)
i+=1
자바와 유사한 구조
ex2.
1부터 10까지의 합 구하기
i=1
sum=0
while i<=10:
sum+=i
i+=1
else:
print("합계 : {}".format(sum))
while에 else값 사용 가능
ex3.
10~20 사이의 값을 입력받아 1부터 입력받은 수까지의 합을 구하시오
while True:
user = int(input("10~20사이의 숫자를 입력하세요 : "))
if user<10 or user>20:
print("잘못된 값을 입력하셨습니다. 다시 입력해주세요.")
else:
break
i=1
sum=0
while i<=user:
sum+=i
i+=1
print("합계 : {}".format(sum))
ex4.
두 수의 최소공배수와 최대공약수를 구하는 프로그램을 작성하라
최소공배수 = 공배수 중에서 가장 작은 정수
최대공약수 = 공약수 중에서 절대치가 가장 큰 수
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
#s = min(a,b)
if a > b:
s = b
else:
s = a
i = s
while i >= 1:
if a % i == 0 and b % i == 0:
print("최대 공약수 : {}".format(i))
break
i-=1
if a > b:
big = a
else:
big = b
i = 1
while True:
if big*i % s == 0:
print("최소 공배수 : {}".format(big * i))
break
i+=1
ex5.
어떤 수의 약수를 구하는 프로그램을 작성하여라
약수 = 어떤 수를 정수로 나눌 수 있는 수
su = int(input("정수 입력 : "))
i = 1
while i<=su:
if su % i == 0:
print(i)
i+=1
Exercise1
업다운 게임을 구현
컴퓨터에게 1부터 100 사이의 정답을 생성하도록 코드 구현한 후
사용자가 숫자를 입력하여 정답을 맞추도록 프로그래밍하세요
<게임의 상태>
[ 업 ] 사용자가 정답보다 낮은 값을 입력한 경우
[ 다운 ] 사용자가 정답보다 높은 값을 입력한 경우
[ 정답 ] 사용자가 정답과 같은 값을 입력한 경우, 게임 종료
게임 종료시 총 입력한 횟수를 화면에 출력
import random
su = random.randrange(1,101)
cnt = 0
while True:
user = int(input("업다운 게임! 1~100사이의 정수를 입력하세요 : "))
cnt+=1
if su==user:
print("정답입니다!")
break
elif su>user:
print("업!")
else:
print("다운")
print("총 입력 횟수 : {}".format(cnt))
출력화면
Exercise2
사용자가 틀릴 때까지 구구단 문제를 출제하는 프로그램 구현
(2 x 1 부터 19 x 9까지 구현)
사용자가 3문제를 틀리면 게임오버! 라는 메세지를 출력한 뒤 종료
종료 전에 정답 개수와 점수를 출력
[1] 일반 정답 +10점
[2] 어려운 문제 정답은 5점 추가 (총 15점) 11단부터~
[3] 틀리면 5점 감점
import random
wrong =0
crt = 0
score = 0
while wrong<3:
a = random.randrange(2,20)
b = random.randrange(1,10)
quest = a*b
ans = int(input(("[구구단 문제]\n{} X {} = ".format(a,b))))
if quest==ans:
print("정답입니다! 10점!")
crt+=1
score+=10
if a>10:
print("어려운 문제 정답! 5점 추가")
score+=5
else:
wrong+=1
print("틀렸습니다. 5점 감점")
score-=5
print("게임오버!\n3문제 틀려서 게임이 종료됩니다.\n정답 갯수 : {}\n점수 : {}".format(crt,score))
출력화면
Exercise3
[ 아이템 강화 시뮬레이션 ]
1. 아이템은 1번 강화하는데 현금 1000원이 필요하다
2. 아이템은 처음에 레벨이 0이다
3. 강화가 성공할 확률은 35%이고 성공하면 레벨이 1 증가
4. 강화가 실패할 확률은 30%이고 실패하면 레벨이 1 감소
5. 그 외의 경우에는 아무런 변화가 없다
0레벨의 아이템을 10레벨로 만들기 위해 내가 쏟아 부어야 되는 현금을 계산하세요
import random
lv = 0
cost = 1000
cnt = 0
'''
1-100
1-35 성공
36-65 실패
66-100 변화없음
'''
print("<아이템 강화하기>")
while lv<11:
ug = random.randrange(1,101)
if ug<36:
print("강화 성공! Lv +1")
lv+=1
cnt+=1
elif ug>=36 and ug<66:
print("강화 실패! Lv -1")
lv-=1
cnt+=1
else:
print("아무런 변화가 없습니다. Lv +0")
cnt+=1
print("레벨 10 달성! {} 회 강화 시도 / {} 원 사용".format(cnt,cnt*cost))
출력화면
그냥 몇 번 더 돌려 봤는데 1114회 강화 시도 진짜 선넘은 거 아니냐..
이쯤되면 게임사 테러해도 인정..
'Backend > Python' 카테고리의 다른 글
Python 파이썬 클래스 (0) | 2023.06.30 |
---|---|
Python 파이썬 리스트 VS 튜플 (0) | 2023.06.30 |
Python 랜덤모듈 : 원하는 범위 내의 숫자 구하기 (0) | 2023.06.29 |
Python 파이썬 모듈 import (0) | 2023.06.28 |
Python 파이썬 문자 변환 함수 (0) | 2023.06.28 |