<kaggle_start><code># 上で説明したセットアップです。このコードが何をするのか、どのように動作するのかについては、今のところ心配する必要はありません。
from learntools.core import binder

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

print("Setup complete.")


# # 1.
# 次の関数のボディを，そのdocstringに従って完成させてください。
# HINT: Pythonには組み込み関数 `round` があります。
def round_to_two_places(num):
    """小数第2位に丸められた数値を返します。
    >>> round_to_two_places(3.14159)
    3.14
    """
    # この関数(round_to_two_places)の中身にコードを書いてください。
    # "pass"(この文字列の下部にあり)は、文字通り何もしないキーワードです。コードブロックを開始した後、
    # Pythonは少なくとも1行のコード必要なので、仮として使用しました。
    pass


# ここで正解か解答かを確認することができます。(このセルを実行すると確認できます)
q1.check()
# ヒントを見たい場合はコメントアウトを行ってください。
# q1.hint()
# この問題の解答を確認したい場合は以下のコメントアウトを削除してください。
# q1.solution()


# # 2.
# `round`のヘルプによると、`ndigits`（2番目の引数）が負の値になることがあると書かれています。
# 負の場合はどうなると思いますか？次のセルでいくつかの例を試してみましょう。
# コードをここに書いてください。

# これが役に立つのか思い浮かべてみてください。 準備ができたら、以下のコードセルを実行して、答えを確認し、問題を完了したことを確認してください。
# 答え合わせをする（このコードセルを実行してください！）
q2.solution()


# # 3.
# 前の演習では、友人のアリス、ボブ、キャロルがキャンディを均等に分けようとしました。分けた時に余ったキャンディは捨てます。例えば、全員で91個のキャンディを持ち帰った場合、30個ずつ取って1個を叩き潰します（捨てます）。
# 今回はキャンディの総数がどのような場合であっても、捨てるキャンディの数を計算できる関数を作成します。
# 以下にある関数を修正して、キャンディーを分ける友達の数を表す第2引数を任意に取るようにします。2番目の引数が提供されていない場合は、以前のように3人の友人で分けることを想定する必要があります。
# この新しい動作を反映してください。
def to_smash(total_candies):
    """与えられた数のキャンディを3人の友達に均等に配った後、捨てなければならない残りのキャンディの数を返します。
    >>> to_smash(91)
    1
    """
    return total_candies % 3


# ここで正解か解答かを確認することができます。(このセルを実行すると確認できます)
q3.check()
# q3.hint()
# q3.solution()


# # 4. (Optional)
# 楽しいことではないかもしれませんが、エラーメッセージを読んで理解することは、Pythonを学ぶことにおいて重要な部分となります。
# 以下の各コードセルには、コメントされたバグのあるコードが含まれています。各セルには...
# 1. コードを読んで、実行したときに何が起こるかを予測してみてください。
# 2. その後、コードをコメントアウトして実行し、何が起こるかを確認してください。(**ヒント**。カーネルエディタでは、いくつかの行をハイライトして、`ctrl`+`/`を押すとコメントの表示を切り替えることができます)
# 3. コードを修正する（例外を発生させずに本来の目的を果たせるように）
#
# ruound_to_two_places(9.9999)
# x = -10
# y = 5
# # 上の2つの変数のうち、絶対値が小さいのはどれか？
# smallest_abs = min(abs(x, y))
# def f(x):
#     y = abs(x)
# return y
# print(f(5))
<|endoftext|>
[{"Id": 70078015, "ScriptId": 19166323, "ParentScriptVersionId": NaN, "ScriptLanguageId": 9, "AuthorUserId": 5973981, "CreationDate": "08/04/2021 15:16:55", "VersionNumber": 1.0, "Title": "[\u65e5\u672c\u8a9e\u8a33]Exercise: Functions and Getting Help", "EvaluationDate": "08/04/2021", "IsChange": true, "TotalLines": 108.0, "LinesInsertedFromPrevious": 35.0, "LinesChangedFromPrevious": 0.0, "LinesUnchangedFromPrevious": 73.0, "LinesInsertedFromFork": 35.0, "LinesDeletedFromFork": 38.0, "LinesChangedFromFork": 0.0, "LinesUnchangedFromFork": 73.0, "TotalVotes": 0}]
# 上で説明したセットアップです。このコードが何をするのか、どのように動作するのかについては、今のところ心配する必要はありません。
from learntools.core import binder

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

print("Setup complete.")


# # 1.
# 次の関数のボディを，そのdocstringに従って完成させてください。
# HINT: Pythonには組み込み関数 `round` があります。
def round_to_two_places(num):
    """小数第2位に丸められた数値を返します。
    >>> round_to_two_places(3.14159)
    3.14
    """
    # この関数(round_to_two_places)の中身にコードを書いてください。
    # "pass"(この文字列の下部にあり)は、文字通り何もしないキーワードです。コードブロックを開始した後、
    # Pythonは少なくとも1行のコード必要なので、仮として使用しました。
    pass


# ここで正解か解答かを確認することができます。(このセルを実行すると確認できます)
q1.check()
# ヒントを見たい場合はコメントアウトを行ってください。
# q1.hint()
# この問題の解答を確認したい場合は以下のコメントアウトを削除してください。
# q1.solution()


# # 2.
# `round`のヘルプによると、`ndigits`（2番目の引数）が負の値になることがあると書かれています。
# 負の場合はどうなると思いますか？次のセルでいくつかの例を試してみましょう。
# コードをここに書いてください。

# これが役に立つのか思い浮かべてみてください。 準備ができたら、以下のコードセルを実行して、答えを確認し、問題を完了したことを確認してください。
# 答え合わせをする（このコードセルを実行してください！）
q2.solution()


# # 3.
# 前の演習では、友人のアリス、ボブ、キャロルがキャンディを均等に分けようとしました。分けた時に余ったキャンディは捨てます。例えば、全員で91個のキャンディを持ち帰った場合、30個ずつ取って1個を叩き潰します（捨てます）。
# 今回はキャンディの総数がどのような場合であっても、捨てるキャンディの数を計算できる関数を作成します。
# 以下にある関数を修正して、キャンディーを分ける友達の数を表す第2引数を任意に取るようにします。2番目の引数が提供されていない場合は、以前のように3人の友人で分けることを想定する必要があります。
# この新しい動作を反映してください。
def to_smash(total_candies):
    """与えられた数のキャンディを3人の友達に均等に配った後、捨てなければならない残りのキャンディの数を返します。
    >>> to_smash(91)
    1
    """
    return total_candies % 3


# ここで正解か解答かを確認することができます。(このセルを実行すると確認できます)
q3.check()
# q3.hint()
# q3.solution()


# # 4. (Optional)
# 楽しいことではないかもしれませんが、エラーメッセージを読んで理解することは、Pythonを学ぶことにおいて重要な部分となります。
# 以下の各コードセルには、コメントされたバグのあるコードが含まれています。各セルには...
# 1. コードを読んで、実行したときに何が起こるかを予測してみてください。
# 2. その後、コードをコメントアウトして実行し、何が起こるかを確認してください。(**ヒント**。カーネルエディタでは、いくつかの行をハイライトして、`ctrl`+`/`を押すとコメントの表示を切り替えることができます)
# 3. コードを修正する（例外を発生させずに本来の目的を果たせるように）
#
# ruound_to_two_places(9.9999)
# x = -10
# y = 5
# # 上の2つの変数のうち、絶対値が小さいのはどれか？
# smallest_abs = min(abs(x, y))
# def f(x):
#     y = abs(x)
# return y
# print(f(5))
