:param [変数名]:
はコード中でどんな役割をするのでしょうか?

日本語サイトであれば、
https://qiita.com/methane/items/e95c578c3d8fc5f1f62e)(python paramで検索しヒット)
が、おそらく参考になると思うのですが、読んでもいまいちつかめません。
少しかみ砕いた説明が欲しいです。

文脈として全コードを以下に掲載します。

def bottles_of_beer(bob):
    """ Prints Bottle of Beer on the Wall lyrics.

    :param bob: Must be a positive integer.
    """
    if bob<1:
        print("""No more bottle of beer on the wall.
              No more bottles of beer.""")
        return

    tmp=bob
    bob-=1
    print("""{} bottles of beer on the wall.
          {} bottles of beer.
          Take one down,pass it around,
          {} bottles of beer on the wall.
          """.format(tmp,tmp,bob))
    bottles_of_beer(bob)

bottles_of_beer(99)

②また、このコードでreturn以下が空白となっていますが、デフォルト(?)では何を実行すべきという意味になるのでしょうか?