<kaggle_start><code>from learntools.core import binder

binder.bind(globals())
from learntools.python.ex5 import *

print("Setup complete.")


# # 1.
# デバッグには運も必要だと感じたことはありませんか？ 次のプログラムにはバグがあります。そのバグを見つけ出して、正しいコードに修正してみてください！
def has_lucky_number(nums):
    """与えられた数字のリストがラッキーかどうかを返します。ラッキーリストには
    7で割り切れる数字が1つ以上含まれている。
    """
    for num in nums:
        if num % 7 == 0:
            return True
        else:
            return False


# バグを見つけ出して、下のセルに修正してみてください
def has_lucky_number(nums):
    """与えられた数字のリスト(nums)がラッキーかどうかを求めます。ラッキーなリストには
    7で割り切れる数字が1つ以上含まれています。
    """
    for num in nums:
        if num % 7 == 0:
            return True
        else:
            return False


# Check your answer
q1.check()
# q1.hint()
# q1.solution()


# # 2.
# 下のPythonの式を見てください。この式を実行すると、何が得られると思いますか？
# 予測ができたら、コードをコメントアウトしてセルを実行し、自分の答えが正しいかどうか判断してみてください。
# [1, 2, 3, 4] > 2


# RやPythonでは、(numpyやpandasなどの)いくつかのライブラリでは、リストの各要素を2と比較し(つまり、「要素ごと」の比較を行い)、`[False, False, True, True]`のようなbool型のリストを返します。
# この動作を関数を以下のセルで実装し、入力されたリストの数字それぞれがnより大きいかどうかを返すbool型のリストを作成してください。
def elementwise_greater_than(L, thresh):
    """Lと同じ長さのリストをreturnで返します。ここで、iをインデックス(番目の数)とすると
    L[i]がthreshの数より大きければTrue、そうでなければFalseです。
    >>> elementwise_greater_than([1, 2, 3, 4], 2)
    [False, False, True, True]
    """
    pass


# 答え合わせをする
q2.check()
# q2.solution()


# # 3.
# 以下の関数の中身を、docstring("""で囲まれている赤文字のもの)に従って完成させます。
def menu_is_boring(meals):
    """ある期間に提供された食事のリストが与えられ、同じ食事が2日連続で提供されたことがあればTrueを、そうでなければFalseを返す。"""
    pass


# 答え合わせをする
q3.check()
# q3.hint()
# q3.solution()


# # 4. 🌶️(難しい問題)
# Python Challenge Casinoには、ブラックジャックテーブルの隣にスロットマシンがあります。スロットマシンの結果は、`play_slot_machine()`でわかります。返される数字はドルでの賞金です。通常は0が返されますが、たまに運が良ければ大金を手にすることができます。以下のように実行してみてください。
play_slot_machine()


# ところで、1回のプレイが1ドルだということをお伝えしましたか？後で請求書をお送りしますので、ご安心ください笑
# マシンをプレイするたびに、平均してどのくらいのお金が得られる（または失う）のでしょうか？ カジノでは秘密にされていますが、**モンテカルロ法**と呼ばれる手法を使って、1回の獲得できるお金の平均値を推定することができます。平均的な結果を推定するには、シナリオを何度もシミュレーションして、その平均的な結果を返します。
# 次の関数を完成させて、スロットマシンの1回のプレイの平均値を計算してください。
def estimate_average_slot_payout(n_runs):
    """スロットマシンをn_runs回実行し、1回あたりの平均の純利益(得たお金 - スロットを回すのに使ったお金)を返します。
    呼び出し例（戻り値は非決定論的であることに注意！）:
    >>> estimate_average_slot_payout(1)
    -1
    >>> estimate_average_slot_payout(1)
    0.5
    """
    pass


# 1スピンあたりの期待値がわかったら、下のセルを実行して解答を表示させてください。
# 答え合わせをする
q4.solution()
<|endoftext|>
[{"Id": 70478747, "ScriptId": 19293825, "ParentScriptVersionId": NaN, "ScriptLanguageId": 9, "AuthorUserId": 5973981, "CreationDate": "08/07/2021 00:51:18", "VersionNumber": 3.0, "Title": "(\u65e5\u672c\u8a9e\u8a33)Exercise: Loops and List Comprehensions", "EvaluationDate": "08/07/2021", "IsChange": true, "TotalLines": 123.0, "LinesInsertedFromPrevious": 1.0, "LinesChangedFromPrevious": 0.0, "LinesUnchangedFromPrevious": 122.0, "LinesInsertedFromFork": 32.0, "LinesDeletedFromFork": 30.0, "LinesChangedFromFork": 0.0, "LinesUnchangedFromFork": 91.0, "TotalVotes": 7}]
from learntools.core import binder

binder.bind(globals())
from learntools.python.ex5 import *

print("Setup complete.")


# # 1.
# デバッグには運も必要だと感じたことはありませんか？ 次のプログラムにはバグがあります。そのバグを見つけ出して、正しいコードに修正してみてください！
def has_lucky_number(nums):
    """与えられた数字のリストがラッキーかどうかを返します。ラッキーリストには
    7で割り切れる数字が1つ以上含まれている。
    """
    for num in nums:
        if num % 7 == 0:
            return True
        else:
            return False


# バグを見つけ出して、下のセルに修正してみてください
def has_lucky_number(nums):
    """与えられた数字のリスト(nums)がラッキーかどうかを求めます。ラッキーなリストには
    7で割り切れる数字が1つ以上含まれています。
    """
    for num in nums:
        if num % 7 == 0:
            return True
        else:
            return False


# Check your answer
q1.check()
# q1.hint()
# q1.solution()


# # 2.
# 下のPythonの式を見てください。この式を実行すると、何が得られると思いますか？
# 予測ができたら、コードをコメントアウトしてセルを実行し、自分の答えが正しいかどうか判断してみてください。
# [1, 2, 3, 4] > 2


# RやPythonでは、(numpyやpandasなどの)いくつかのライブラリでは、リストの各要素を2と比較し(つまり、「要素ごと」の比較を行い)、`[False, False, True, True]`のようなbool型のリストを返します。
# この動作を関数を以下のセルで実装し、入力されたリストの数字それぞれがnより大きいかどうかを返すbool型のリストを作成してください。
def elementwise_greater_than(L, thresh):
    """Lと同じ長さのリストをreturnで返します。ここで、iをインデックス(番目の数)とすると
    L[i]がthreshの数より大きければTrue、そうでなければFalseです。
    >>> elementwise_greater_than([1, 2, 3, 4], 2)
    [False, False, True, True]
    """
    pass


# 答え合わせをする
q2.check()
# q2.solution()


# # 3.
# 以下の関数の中身を、docstring("""で囲まれている赤文字のもの)に従って完成させます。
def menu_is_boring(meals):
    """ある期間に提供された食事のリストが与えられ、同じ食事が2日連続で提供されたことがあればTrueを、そうでなければFalseを返す。"""
    pass


# 答え合わせをする
q3.check()
# q3.hint()
# q3.solution()


# # 4. 🌶️(難しい問題)
# Python Challenge Casinoには、ブラックジャックテーブルの隣にスロットマシンがあります。スロットマシンの結果は、`play_slot_machine()`でわかります。返される数字はドルでの賞金です。通常は0が返されますが、たまに運が良ければ大金を手にすることができます。以下のように実行してみてください。
play_slot_machine()


# ところで、1回のプレイが1ドルだということをお伝えしましたか？後で請求書をお送りしますので、ご安心ください笑
# マシンをプレイするたびに、平均してどのくらいのお金が得られる（または失う）のでしょうか？ カジノでは秘密にされていますが、**モンテカルロ法**と呼ばれる手法を使って、1回の獲得できるお金の平均値を推定することができます。平均的な結果を推定するには、シナリオを何度もシミュレーションして、その平均的な結果を返します。
# 次の関数を完成させて、スロットマシンの1回のプレイの平均値を計算してください。
def estimate_average_slot_payout(n_runs):
    """スロットマシンをn_runs回実行し、1回あたりの平均の純利益(得たお金 - スロットを回すのに使ったお金)を返します。
    呼び出し例（戻り値は非決定論的であることに注意！）:
    >>> estimate_average_slot_payout(1)
    -1
    >>> estimate_average_slot_payout(1)
    0.5
    """
    pass


# 1スピンあたりの期待値がわかったら、下のセルを実行して解答を表示させてください。
# 答え合わせをする
q4.solution()
