1. 숫자 맞추기 게임
- 플레이어와 컴퓨터가 참여하는 숫자 맞추기 게임을 만드세요.
- 프로그램은 다음과 같은 기능을 포함해야 합니다.
- 컴퓨터는 1부터 10 사이의 랜덤한 숫자를 생성합니다.
- 플레이어는 숫자를 입력하고, 입력한 숫자가 큰지 작은지 힌트를 얻습니다.
- 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.
입출력 예시
1과 10 사이의 숫자를 하나 정했습니다.
이 숫자는 무엇일까요?
예상 숫자: 5
너무 큽니다. 다시 입력하세요.
예상 숫자: 4
너무 큽니다. 다시 입력하세요.
예상 숫자: 3
정답입니다!
직접 풀어보기
더보기
1. random되는 숫자를 받기 위해 radom 함수를 import 시켜줍니다.
import random #random 함수를 사용하기 위해 import
2. 컴퓨터에게 랜덤함수를 사용해서 1에서 10 사이에 숫자를 선택하게 만듭니다.
com = random.randrange(1,11) #컴퓨터에게 1이상 10 사이에서 랜덤한 숫자 선택
함수 | 표현 | 기능 |
random() | random.random() | 0 이상 1 미만의 실수 난수 생성 |
randint() | random.randint(start, stop) | start 이상 stop 이하 범위의 정수 난수 생성 |
randange() |
random.randrange(low, high, step)
|
low 이상 high 이하 범위에서, low에 step을 더해 간 범위 내에서의 정수 난수 생성(* 일련의 규칙성을 갖는 수열 중, 무작위 추출을 한다고 볼 수도 있습니다) |
3. 사용자에게 숫자를 입력하고 입력한 숫자가 큰 지 비교 후 힌트를 줍니다.
while True: # 사용자가 정답을 맞출 때까지 반복
person = int(input("예상숫자:")) #사용자에게 숫자받고 비교를 위해 int형으로 변환
if com < person: #컴퓨터와 사람 입력 숫자 비교
print("너무 큽니다. 다시 입력하세요")
elif com > person:
print("너무 작습니다. 다시 입력하세요")
else: # com == person인 경우
print("정답입니다.")
break #정답을 맞추면 반복문 종료
4. 마지막으로 사용자가 숫자를 제대로 입력했는지 try - except 문을 추가해줍니다.
try:
person = int(input("예상숫자:")) #사용자에게 숫자받고 비교를 위해 int형으로 변환
except ValueError:
print("숫자를 입력해 주세요.")
continue #숫자가 아닌 입력이 들어오면 다시 시도
5. 위 모든 구문을 합치면 숫자 맞추기 게임이 완성됩니다.
import random #random 함수를 사용하기 위해 import
com = random.randrange(1,11) #컴퓨터에게 1이상 10 사이에서 랜덤한 숫자 선택
print("1과 10 사이의 숫자를 하나 정했습니다.\n 이 숫자는 무엇일까요?" )
while True: # 사용자가 정답을 맞출 때까지 반복
try:
person = int(input("예상숫자:")) #사용자에게 숫자받고 비교를 위해 int형으로 변환
except ValueError:
print("숫자를 입력해 주세요.")
continue #숫자가 아닌 입력이 들어오면 다시 시도
if com < person: #컴퓨터와 사람 입력 숫자 비교
print("너무 큽니다. 다시 입력하세요")
elif com > person:
print("너무 작습니다. 다시 입력하세요")
else: # com == person인 경우
print("정답입니다.")
break #정답을 맞추면 반복문 종료
2. 클래스와 함수 사용하기
이름, 성별, 나이를 입력받고, 이를 출력하는 프로그램을 작성해주세요.
처리 조건
- 클래스 정의
- Person이라는 이름의 클래스를 정의한다.
- 멤버 변수
- name, gender, age라는 멤버 변수를 설정한다.
- 각 변수는 객체가 생성될 때 초기화된다.
- name: 이름을 저장하는 변수 (문자열)
- gender: 성별을 저장하는 변수 (문자열, "male" 또는 "female")
- age: 나이를 저장하는 변수 (정수형)
- 생성자
- 생성자 __init__를 통해 객체 생성 시 이름, 성별, 나이를 초기화한다.
- 매개변수로 이름(name), 성별(gender), 나이(age)를 받는다.
- 정보를 출력하는 함수 display()
- name, gender, age 값을 출력하는 기능을 구현한다.
- 이름과 성별은 같은 행에 출력하고, 나이는 다음 행에 출력한다.
- 입력 및 출력
- 사용자로부터 나이, 이름, 성별을 각각 입력받는다.
- 입력된 값을 바탕으로 Person 객체를 생성하고, display() 함수를 통해 객체의 정보를 출력한다.
예시 입출력
- 사용자 입력 예시
나이: 28
이름: 페이커
성별: male
- 출력 예시
이름: 페이커, 성별: male
나이: 28
직접 풀어보기
더보기
1. class를 먼저 정의합니다.
class Person : #'person'이라는 클래스 정의
2. 생성자 __init__를 통해 객체 생성시 이름, 성별, 나이를 초기화시키고 매개변수로 이름(name), 성별(gender), 나이(age)를 받도록 해줍니다.
class Person : #'person'이라는 클래스 정의
def __init__(self, name, gender, age): #name,gender,age 각각 초기화하고 각 매개변수로 받기
self.name = name
self.gender = gender
self.age = age
3. 정보를 출력하는 display() 함수를 만들어줍니다.
def display(self): #정보 출력 메서드 정의
return f"이름:{self.name}, 성별: {self.gender}\n나이: {self.age}" #반환해줄 값
4. 사용자로부터 받을 이름, 성별, 나이를 받습니다.
name = input("이름: ") # 이름 입력받기
gender = input("성별: ")
age = int(input("나이: ")) # 나이 입력받기
5. Person 객체를 생성해 display()함수로 객체 정보를 출력합니다.
per1 = Person(name,gender,age) #Person 객체 생성
print(per1.display()) #정보 출력
6. 추가적으로 사용자가 나이에 숫자를 제대로 입력했는지 try - except 문을 추가 해줍니다
while True:
try:
age = int(input("나이: ")) # 나이 입력받기
if age <= 0:
print("나이는 0보다 큰 값이어야 합니다.")
else:
break
except ValueError: #부적절한 값을 인자로 받았을 때
print("숫자만 입력해 주세요")
7. 추가적으로 성별도 제대로 받았는 지 확인을 위해 if문을 넣어주도록 합시다.
while True: #성별 입력받기
gender = input("성별(남/여 또는 male/female): ")
if gender in ['남','여','male', 'female']:
if gender == '남' or gender == 'male':
gender = "male"
elif gender== '여' or gender =="female":
gender = "female"
break
else:
print("잘못된 입력입니다. 남,여 또는 male/femal 중 입력해 주세요.")
8. 모든 코드를 합치면 클래스와 함수를 이용한 프로그램이 완성됩니다.
class Person : #'person'이라는 클래스 정의
def __init__(self, name, gender, age): #name,gender,age 각각 초기화하고 각 매개변수로 받기
self.name = name
self.gender = gender
self.age = age
def display(self): #정보 출력 메서드 정의
return f"이름:{self.name}, 성별: {self.gender}\n나이: {self.age}"
while True:
try:
age = int(input("나이: ")) # 나이 입력받기
if age <= 0:
print("나이는 0보다 큰 값이어야 합니다.")
else:
break
except ValueError: #부적절한 값을 인자로 받았을 때
print("숫자만 입력해 주세요")
name = input("이름: ") # 이름 입력받기
while True: #성별 입력받기
gender = input("성별(남/여 또는 male/female): ")
if gender in ['남','여','male', 'female']:
if gender == '남' or gender == 'male':
gender = "male"
elif gender== '여' or gender =="female":
gender = "female"
break
else:
print("잘못된 입력입니다. 남,여 또는 male/femal 중 입력해 주세요.")
per1 = Person(name,gender,age) #Person 객체 생성
print(per1.display()) #정보 출력
'Python 문제 풀기' 카테고리의 다른 글
[Python 문제풀기] (3) | 2024.12.30 |
---|---|
[Python 문제 풀기] (2) | 2024.12.24 |
[Python 문제풀기 컴프리헨션] (4) | 2024.12.17 |
[Python 문제 풀기] (2) | 2024.12.16 |
[Python 라이브러리로 데이터 분석하기] (1) | 2024.12.04 |