1. 소수 구별
- 프로그래머 X는 입력값을 숫자를 입력하거나 문자를 입력하려고 하는데,
- 만약 숫자를 입력하였으면 그것이 정수인지, 소수인지 구별하는 프로그램을 짜보도록 하고,
- 만약 문자를 입력하였으면 숫자가 아니므로 math error를 표시하게 하라.
<방법 1>
input = 6
rst_num = 0
try:
# 입력받은 값을 정수화 시킨다. => 정수화가 안될 시 except
input_num = int(input)
# 1은 소수가 아니다.
if (input_num == 1):
print("입력받은 값은 소수가 아닙니다.")
else:
for n in range(2,input_num): # 소수는 1과 나 자신 외의 값, 다른 값으로 나누어지면 안된다. (2 ~ n-1)의 값으로 나누어 지면 안된다.
if (input_num % n == 0): # 나누어 떨어지면 rst_num 값을 올린다.
rst_num += 1
break
if (rst_num == 0): # 위에서 저장한 rst_num의 값이 0이면 소수이다.
print("입력받은 값은 소수입니다.")
else:
print("입력받은 값은 소수가 아닙니다.")
except Exception as e:
print("math error")
<방법 2>
try:
input_value = input("숫자를 입력하세요 : ")
input_value = int(input_value)
if (input_value == 1 or input_value == 2):
print("입력받은 값은 소수가 아닙니다.")
for n in range(2,input_value):
if (input_value % n == 0):
print("입력받은 숫자는 소수가 아닙니다.")
break
else:
print("입력받은 숫자는 소수입니다.")
except:
print("math error")
<방법 3>
is_decimal = True # 초기값 설정 => 소수가 True라고 정의
try:
answer = input("숫자를 입력해주세요: ") # 입력받은 수는 type은 str이다.
answer = int(answer)
for i in range(2, answer): # 2부터 입력받은 수 까지 (입력받은 수는 미포함)
# x가 해당 수로 나누어떨어진다면
if answer % i == 0: # 소수는 나누어 떨어지면 안된다.
print("소수가 아닙니다.")
is_decimal = False # 입력값이 소수가 아니라는 뜻
break
if is_decimal:
print("소수입니다.")
except: # int로 형변환이 되지 않을 경우 exception (answer = int(answer))
print("math error")
<방법 4>
try:
answer = input("숫자를 입력해주세요: ")
answer = int(answer)
assert answer >= 2 # 입력 숫자가 1이하인경우 오류로 발생!!
for i in range(2, answer):
if answer % i == 0:
print("소수가 아닙니다.")
break
else:
print("소수입니다.")
except:
print("math error")
2. 최대값, 최소값, 중간값 출력
- ex) [8, 6, 2, 8, 5, 1, 2, 5, 4, 9]
- 최소값 : 1 / 최대값 : 9 / 중간값 : 5
<방법 1>
answer = [8, 6, 2, 8, 5, 1, 2, 5, 4, 9]
min = 0
max = 0
mid = 0
# 중복값 제거
answer_set = set(answer)
# 정렬
answer_sort = sorted(answer_set)
print(answer_sort)
# 최소값, 최대값, 중간값
min = answer_sort[0]
max = answer_sort[-1]
mid_value = int(len(answer_sort) / 2)
mid = answer_sort[mid_value]
print(f"최소값 : {min} / 최대값 : {max} / 중간값 : {mid}")
<방법 2>
import random
# random으로 0 ~ 9 사이의 정수를 뽑는다.
# for _ => 변수를 사용하지 않을 경우 _ 사용
lst = [ random.randint(0,9) for _ in range(10)]
'''
for i in range(10):
lst.append(random.randint(0, 9))
'''
print(f'before lst: {lst}')
random.shuffle(lst) # 섞다.
lst.sort() # 정렬
print(f'after lst: {lst}')
median = (len(lst) -1) / 2 # median의 index 값
minimum = lst[0]
maximum = lst[-1]
print(f'최소값: {minimum} / 최대값: {maximum} / 중간값: {lst[int(median)]}')
3. 방탈출 게임
<방법 1>
import random
password = str(random.randint(0,9)) + str(random.randint(0,9)) + str(random.randint(0,9))
is_pass = True
while is_pass:
input_value = input("비밀번호를 입력해주세요. : ")
if len(input_value) != 3:
print("비밀번호는 3자리 입니다.")
elif not input_value.isdigit():
print("숫자만 입력해주세요.")
elif input_value == password:
print("성공!")
else:
print("틀림")
<방법 2>
import random
password = str(random.randint(0,9)) + str(random.randint(0,9)) + str(random.randint(0,9))
print(password)
while True:
# 입력해주세요:
answer = input("입력해주세요: ")
# 입력값 검증
if len(answer) != 3:
print("비밀번호 길이가 틀립니다.")
elif not answer.isdigit():
print("숫자만 입력해주세요.")
# 정답 비교
elif answer == password:
print('성공')
break
else:
print('틀림')
4. 가위바위보 게임
<방법 1>
import random
games = ["가위", "바위", "보"]
user_input = input("가위바위보 중 하나만 입력해 주세요.")
computer_rst = random.choice(games)
pass_rst = True
# 사용자 입력 체크 확인
if user_input not in games:
print("잘못입력하였습니다. 가위,바위,보 중 하나만 입력해 주세요.")
elif user_input == computer_rst:
print(f"결과 : 무승부, 컴퓨터 : {computer_rst}")
elif user_input == "가위":
if computer_rst == "보":
print(f"사용자 승, 컴퓨터 : {computer_rst}")
else:
print(f"컴퓨터 승, 컴퓨터 : {computer_rst}")
elif user_input == "바위":
if computer_rst == "가위":
print(f"사용자 승, 컴퓨터 : {computer_rst}")
else:
print(f"컴퓨터 승, 컴퓨터 : {computer_rst}")
elif user_input == "보":
if computer_rst == "바위":
print(f"사용자 승, 컴퓨터 : {computer_rst}")
else:
print(f"컴퓨터 승, 컴퓨터 : {computer_rst}")
<방법 2>
import random
가위바위보게임 = {
'가위': {
'바위':'패',
'보':'승'
},
'바위': {
'가위':'승',
'보':'패'
},
'보': {
'바위':'승',
'가위':'패'
}
}
가위바위보 = ['가위', '바위', '보']
컴퓨터 = random.choice(가위바위보)
answer = input("가위바위보 중 하나를 입력해주세요: ")
answer = answer.replace(' ','')
if answer not in 가위바위보:
print("잘못입력하였습니다.")
elif answer == 컴퓨터:
print("무승부입니다.")
else:
print(가위바위보게임[answer][컴퓨터])
print(f'컴퓨터: {컴퓨터}')
728x90
반응형
'Language > Python' 카테고리의 다른 글
[Python] 클래스 (class) (0) | 2024.05.13 |
---|---|
[Python] 함수 (Function) (0) | 2024.05.13 |
[Python] 제어문 & 오류 & 예외처리 (0) | 2024.05.13 |
[Python] 자료구조 (0) | 2024.05.13 |
[Python] 문법 (0) | 2024.05.13 |