練習問題

これまで学んだ内容を使って、実際の問題に挑戦してみましょう。

1から30までの数を表示し、3の倍数なら「Fizz」、5の倍数なら「Buzz」、 15の倍数なら「FizzBuzz」を表示するプログラムを作成してください。

PYTHON
Output

                    
解答例を表示
for i in range(1, 31):
    if i % 15 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

与えられた数が素数かどうかを判定する関数 is_prime(n) を作成してください。

PYTHON
Output

                    
解答例を表示
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

文章中の各単語の出現回数をカウントする関数を作成してください。

PYTHON
Output

                    
解答例を表示
def count_words(text):
    words = text.lower().split()
    word_count = {}
    for word in words:
        word_count[word] = word_count.get(word, 0) + 1
    return word_count

図書館の本を管理するクラスを作成してください。 本の追加、貸出、返却、検索の機能を持つようにしてください。

PYTHON
Output

                    
解答例を表示
class Library:
    def __init__(self):
        self.books = []

    def add_book(self, book):
        self.books.append(book)

    def borrow_book(self, title):
        for book in self.books:
            if book.title == title and not book.is_borrowed:
                book.is_borrowed = True
                return f"'{title}'を貸し出しました"
        return f"'{title}'は貸出できません"

    def return_book(self, title):
        for book in self.books:
            if book.title == title and book.is_borrowed:
                book.is_borrowed = False
                return f"'{title}'が返却されました"
        return f"'{title}'は貸し出されていません"

    def search(self, keyword):
        return [b.title for b in self.books if keyword in b.title]