[Python 문제풀기 함수와 클래스 사용해보기]

2024. 12. 2. 18:10·Python 문제 풀기

1. 숫자 맞추기 게임

  1. 플레이어와 컴퓨터가 참여하는 숫자 맞추기 게임을 만드세요.
  2. 프로그램은 다음과 같은 기능을 포함해야 합니다.
  • 컴퓨터는 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
'Python 문제 풀기' 카테고리의 다른 글
  • [Python 문제 풀기]
  • [Python 문제풀기 컴프리헨션]
  • [Python 문제 풀기]
  • [Python 라이브러리로 데이터 분석하기]
100.nam
100.nam
100.nam님의 블로그 입니다.
  • 100.nam
    100.nam님의 블로그
    100.nam
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Python 정리
      • Python 문제 풀기
      • Machine learning
      • SQL 정리
      • SQL 문제풀기
      • Django 정리
      • LangChain,Graph
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Python
    내일배움캠프
    스파르타코딩크럽
    vscode
    스파르타코딩클럽
    pandas
    머신러닝
    인공지능을위한파이썬
    SQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
100.nam
[Python 문제풀기 함수와 클래스 사용해보기]
상단으로

티스토리툴바